我已经从Live Ubuntu CD启动了系统,我需要解决一些软件包问题。我已经安装了硬盘驱动器,现在我想像正常启动一样运行APT-GET。即更改APT-GET的工作目录,以便在我的硬盘驱动器上工作。我以前做过这个,但我不记得语法。我认为这只是一些旗帜,像这样:

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

但是我只得到“命令行选项...不理解”。有任何想法吗?

有帮助吗?

解决方案

chroot /mnt /partition1

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

如果您在该位置还没有可用的Debian系统,这将行不通。 - Akostadinov

如果您在调用时无法使软件包系统正常工作,也许它太混乱了,以至于无法再次受到信任 - 根据我的经验,将其重新付出的努力很少付出。如果发生这种情况,请开心您仍然可以访问高清,备份数据并执行干净的重新安装。

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

apt -get -o rootdir =/tmp/test_apt集(几乎)所有路径都处于不同的根。 btw在运行系统上,如果您复制/etc/apt,/usr/lib/apt和mkdir -p usr/lib etc etc et act var/cache var/lib/dpkg var/lib/lib/apt/apt/lists/partial var/cache/cache/cache/partial var/cache/ APT/ARCHIVES/PORTIAL,最后触摸VAR/LIB/DPKG/状态,然后APT将在该根中工作。如果添加选项-O调试:: nolocking = 1,它甚至可以作为非根用户工作。 Nolock选项是必要的,因为我找不到在不同根目录内设置锁定文件的方法。 - Akostadinov

工作意味着使用搜索和下载软件包和此类操作。如果某些必需软件包尚未存在,则实际上是无法安装的。如果目标实际上是出于任何原因,DeBootstrap实际上是在新的根部安装软件包,则可以提供帮助。 - Akostadinov

其他提示

这也应该有效:

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

跑步 chroot /mnt/partition1 将启动一个新的外壳,其中文件系统的根源为 /mnt/partition1. 。假设 apt-get 在您的硬盘驱动器上仍然可以正常工作,您可以从那里开始。

dpkg --root=/mnt/partition1 -i mypackage.deb 是不需要的选择 chroot, ,但确实需要您自己下载包裹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top