Восстановление всех данных и зависимостей из dpkg --set-selections '*'
Так что я могу работать на одной машине:
dpkg --get-selections '*' > selection.txt
На другой машине:
dpkg --set-selections < selection.txt
... сопровождается одним из следующих:
aptitude install
apt-get -u dselect-upgrade
... чтобы установить пакеты, которые.
Тем не менее, кажется, что некоторая информация теряется в процессе, например, пакет xyz
) устанавливается автоматически как зависимость от другого пакета (abc
). Вы можете видеть, что когда вы делаете что-то вроде apt-get --purge remove abc
, На оригинальной машине вы будете уведомлены, что пакет xyz
был установлен как зависимость abc
и что вы можете использовать apt-get autoremove
чтобы избавиться от этого.
Теперь я в курсе deborphan
а также debfoster
, но они громоздки в использовании, учитывая (простую) задачу под рукой.
Кажется, что сохранения и восстановления выбранных параметров недостаточно для восстановления тонких зависимостей установленных пакетов.
Есть ли способ создать резервную копию полного набора метаданных для управления пакетами и восстановить его полностью?
2 ответа
Резервное копирование:
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)
Выбранный ответ на этот вопрос является неполным и не работает (или больше не работает). Болезненным решением является использование цикла for bash для анализа выходных файлов *.lst и передачи их в apt install
, Плохой выбор, тем не менее, не будет здесь проиллюстрирован.
Лучший выбор - использовать apt-clone
, как видно из этого ответа на Unix & Linux Stackexchange. Это создает небольшой файл (около 100 КБ или менее для моей системы). Предположительно, он будет клонировать пакеты без особых усилий или боли.
Итак, вкратце, на оригинальной машине:
apt-clone clone `uname -n`
Затем на компьютере, на котором нужно клонировать, скопируйте файл клона и запустите:
apt-clone restore original-machine-name.apt-clone.tar.gz
Я включил этот ответ здесь, так как эта страница появилась в начальных поисках в Интернете, но другой ответ не сделал. Этот метод выглядит намного проще.