Ответы:
Для резервного копирования:
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 как часть нашего инвентаря сервера. Это позволит вам проводить разумную и точную инвентаризацию установленных пакетов на ваших серверах, а также будет легко провести быструю параллельную разборку, чтобы увидеть, отсутствует ли на сервере конкретный пакет.
aptitude
также удовлетворяет этому варианту использования и сохраняет информацию об «автоматически установленных» пакетах, чего нет у других методов. Запустите следующее на эталонном компьютере:
aptitude search -F '%p' '~i!~M' > package_list
Скопируйте package_list
на другую машину и запустите
xargs aptitude --schedule-only install < package_list; aptitude install;
aptitude search -F '%p' '~i!~M' > package_list
также должно работать нормально.
deborphan
@ bogdan.org.ua/2013/10/18/…
[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
, где поставить один или несколько sudo
s в командной строке восстановления? Или иначе получите root для запуска этой строки, предполагая, что это необходимо.
Это хорошая идея, и вы также можете настроить один сервер с apt-proxy, если у вас есть привычка.
Ответ 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)).
dpkg: warning: package not in status nor available database at line ...