为另一个分区/目录运行apt-get?

我从一张活的Ubuntu CD引导了我的系统,我需要修复一些软件包问题。 我装了我的硬盘,现在我想运行apt-get,就好像我正常启动。 即改变apt-get的工作目录,以便在我的硬盘上工作。 我以前做过这个,但是我不记得语法。 我认为这只是一些标志,像这样:

apt-get --root-directory=/mnt/partition1 install.... 

但是我只能得到“命令行选项…不明白”。 有任何想法吗?

chroot / mnt / partition1

如果您的系统使用多个磁盘分区,则可能需要安装其中的一些才能使软件包系统正常工作(10年前,当硬盘开始变得太大而无法进行原始物理备份时,我停止设置多个分区)。

如果你在这个位置还没有一个可用的debian系统,这将不起作用。 – akostadinov

如果你不能在chroot的时候使包装系统工作的话,或许这样做太过分了,以至于再也不能被信任了 – 以我的经验来说,把它变回原状的努力很少付出。 如果发生这种情况,请高兴您仍然可以访问您的高清,备份您的数据并执行干净的重新安装。

一些相关的评论来自其他答案:

apt-get -o RootDir = / tmp / test_apt将(几乎)所有路径设置为不同的根目录。 在/ etc / apt,/ usr / lib / apt和mkdir -p usr / lib等文件中, apt / archives / partial,最后触摸var / lib / dpkg / status,然后apt将在该根目录下工作。 如果添加选项-o Debug :: NoLocking = 1,它甚至可以作为非root用户使用。 nolock选项是必需的,因为我找不到在不同的根目录中设置锁定文件的方法。 – akostadinov

工作意味着使用搜索和下载软件包等操作。 其实安装是不可能的,如果一些重要的软件包不在那里。 如果目标实际上是以任何理由在新的根目录下安装软件包,debootstrap可以提供帮助。 – akostadinov

另外这应该工作:

 sudo apt-get -o Dir=/media/partitioni1 update 

运行chroot /mnt/partition1会启动一个新的shell,其中文件系统的根目录是/mnt/partition1 。 假设硬盘驱动器上的apt-get仍可正常工作,则可以从此处继续。

dpkg --root=/mnt/partition1 -i mypackage.deb是一个不需要chroot的选项,但确实需要你自己下载软件包。