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

Linux 为另一个分区/目录运行apt get?,linux,ubuntu,command-line-arguments,apt-get,Linux,Ubuntu,Command Line Arguments,Apt Get,我已经从一张实时Ubuntu CD启动了我的系统,我需要修复一些软件包问题。我已经安装了我的硬盘,现在我想像正常启动一样运行apt-get。ie更改apt get的工作目录,使其在我的硬盘上工作。我以前做过,但是我记不起语法了。我想那只是一面旗帜,像这样: apt-get --root-directory=/mnt/partition1 install.... 但我只得到“命令行选项…不理解”。有什么想法吗?chroot/mnt/partition1 如果您的系统使用多个磁盘分区,您可能必须装

我已经从一张实时Ubuntu CD启动了我的系统,我需要修复一些软件包问题。我已经安装了我的硬盘,现在我想像正常启动一样运行apt-get。ie更改apt get的工作目录,使其在我的硬盘上工作。我以前做过,但是我记不起语法了。我想那只是一面旗帜,像这样:

apt-get --root-directory=/mnt/partition1 install....
但我只得到“命令行选项…不理解”。有什么想法吗?

chroot/mnt/partition1

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


如果您在该位置还没有可用的debian系统,这将不起作用阿科斯塔季诺夫


如果你不能让程序包系统在运行时正常工作,也许它太混乱了,再也不能被信任了——以我的经验,让它恢复生命的努力很少有回报。如果发生这种情况,很高兴你仍然可以访问你的硬盘,备份你的数据,并执行一个干净的重新安装

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


apt get-o RootDir=/tmp/test\u apt设置(几乎)所有路径都位于不同的根目录中。顺便说一句,在一个正在运行的系统上,如果您复制/etc/apt、/usr/lib/apt和mkdir-p usr/lib etc 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选项是必需的,因为我找不到在不同根目录中设置锁文件的方法阿科斯塔季诺夫


工作意味着使用搜索和下载软件包等操作。如果还没有一些基本的软件包,那么实际上安装是不可能的。无论出于何种原因,如果目标是在新根目录中安装软件包,debootstrap都会有所帮助阿科斯塔季诺夫


运行
chroot/mnt/partition1
将启动一个新的shell,其中文件系统的根是
/mnt/partition1
。假设硬盘上的
apt get
仍能正常工作,您可以从那里开始

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

这也应该可以:

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

如果你在那里还没有一个可用的debian系统,这是行不通的。如果你在chrooting时无法让包系统工作,那么再次被信任将是一件糟糕的事情——根据我的经验,让它恢复生命的努力很少有回报。我的建议是:很高兴你仍然可以访问你的硬盘,备份你的数据并执行一次干净的重新安装。apt-get-o RootDir=/tmp/test_apt设置(几乎)所有路径都在不同的根目录中。顺便说一句,在一个正在运行的系统上,如果您复制/etc/apt、/usr/lib/apt和mkdir-p usr/lib etc 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选项是必需的,因为我找不到在不同的根目录中设置锁文件的方法。工作意味着使用搜索和下载包以及类似的操作。如果还没有一些基本的软件包,那么实际上安装是不可能的。无论出于何种原因,如果目标是在新根目录中安装软件包,debootstrap都会有所帮助。@akostadinov您的评论可以在这里作为一个很好的答案。问题不在于编程。可能是服务器故障。(如果需要,版主将迁移它,不要复制并粘贴到Serverfault上)