установить те же пакеты Debian в другой системе


13

Как мне экспортировать список установленных пакетов Debian в системе, а затем установить те же пакеты в новой системе?

Ответы:


17

Для резервного копирования:

sudo dpkg --get-selections > /tmp/dpkglist.txt

Для восстановления:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

Также смотрите этот вопрос для дополнительных опций и информации: Ubuntu, как настроить новый компьютер, как существующий

У меня есть вышеперечисленное в ежедневном cronjob, который проверяет dpgklist в SVN как часть нашего инвентаря сервера. Это позволит вам проводить разумную и точную инвентаризацию установленных пакетов на ваших серверах, а также будет легко провести быструю параллельную разборку, чтобы увидеть, отсутствует ли на сервере конкретный пакет.


1
Я получаю это сообщение об ошибке для каждой строки ввода: dpkg: warning: package not in status nor available database at line ...
Данортон

этот способ не работает, так как мало версий Ubuntu
QkiZ

10

aptitudeтакже удовлетворяет этому варианту использования и сохраняет информацию об «автоматически установленных» пакетах, чего нет у других методов. Запустите следующее на эталонном компьютере:

aptitude search -F '%p' '~i!~M' > package_list 

Скопируйте package_listна другую машину и запустите

xargs aptitude --schedule-only install < package_list; aptitude install; 

Просто небольшая заметка. Согласно справочному руководству aptitude, поле «package» по умолчанию «расширяемое», поэтому aptitude search -F '%p' '~i!~M' > package_listтакже должно работать нормально.
хронос

Относительно резервного копирования пакета: см. Плагин для deborphan@ bogdan.org.ua/2013/10/18/…
TomRoche

[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] Что касается восстановления пакета: это нужно сделать как root, нет? Если это так, <br/> В xargsкомандной строке восстановления = xargs aptitude --schedule-only install <package_list; aptitude install; заставляет меня хотеть знать, <br/> 1. Зачем aptitudeнужен xargs? dpkg --set-selectionsне. <br/> 2. Предполагается, aptitude что нужно xargs, где поставить один или несколько sudos в командной строке восстановления? Или иначе получите root для запуска этой строки, предполагая, что это необходимо.
TomRoche

0

Это хорошая идея, и вы также можете настроить один сервер с apt-proxy, если у вас есть привычка.


После игры с несколькими прокси для apt я решил выбрать apt-cacher-ng. apt-cacher-ng очень прост в настройке и из нескольких учетных записей кажется более надежным, чем оригинальный apt-proxy. У каждого человека есть свой фаворит. unix-ag.uni-kl.de/~bloch/acng
faultyserver

Мой голос за примерно, это единственный, который не какой-то безумный.
womble

Интересно ... Я на самом деле не пробовал ни одной из альтернатив.

0

Ответ faultyservers работал для меня только после запуска другой команды в соответствии с http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html

sudo apt-get install dselect sudo dselect access sudo dselect update

До этого бега

sudo apt-get dselect-upgrade

только вернулся

[...]
dpkg: warning: пакет отсутствует в базе данных в строке 302: xfonts-utils
dpkg: warning: найдены неизвестные пакеты; это может означать, что доступная база данных устарела и требует обновления с помощью метода
внешнего интерфейса pi @ FHEM-new: / tmp $ sudo apt-get dselect-upgrade
Чтение списков пакетов ... Готово
Построение дерева зависимостей
Чтение информации о состоянии ... Выполнено
0 обновлено, 0 вновь установлено, 0 для удаления и 0 не обновлено.

Я пытался установить те же пакеты из моего старого Raspberry Pi (под управлением Raspbian GNU / Linux 7 (wheezy)) на мой новый Raspberry (Raspbian GNU / Linux 8 (jessie)).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.