Запуск apt-get для другого раздела / каталога? - PullRequest
10 голосов
/ 17 октября 2010

Я загрузил свою систему с живого компакт-диска Ubuntu, и мне нужно исправить некоторые проблемы с пакетом. Я установил свой жесткий диск, и теперь я хочу запустить apt-get, как будто я загружался нормально. т.е. измените рабочий каталог на apt-get, чтобы он работал на моем жестком диске. Я делал это раньше, но не могу вспомнить синтаксис. Я думаю, что это был только какой-то флаг, например:

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

Но я получаю только "Параметр командной строки ... не понято". Есть идеи?

Ответы [ 3 ]

20 голосов
/ 17 октября 2010

Также это должно работать:

sudo apt-get -o Dir=/media/partitioni1 update
8 голосов
/ 17 октября 2010

chroot / mnt / partition1

Если ваша система использует несколько разделов на дисках, вам, возможно, придется смонтировать некоторые из них, чтобы заставить систему пакетов работать (я прекратил настраивать несколько разделов 10 лет назад, когда жесткие дискиначал становиться слишком большим для необработанного физического резервного копирования).

Это не сработало бы, если у вас еще нет работающей системы Debian в этом месте.- akostadinov

Если вы не можете заставить систему пакетов работать при хроматировании, возможно, она слишком запутана, чтобы когда-либо ей снова доверять - по моему опыту, попытка вернуть ее к жизни редко окупается.Если это произойдет, будьте счастливы, что вы все еще можете получить доступ к своему HD, сделать резервную копию ваших данных и выполнить чистую переустановку.

Некоторые соответствующие комментарии из другого ответа:

apt-get -o RootDir= / tmp / test_apt устанавливает (почти) все пути в другом корне.Кстати, на работающей системе, если вы копируете / etc / apt, / usr / lib / apt и mkdir -p usr / lib и т. д. var / cache var / lib / dpkg var / lib / apt / lists / частично var / cache /apt / archives /part и, наконец, коснитесь var / lib / dpkg / status, затем apt будет работать в этом корне.Он может даже работать как пользователь без полномочий root, если вы добавите опцию -o Debug :: NoLocking = 1.Опция nolock необходима, потому что я не смог найти способ установить файл блокировки внутри другого корневого каталога.- akostadinov

Работа означает использование поиска и загрузки пакетов и такие операции.На самом деле установка невозможна, если некоторые необходимые пакеты еще не установлены.debootstrap может помочь, если целью является установка пакетов в новом корне по любой причине.- акостадинов

4 голосов
/ 17 октября 2010

Запуск chroot /mnt/partition1 запустит новую оболочку, в которой корнем файловой системы будет /mnt/partition1. Предполагая, что apt-get на вашем жестком диске по-прежнему работает правильно, вы можете продолжить оттуда.

dpkg --root=/mnt/partition1 -i mypackage.deb - опция, которая не требует chroot, но требует загрузки пакета самостоятельно.

...