Таким образом, я могу работать на одном компьютере:
dpkg --get-selections '*' > selection.txt
На другом компьютере:
dpkg --set-selections < selection.txt
... с одним из следующих:
aptitude install
apt-get -u dselect-upgrade
[ 1114] ... чтобы установить пакеты, которые.
Однако, похоже, что некоторая информация теряется в процессе, например, был ли пакет (скажем, xyz
) установлен автоматически в зависимости от другого пакета (abc
). Вы можете видеть это всякий раз, когда вы делаете что-то вроде apt-get --purge remove abc
. На исходном компьютере вы будете уведомлены, что пакет xyz
был установлен как зависимость abc
и что вы можете использовать apt-get autoremove
, чтобы избавиться от него.
Теперь я знаю о deborphan
и debfoster
, но их громоздко использовать, учитывая (простую) задачу под рукой.
Кажется, что сохранение и восстановление выборок, как показано выше, недостаточно для восстановления тонких зависимостей установленных пакетов.
Есть ли способ создать резервную копию полного набора метаданных для управления пакетами и затем восстановить его полностью?
Резервное копирование:
apt-mark showauto > pkgs_auto.lst
apt-mark showmanual > pkgs_manual.lst
Восстановление:
sudo apt-mark auto $(cat pkgs_auto.lst)
sudo apt-mark manual $(cat pkgs_manual.lst)
Выбранный ответ на этот вопрос является неполным и не работает (или больше не работает). Болезненным решением является использование цикла bash for для анализа выходных файлов * .lst и передачи их в apt install
. Плохой выбор, однако, здесь не будет проиллюстрирован.
Лучше выбрать apt-clone
, как видно из этого ответа в Unix & amp; Linux Stackexchange. Это создает небольшой файл (около 100 КБ или менее для моей системы). Предположительно, он будет клонировать пакеты без особых усилий или боли.
Итак, вкратце, на исходном компьютере:
apt-clone clone `uname -n`
Затем на компьютере, на котором нужно клонировать, скопируйте файл клона и запустите:
apt-clone restore original-machine-name.apt-clone.tar.gz
ответ здесь, так как эта страница появилась в начальном поиске в Интернете, а другой ответ - нет. Этот метод выглядит намного проще.