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-selections также полезна для размещения в вашем / etc / dir в некоторых случаях - это означает, что вам не нужно беспокоиться о резервном копировании / bin / и / usr / bin / и тому подобное, потому что вы знаете какие пакеты в системе.

pjz
источник
Да, Джефф, но как насчет изменений в файлах конфигурации? как насчет параметров dpkg-переконфигурировать? как насчет имен хостов ... пользователи, акции, монтирования ... Смотрите мой отзыв о ddниже
elcuco
2

Ubuntu Forums имеет хороший ответ

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

Некоторые дополнительные ссылки из обсуждения на форумах:

  1. Не забудьте свои ключи gpg (из той же ветки)
  2. Как установить все нужные пакеты и удалить все нежелательные пакеты
pcapademic
источник
2

Лучшими командами dpkg могут быть [оригинальная машина]

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

затем при установке [новая машина; после передачи пакетов

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade
Benji
источник
1

Если вы не являетесь поклонником CLI (хотя это действительно так и должно быть), вы можете использовать менеджер пакетов Synaptic, чтобы сохранить образ установленных пакетов, и использовать этот файл (снова через Synaptic) для загрузки нового компьютера. Под опцией файла / сохранения маркировки есть флажок, который называется «сохранить полное состояние».

Nerdfest
источник
Я думаю, что это был метод, который нашел Кори
jbdavid
1

Почему ты просто не клонируешь машину dd?

elcuco
источник
1
Это. Просто клонируйте машину и измените имя, это самый быстрый способ сделать это.
pjc50
1

Существует инструмент под названием ReMasterSys, который может сделать это за вас. см. http://geekconnection.org/remastersys/

Я надеюсь, что это будет полезно.

user46844
источник
1

Использование FSArchiver для копирования машин вполне приемлемо. В противном случае, вот полезные пары команд, первую половину которых вы также можете добавить в свой резервный cron:

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. Вы получите тот же эффект, просто скопировав эти поддеревья и запустив aptitude.

Tobu
источник
0

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

Крис Кимптон
источник