代码之家  ›  专栏  ›  技术社区  ›  Avall

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

  •  10
  • Avall  · 技术社区  · 14 年前

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

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

    但我只得到“命令行选项…不理解”。有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  9
  •   Paulo Scardine    11 年前

    chroot/mnt/分区1

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

    如果在那个位置上还没有可用的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,它甚至可以作为非根用户工作。nolock选项是必需的,因为我找不到在不同根目录中设置锁文件的方法。阿科斯塔季诺夫

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

        2
  •  22
  •   enzotib    14 年前

    同样,这也应该起作用:

    sudo apt-get -o Dir=/media/partitioni1 update
    
        3
  •  4
  •   Jander    14 年前

    跑步 chroot /mnt/partition1 将启动一个新的shell,其中文件系统的根目录是 /mnt/partition1 . 假设 apt-get

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