Переустановка приложений после новой установки?

8

Я нахожусь на Debian, и я хочу переразметить мой диск и переустановить. Есть ли простой способ восстановить все установленные в настоящее время пакеты после новой установки?

Я думаю сделать это, создав список приложений для резервного копирования:

#generate list of installed packages
dpkg -l | awk '{ print $2 }' ORS="\n" | tail -n +6 > reinstallList.txt

и тогда после выполнения новой установки я должен быть в состоянии сделать:

#install from backup at reinstallList.txt
sudo apt-get  install $(< reinstallList.txt)

Есть ли лучший способ сделать это?

nyxgeek
источник
1
Не забудьте сделать резервную копию / etc, чтобы вы могли легко восстановить параметры конфигурации для этих пакетов.
Энтон

Ответы:

7

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

dpkg --get-selections > /backup/installed-software.log

Затем, после переустановки, запустите это:

dpkg --set-selections < /backup/installed-software.log
apt-get dselect-upgrade

Очевидно, вы должны заменить /backup/installed-software.logимя некоторого файла, который вы можете сохранить во время процесса переустановки. Положить его на флешку было бы неплохо.

Для получения дополнительной информации см. Вики: https://wiki.debian.org/ListInstalledPackages

John1024
источник
Я использовал этот метод много раз.
Багамат
Отлично! Это именно то, что я искал. Спасибо!
nyxgeek
3

dpkg -lперечисляет все установленные пакеты (в списке, когда вы фильтруете его правильно). Вы можете получить тот же список с dpkg --get-selections(который не требует дополнительной фильтрации).

Это приводит к потере информации о пакетах, устанавливаемых вручную или автоматически. Очень удобно иметь библиотеки и другие пакеты, помеченные как только косвенно необходимые. Пакеты, помеченные как автоматически установленные, могут быть удалены или заменены различными пакетами без суеты. Dpkg не знает об автоматически установленных пакетах, только apt знает.

Чтобы вывести список пакетов, установленных вручную, вы можете использовать aptitude:

aptitude search -F %p '~i !~M' >reinstallList.txt

Без способностей это немного сложнее.

dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt

Чтобы установить все ранее установленные пакеты:

apt-get install $(cat reinstallList.txt)

В качестве альтернативы, вы можете использовать более обходной метод копирования списка установленных пакетов, а затем восстановить список пакетов, помеченных как автоматические. Для резервного копирования:

dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt

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

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
Жиль "ТАК - перестань быть злым"
источник