是否可以将程序安装到外部驱动器上?

是否可以将程序安装到外部驱动器上?

我使用 crouton 在 Toshiba chromebook 上运行 Ubuntu 14.04。我安装操作系统的驱动器很小,只有 3.6 GB 的可用空间。我想sage在我的系统上安装,但sage系统上需要 6 GB 可用空间。

不过,我总是将 SD 卡插入设备中。该卡有 175 GB 可用空间。可以安装sage在SD卡上吗?

sage我尝试使用命令下载的方式

apt-add-repository -y ppa:aims/sagemath
apt-get update
apt-get install sagemath-upstream-binary

发现这里

答案1

将 Debian 软件包逐个拆分到不同的磁盘上是很困难的。对此没有任何支持;您必须dpkg单独调用要安装在非默认位置的软件包。

将目录树放在单独的磁盘上很容易。对你来说幸运的是,据我快速浏览可知,PPA 中的 Sage 包将大多数文件安装在/usr/lib/sagemath.您可以轻松地将其放入 SD 卡上。假设 SD 卡已安装(如果存在)在 上/media/sdcard。在那里创建一个目录并创建一个符号链接。

mkdir /media/sdcard/sagemath
ln -s /media/sdcard/sagemath /usr/lib/sagemath

然后 dpkg 安装的所有文件/usr/lib/sagemath最终都会出现在 SD 卡上(无论它们来自哪个包)。

如果您在 SD 卡不存在时尝试使用 Sage 或管理 Sage 软件包,您将收到一条错误消息,如果您插入 SD 卡并重复该操作,则不会造成任何损害。

答案2

这是个有趣的问题。让我们讨论一些可以尝试的方法。

方法#1:在 apt-get 安装过程中操作位置

使用 apt-get 则无法做到这一点。如果您使用文件安装.deb,这也是不可能的。原因很简单,安装位置被硬编码到这些包中。

要操纵安装位置,您必须sage从源代码进行编译并makefile在安装之前对其进行修改。这将带来管理依赖项的负担。

不过,对此已经有过讨论。也许,人们已经做到了。也许他们以某种方式操纵了安装位置。看这里这里。如果您找到某种方法可以做到这一点,请添加评论。

方法#2:更改 /usr 文件夹的位置

您可以更改文件夹本身的位置/usr并将其传输到外部卡。通常这会被劝阻,但既然你说你总是保持它插入,所以应该没问题。

为此,有两种方法:

  1. (首选)在外部卡中创建一个分区,并将当前文件夹中的所有内容传输/usr到该分区。然后,修改您的/etc/fstab分区以将其安装为/usr文件夹,并完全删除旧/usr文件夹。要完成所有这些,您需要从一些救援光盘或一些 live CD/USB 启动。

  2. 同样在这种方法中,首先从救援光盘或 Live CD/USB 启动,然后将文件夹移动/usr到外部卡,然后创建一个符号链接到新/usr文件夹。

聚苯乙烯

这是一个有趣的问题,最近随着我的硬盘已满,我一直在思考这个问题。我会尝试其中一些事情并更新我的答案。欢迎评论批评其中的一些方法。

更新

另请参阅@gilles 的回答。他的建议比较好。无需将所有/usr文件夹移动到外部卡,只需将其移动/usr/lib/sagemath到外部卡,因为它占用了大约 3.1GB 的安装空间。所以,在方法#2,您可以移动此文件夹而不是/usr.

相关内容