Восстановление всех данных и зависимостей из 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

Я включил этот ответ здесь, так как эта страница появилась в начальных поисках в Интернете, но другой ответ не сделал. Этот метод выглядит намного проще.

Другие вопросы по тегам