Как мне сохранить установленные приложения при переносе Ubuntu на другую платформу?

StackOverflow https://stackoverflow.com/questions/187629

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Основное из этого - сохранить список пакетов:

dpkg --get-selections > package_list

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

cat package_list | sudo dpkg --set-selection & amp; & amp; sudo apt-get dselect-upgrade

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

Другие советы

Забавно, здесь я использовал 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

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

Удачи вам!

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

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

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

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

Есть два дополнения к другим ответам на этот вопрос, это также перенесет ваши настройки 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-selection (упомянутых выше) в удаленном хранилище. Так что в случае поломки / кражи вашего ноутбука, создание подобной системы довольно быстро.

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

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

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

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. Тип & # 8216; I & # 8216; и разрешить dselect установите пакеты, перечисленные в вашем документе ubuntu-files. Когда он будет завершен, введите & # 8216; Q & # 8216; и нажмите клавишу ВВОД, чтобы выйти из dselect.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top