Восстановление всех данных и зависимостей из dpkg --set-selections '*'

Таким образом, я могу работать на одном компьютере:

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, но их громоздко использовать, учитывая (простую) задачу под рукой.

Кажется, что сохранение и восстановление выборок, как показано выше, недостаточно для восстановления тонких зависимостей установленных пакетов.

Есть ли способ создать резервную копию полного набора метаданных для управления пакетами и затем восстановить его полностью?

44
задан 17 May 2013 в 19:25

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)
0
ответ дан 17 May 2013 в 19:25

Выбранный ответ на этот вопрос является неполным и не работает (или больше не работает). Болезненным решением является использование цикла 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

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

0
ответ дан 17 May 2013 в 19:25

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

Похожие вопросы: