Как сохранить установленные приложения при миграции Ubuntu на другую платформу? - PullRequest
14 голосов
/ 09 октября 2008

Я смотрю на переход с более старой AMD64 на новую двухъядерную систему Intel, которая является 32-разрядной Установка не проблема, но могу ли я перенести все установленные приложения? Я не была В Google можно найти все, что угодно, кроме случаев перехода на аналогичную платформу и файловую систему. Я не буду менять файловую систему, но платформа будет другой. Есть ли что-то в строках файла "World" в Gentoo?

Ответы [ 7 ]

34 голосов
/ 09 октября 2008

Вы можете легко сохранить свой список пакетов: см. «Man dpkg» и найдите --set-selections и --get-selections.

Основным из них является сохранение списка пакетов:

dpkg --get-selections > package_list

Чтобы восстановить этот список в другой системе:

cat package_list | sudo dpkg --set-selections && sudo apt-get dselect-upgrade

Перемещение по архитектурам означает, что некоторые пакеты будут недоступны. Они будут игнорироваться; например, ia32-libs не может быть установлен в 32-битной системе. Этот выбор будет игнорироваться, если вы переходите с x86-64 на x86.

4 голосов
/ 09 октября 2008

Забавно, здесь я использовал SO в качестве репозитория howto (напишите вопрос, а затем выберите свой собственный ответ), но за то время, которое потребовалось мне, чтобы написать свой собственный ответ, меня трижды избили! *

Во всяком случае, вот мое мнение для записи:

Используйте опции --get-selections и --set-selections в dpkg для захвата и выбора установленных на данный момент пакетов.

Сначала экспортируйте текущий список пакетов на вашу старую систему:

sudo dpkg --get-selections > mypackages.txt

Затем выберите этот список в качестве пакетов для установки в вашей новой системе:

sudo dpkg --set-selections < mypackages.txt

(Для дополнительной информации скопируйте каталог apt-кеша, чтобы минимизировать количество скачиваний: /var/cache/apt)

Наконец, скажите apt, чтобы загрузить и установить выбранные пакеты:

sudo apt-get dselect-upgrade
2 голосов
/ 30 августа 2014

Это то, что я обычно делаю, чтобы решить аналогичную проблему (несколько раз мигрировал на новый ноутбук).

Есть два дополнения к другим ответам на этот вопрос, это также переместит ваши настройки update-alternatives и debconf, что всегда занимает много времени, чтобы понять, что они не были переданы.

Резервное копирование на старой системе:

sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections

Скопировать каталог конфигурации в систему новостей ("scp -r oldsystem:system-selections ~"):

sudo apt-get install dselect debconf-utils
sudo dselect update
sudo dpkg --set-selections  < system-selections/dpkg-selections
sudo debconf-set-selections < system-selections/debconf-selections
sudo apt-get -u dselect-upgrade
sudo update-alternatives --set-selections < system-selections/alternatives-selections

Кроме того, вы можете использовать тот же метод, чтобы регулярно делать резервные копии вашего домашнего каталога и system-selections (упоминалось выше) в удаленном хранилище. Так что в случае поломки / кражи вашего ноутбука, создание подобной системы довольно быстро.

2 голосов
/ 04 ноября 2010

Если (как и я) вы не делали этого до того, как испортили свою систему, вы можете загрузить live-cd или другую установку и использовать chroot для получения этой информации.

sudo chroot /path/to/old/system /bin/bash

Затем выполните танец dpkg --get-selections, и вы можете использовать полученный файл для настройки новой системы.

2 голосов
/ 09 октября 2008

Для всего, что вы использовали для установки apt-get, если вы хотите создать запись о том, что установлено, выполните следующее:

dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt

Это создаст текстовый файл со всеми установленными вами пакетами. Затем, после установки, создайте и запустите скрипт со следующим:

#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done

Примечания:
1) Поскольку вы переходите с 64-разрядной системы на 32-разрядную, некоторые пакеты могут быть несовместимы. Перед запуском вышеописанного сценария я бы запустил grep packages.txt для '64' и нашел бы альтернативы, если они необходимы.
2) Все, что вы установили из исходного кода, вы должны будете записать и установить из исходного кода снова.

Удачи!

1 голос
/ 16 марта 2010

Я не уверен, что это ответ, но я только что обнаружил существование команды aptitude-create-state-bundle. Да, это одна команда. Проверьте справочную страницу.

1 голос
/ 09 октября 2008

Лучший способ, о котором я могу подумать, это создать резервную копию списка установленных пакетов в вашей текущей системе, а затем использовать этот список, чтобы установить, какие пакеты установить в новой системе. Общие инструкции по резервному копированию и восстановлению выбранных пакетов:

Установка инструментов

sudo apt-get install dselect

Список пакетов резервного копирования

dpkg --get-selections | grep -v deinstall > ubuntu-files

Восстановить выбор пакетов

sudo apt-get update
sudo apt-get dist-upgrade
dpkg --set-selections < ubuntu-files
sudo dselect

Это откроет сеанс dselect. Введите ‘I‘ и разрешите dselect установите пакеты, перечисленные в вашем документе ubuntu-files. Когда он закончится, введите ‘Q‘ и нажмите клавишу ВВОД, чтобы выйти из dselect.

...