Существует ли способ получить dpkg, склонный - добираются или способность для создания списка пакетов, которые должны быть установлены на второй машине для дублирования пакетов, установленных на первом?
т.е. Если бы я установил плоскость сервер Ubuntu, выбрал sshd опцию во время установки, затем установленное существенный для сборки, чтобы я ожидал бы, что вывод посмотрит что-то как:
#ubuntu 9.10 server
openssh-sshd
build-essential
Насколько я вижу, все доступные упаковочные инструменты произведут подробный список пакетов на поле. Я не интересуюсь openssh, освобождает, ld, gcc, и все другие пакеты, втянутые sshd и существенные для сборки, поскольку они будут установлены, когда я установлю sshd и существенный для сборки.
Я хотел бы видеть просто список пакета, который я должен установить для воссоздания моего текущего набора пакетов на другой машине.
Действительно ли это возможно?
deborphan
, вроде того. Он составляет список всех пакетов в вашей системе, выясняет, что от чего зависит, и распечатывает пакеты, у которых нет никаких зависимостей. По умолчанию он печатает только библиотеки (чтобы упростить поиск библиотек, которые были установлены другими пакетами и больше не нужны, отсюда и название). В основном у него есть возможности делать то, что вы хотите. Я запускаю его так:
deborphan -anp required --no-show-section
-a
указывает все пакеты (не только библиотеки)
-n
игнорирует «Предлагает» или «Рекомендует» "проверка зависимостей (т.е. просто" Depends ")
-p required
перечисляет все пакеты, несмотря на приоритет
- no-show-section
не указывает, в какой части debian он находится, просто удобная функция форматирования, которая может оказаться полезной для построения списка.
Теперь он будет пропускать пакеты, потому что некоторые пакеты имеют циклические зависимости.Но они, как правило, довольно необычны, так что это должно подвести вас достаточно близко.
Итак, вам нужен список явно установленных пакетов (например, ubuntu-desktop и openssh), а не автоматические зависимости? Я не уверен, но думаю, что это то, что делает dpkg --get-selections
. Итак, вы можете выполнить
dpkg --get-selections > file
А затем, на другом компьютере, использовать тот же «файл» и запустить
dpkg --set-selections < file
apt-get dselect-upgrade
Я не абсолютно уверен , что эти команды просто выполняют выбранные вручную пакеты, хотя, и в настоящее время я не использую какие-либо системы на основе Debian для проверки. :)
Код, опубликованный dannysauer, является началом. Если у вас есть список пакетов, который включает зависимости, вы можете использовать apt-rdepends
, чтобы найти зависимости для конкретного пакета (см. на этой странице для примера использования и вывода).
Схема процедуры
apt-rdepends
для каждого apt-rdepends