Я хотел бы получить список пакетов, установленных в одной системе, и установить все из них в другой системе.
Я знаю, что dpkg --get-selections
может дать мне список всех установленных пакетов, которые я могу передать dpkg --set-selections
в целевой системе. Тем не менее, некоторые из установленных пакетов - это те, которые я сам собрал (используя, например, checkinstall), и их нет в репозиториях. dpkg --set-selections
Процесс потерпит неудачу , если он не в состоянии найти эти пакеты в репозиториях.
Так есть ли способ, которым я могу отфильтровать сгенерированный список dpkg --get-selections
так, чтобы он содержал только пакеты, чья текущая версия доступна в моих текущих репозиториях?
источник
total=$(dpkg --get-selections '*'|wc -l); i=0; dpkg --get-selections '*' | while read line; do i=$(($i+1)); apt-cache policy $(echo "$line" | cut -f1 ) | grep -q 'http://' && echo "$i/$total $line"; echo $line>>/var/tmp/dpkg-selection.list; done
Используйте следующую команду
в вашем домашнем каталоге будет создан файл с установленным программным обеспечением
на новой системе
это будет читать выбор и установить
источник