Ubuntu, як налаштувати нову машину на зразок існуючої


27

У мене є одна установка машини з потрібними програмами, і я хотів би встановити те саме на новому вікні Ubuntu.

Чи є скрипт, в якому будуть перераховані всі встановлені додатки, щоб я міг відрізнятись між полями і так додавати відсутні елементи?

Заздалегідь дякую, Кріс

Відповіді:


18

Як і трюки з dpkg, згадані pjz, ви також можете подивитися на etckeeper ( навчальний посібник ) - додаток, який ставить ваш / etc / * під контроль версій, що полегшує пошук змін, які ви зробили, та повторення їх іншим сервери.

Крім того, для коротшого списку, ніж список, створений методом pjz, ви можете використовувати

$ deborphan -a --no-show-section > /tmp/mypackagelist

Це дасть вам список пакетів, які встановлять усі інші пакунки, які вам потрібні як залежності. Може бути корисним, якщо ви насправді хочете переглянути список. (dpkg --get-selections створить список луонг ). Крім того, список є досить коротким, що ви можете додавати нові рядки та коментувати записи за допомогою "#". Тоді при встановленні додаткових пакетів ви можете це зробити

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

Таким чином, якщо є деякі пакети, які ви хочете встановити лише на деяких машинах, вам не доведеться видаляти їх зі списку пакунків.


etckeeper виглядає дуже цікаво (+1).
jkp

17
dpkg --get-selections >/tmp/mypackagelist

повинен зробити трюк. Потім, переконавшись, що ваш /etc/apt/sources.list на новій машині має той самий набір записів, що і на старій, скопіюйте mypackagelist на нову машину і зробіть:

cat mypackagelist | xargs apt-get -y install 

і вам слід добре піти.

Зауважте, що рядок dpkg --get-select також є хорошою інформацією, яку потрібно вводити у / etc / dir випадково - це означає, що вам не доведеться турбуватися створювати резервну копію / bin / та / usr / bin /, і таке, тому що ви знаєте які пакунки є в системі.


Так, Джефф, але як щодо модифікацій файлів конфігурації? як щодо параметрів переналаштування dpkg? як щодо dd
імен

2

На форумах Ubuntu є хороша відповідь

  1. На старій машині: $ dpkg --get-selection> встановлене програмне забезпечення
    • Це отримає ваш список встановлених додатків
  2. На новій машині: $ dpkg - набір-вибір
    • Це встановлює нову машину для установки пакетів, які наразі не встановлені на новій машині.
    • Можливо, буде цікаво дізнатися, чи є на новій машині деякі пакети, не встановлені на старій машині, тож ви можете знайти команду dpkg --get-select> на новій машині, а потім скористатись diff для порівняння вихідних файлів обох.
  3. Нарешті, на новій машині: $ dselect і пакети будуть встановлені.

Деякі додаткові посилання з обговорення на форумах:

  1. Не забувайте свої клавіші gpg (з тієї ж теми)
  2. Як встановити всі потрібні пакети та видалити всі небажані пакети

2

Кращими командами dpkg можуть бути [оригінальна машина]

dpkg --get-selections | grep -v deinstall > packages_list

потім при установці [нова машина; після перенесення пакетів_списку]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade

1

Якщо ви не шанувальник CLI (хоча це насправді повинно бути), ви можете скористатися диспетчером пакетів Synaptic, щоб зберегти зображення встановлених пакетів, і використовувати цей файл (знову через Synaptic) для завантаження нової машини. Під опцією файл / збереження маркування є прапорець під назвою "зберегти повний стан".


Я думаю, що це був метод, який Корі знайшов
jbdavid

1

Чому ви просто не клонуєте машину, використовуючи dd?


1
Це. Просто клонуйте машину і змініть назву, це далеко не найшвидший спосіб зробити це.
pjc50


1

Використання FSArchiver для копіювання машин є цілком прийнятним. В іншому випадку, тут є корисні пари команд, першу половину яких ви також можете додати до резервного крона:

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

Місця, які слід повторити, / etc та / var. Вищевказані команди безпосередньо маніпулюють декількома файлами в / var, а деякі конфіліруються в / etc побічно через debconf. Ви отримаєте той самий ефект, просто копіюючи ці підкреслення та виконуючи здатність.


0

Я думаю, що Docker це був би спосіб зробити це зараз - визначте вимоги в Dockerfile - ви можете запустити його на будь-якому хості Docker.

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