首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改apt-get的安装路径

更改apt-get的安装路径
EN

Unix & Linux用户
提问于 2015-04-20 12:53:13
回答 4查看 11.2K关注 0票数 1

我有一台机器,它的根分区正在耗尽空间。我有另一个磁盘,上面有足够的空闲空间。如何将apt-get配置为在不同的磁盘/目录上安装软件包?

EN

回答 4

Unix & Linux用户

发布于 2015-04-20 13:35:50

你不会想那样做的。第一件事是尝试在根下回收空间。这可能是可行的。首先,cd到/var/cache/apt/archives并键入du -hs。这将给出apt缓存的deb包所使用的空间。您可以手动或使用apt-get clean删除这些内容。

还有一些工具可用于删除大型未使用的包。例如,您可以安装wajig (apt-get install wajig)并使用wajig large。这将为您提供一个按大小顺序排列的软件包列表。

如果这不能解决您的问题(而且应该解决),那么您可以考虑尝试增加您的根文件系统。你在用LVM吗?无论如何,您要做的是扩展根文件系统以使其更大。使用LVM,您可以轻松地在另一个磁盘上扩展它,但是您将首先卸载房间文件系统。如果您不使用LVM,可能会更难--我只使用了LVM很长一段时间,所以我不确定其中的选项。

如果您需要更多的特定信息,请将df -h的输出粘贴到您的问题中。

票数 3
EN

Unix & Linux用户

发布于 2015-04-20 13:27:25

apt(8)没有更改安装目录的直接选项。dpkg(1)确实如此,但它是针对色度环境的。

您可以正常安装,然后移动应用程序文件,将符号链接从原始位置设置到新位置。这可能不适用于所有的应用程序。另外,在卸载时,如果您不反转进程,则可能会出现问题。

您最好的选择是清理您/根分区以释放空间;如果您/根分区下的/usr或其他目录移动到您的空闲磁盘并安装在根下;使用LVM扩展您的根分区,使用其他磁盘上的空闲空间;或者重新构建包以安装到其他地方。

票数 1
EN

Unix & Linux用户

发布于 2015-04-20 14:20:30

您可以首先检查是否有任何大型日志文件或类似的文件占用了太多的空间(su、dufind来查找它)。

如果您无法通过任何方法(比如apt-get clean,查找是否有du -sh /*du -sh /bigger_directory/*等的大文件)来回收空间,那么您可以将/usr移动到同一磁盘或其他磁盘上的一个新分区。这是通常安装所有包的目录,因此您应该通过移动它来恢复大部分磁盘空间。

我已经做过几次了,我甚至用类似的方法迁移了完整的系统(即将我的笔记本电脑的操作系统移到一个新的SSD磁盘上)。我所采取的步骤:

  • 备份系统和数据(总是在进行此类更改之前)。
  • 准备并格式化磁盘中的分区(我们将使用它作为/usr)。
  • 使用LIVECD或USB发行版重新启动系统。
  • 在活动CD上,启动一个终端并成为根。
  • 在ramdisk中创建一个临时分区,并将本地PC磁盘挂载到那里才能工作。
  • 执行必要的命令将/usr数据复制到新磁盘。回忆起我的记忆(我觉得它们还好):

sudo su - root mkdir /temp ### Assuming / is /dev/sda1 : mount -t ext4 /dev/sda1 /temp cd /temp mv /temp/usr /temp/usr.OLD mkdir /temp/usr chown root:root /temp/usr chmod 755 /temp/usr ### Assuming your new partition is /dev/sda6 mount -t ext4 /dev/sda6 /temp/usr ### Copy the entire old /usr to the new disk rsync -avz /temp/usr.OLD/* /temp/usr ### Edit your fstab to automount /usr from the new location vim /temp/etc/fstab ### (add an entry like: /dev/sda6 /usr ext4 defaults 1 2) cd / umount /temp/usr umount /temp/ rmdir /temp exit

  • 现在,您已经将/usr数据复制到新分区,创建了一个空的/usr目录,并修改了/etc/fstab文件,以便在系统启动时从这个新分区挂载/usr。
  • 现在您可以启动您的系统并检查它是否正确工作。
  • 当您确信系统正常工作时,您可以删除/usr.OLD并恢复/usr使用的所有磁盘。

如果存在任何问题,请记住,您可以使用相同的方法(使用livecd引导、在/temp中挂载/挂载//temp、删除/etc/fstab条目并将/usr和mv /usr.OLD删除为/usr)来恢复旧的usr。

免责声明:请注意,虽然这不是一个非常先进的过程,你应该相当小心,并确保你完全理解所有的步骤。在测试此过程是否有效之前,此过程中不会删除任何内容,但请在遵循该过程之前检查所有内容。如果您想先测试一个示例分区(比方说/opt),您可以使用它进行实践。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/197401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档