我已从现场Ubuntu CD启动了我的系统,我需要解决一些包问题。我已经安装了我的硬盘,现在我想运行apt-get,好像我正常启动一样。即更改apt-get的工作目录,以便它可以在我的硬盘上运行。我以前做过这个,但我不记得语法了。我认为这只是一些旗帜,如下:
apt-get --root-directory=/mnt/partition1 install....
但我只得到“命令行选项......不被理解”。有什么想法吗?
答案 0 :(得分:19)
这也应该有效:
sudo apt-get -o Dir=/media/partitioni1 update
答案 1 :(得分:8)
chroot / mnt / partition1
如果您的系统使用多个磁盘分区,您可能必须安装其中一些以使程序包系统正常工作(10年前,当硬盘开始变得太大而无法进行原始物理备份时,我停止设置多个分区)。
如果您在该位置尚未使用可用的debian系统,则无效。 - akostadinov
如果你在chrooting时无法让包装系统工作,也许它太混乱了,再也不能再被信任了 - 根据我的经验,将它恢复生机的努力很少付出代价。如果发生这种情况,请高兴您仍然可以访问您的HD,备份您的数据并执行干净的重新安装。
其他答案的一些相关评论:
apt-get -o RootDir = / tmp / test_apt设置(几乎)所有路径都在不同的根目录中。 btw在正在运行的系统上,如果你复制/ etc / apt,/ usr / lib / apt和mkdir -p usr / lib等var / cache var / lib / dpkg var / lib / apt / lists / partial var / cache / apt / archives / partial,最后触摸var / lib / dpkg / status,然后apt将在该根目录中运行。如果添加-o Debug :: NoLocking = 1选项,它甚至可以作为非root用户使用。 nolock选项是必需的,因为我找不到在不同的根目录中设置锁文件的方法。 - akostadinov
工作意味着使用搜索和下载包以及此类操作。实际上,如果某些基本包装尚未安装,则无法进行安装。如果目标实际上是出于任何原因在新根目录中安装软件包,则debootstrap可以提供帮助。 - akostadinov
答案 2 :(得分:4)
运行chroot /mnt/partition1
将启动一个新的shell,其中文件系统的根目录为/mnt/partition1
。假设硬盘驱动器上的apt-get
仍能正常运行,您可以从那里继续。
dpkg --root=/mnt/partition1 -i mypackage.deb
是一个不需要chroot
的选项,但需要您自行下载该包。