Як перенести встановлені пакети та налаштування з одного дистрибутива в інший?


16

Я вже кілька місяців вивчаю навчання та про систему Linux через VirtualBox і вирішив, що хочу зробити її основною ОС та встановити її на мій жорсткий диск. У мене є декілька файлів, пакетів та налаштувань (наприклад, зміни в .bashrc), які я хотів би перенести, коли встановлю його безпосередньо на свій жорсткий диск, тож як це зробити? Крім того, зараз я запускаю Ubuntu, якщо я вирішу переключитися на подібний дистрибутив на основі Debian або RPM, RHEL, чи це буде той самий процес? Які міркування мені доведеться враховувати, якщо такі є?


Ubuntu - похідне Debian. Усі похідні Debian дуже схожі, так як в пакунках усі мають однакове ім'я, управління пакетами, конфігурацію тощо та всі дуже схожі. Однак дистрибутиви Red Hat, такі як Fedora, CentOS тощо, не настільки схожі в таких питаннях, як управління пакетами, хоча вони в основному однакові. Ви маєте змогу здебільшого вміти копіювати налаштування / конфігурацію тощо з ОС в сім'ї Debian в ті, що в родині RH.
Faheem Mitha

Відповіді:


32

Управління пакетами - один з основних диференціаторів між дистрибуціями. Між непов'язаними дистрибутивами ви не зможете робити нічого автоматичного. Різні дистрибутиви розбивають програмне забезпечення на різні набори пакунків і використовують різні назви.

Між машинами, що працюють в одній версії одного і того ж дистрибутива, ви можете досягти подібної установки, відтворивши список встановлених пакетів. У системах, що використовують apt, такі як Debian і похідні (Ubuntu, Mint, ...), використовуйте apt-clone. Див. Як я копіюю вибрані пакети з однієї системи Debian в іншу? (Debian Wheezy) для точних команд. Коротше кажучи, на старій машині:

sudo apt-get install apt-clone
apt-clone clone foo

Скопіюйте foo.apt-clone.tar.gzна нову машину і запустіть

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-cloneможе працювати між пов'язаними дистрибутивами, наприклад, Debian та Ubuntu. Використовуйте restore-new-distroзамість restoreцього випадку. Якщо це не вдається, скористайтеся ручним методом з dpkg --get-selectionsі apt-markі поводьтеся зі списком пакунків, поки apt не буде задоволено.

Для ваших власних налаштувань це простіше: просто скопіюйте крапкові файли з домашнього каталогу. Як правило, конфігуруйте речі, не пов’язані з обладнанням у вашому обліковому записі, а не загальносистемним; це полегшить їх копіювання на іншу машину.


Перевага перед другою відповіддю нижче полягає в тому, що цей метод швидший, оскільки пропускається повільний Інтернет і швидше використовувати USB 3. Можуть бути й інші переваги ???
WinEunuuchs2Unix

@ WinEunuuchs2Unix Список пакунків становить лише кілька кілобайт. Передача по Інтернету займає менше часу, ніж пошук USB-ключа, не кажучи вже про його встановлення та вибір файлів для копіювання тощо.
Жил "ТАК - перестань бути злим"

@ Джилс нерозумно мене. Я думав, що foo.apt-clone.tar.gzце стиснута куля смоли з усіх встановлених двійкових файлів. Не усвідомлював, що це просто список встановлених пакетів. Чи включає він також номери версії, що стримується?
WinEunuuchs2Unix

Багато помилок.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Я думаю, що apt-клон включає всі стану dpkg, включаючи пакети, що утримуються. Зауважте, що якщо ви хочете клонувати повну інсталяцію, це зовсім інша справа: сенс apt-клонування полягає в тому, що ви маєте більше пропускну здатність між машиною 2 та пакетним дзеркалом, ніж між машиною 1 та машиною 2 (або менш дорогою пропускною здатністю, у що ви не хочете тримати машину 1 занадто зайнятою під час налаштування машини 2). Apt-клон працює найкраще, коли всі версії пакетів на вихідній машині встановлені.
Жил "ТАК - перестань бути злим"

10

Якщо ви перебуваєте в сім'ї Debian, так, ви можете передати їх дуже легко. Просто перерахуйте встановлені пакети, збережіть їх у файл, а потім прочитайте цей файл, щоб перевстановити їх:

  1. Збережіть встановлені пакети у файлі installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. У новоствореному дистрибутиві на базі Debian встановіть збережені пакети:

    sudo apt-get install $(cat installed)
    

Крім того, ви можете використовувати для цього інструмент GUI. М’ята має дуже приємну назву mintbackup:

скріншот зворотного копіювання

Потім від нової установки:

ще один скріншот mintbackup


Було dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgб рівнозначно? Крім того, як щодо використання yum install чужорідних на RHEL / Fedora / CentOS?
Сергій Колодяжний

1
Не просто відтворюйте виділення, а відтворюйте список автоматично встановлених пакетів, інакше він стає безладним. Там apt-cloneзараз, що це автоматизує. Дивіться unix.stackexchange.com/questions/191662/…
"SO- перестань бути злим"

Було б корисно також копіювати пакети, що зберігаються. тобто Conky 1.9 проводиться так, що Conky 1.10 не придушує речі. Частина відповіді була б у потоці AskUbuntu .
WinEunuuchs2Unix

1
Ця відповідь швидша, ніж відповідь у верхній частині, і не має безлічі повідомлень про помилки, як apt-cloneописано вище. 1/3 цих помилок, розміщених у коментарі вище.
WinEunuuchs2Unix

Чудово виглядає, але чи можна використовувати mintbackup в ubuntu 18.04?
WebComer

1

Налаштування зазвичай зберігаються в /etc/. тощо може бути корисним. Його головне призначення - перетворитись /etc/у сховище git, але воно також фільтрує деякі частини, які ви б не хотіли копіювати, якщо я добре розумію. Отже, якщо ви знайомі git, можливо, вам буде краще скористатися etckeeperдля об'єднання змін у новій установці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.