Назад | Перейти на главную страницу

Ubuntu, как настроить новую машину как существующую

У меня есть одна установка на компьютере с необходимыми мне приложениями, и я бы хотел установить то же самое на новом компьютере с Ubuntu.

Есть ли сценарий, который перечислит все установленные приложения, чтобы я мог различать поля и добавлять недостающие элементы?

Заранее спасибо, Крис

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

Кроме того, для более короткого списка, чем тот, который создается методом pjz, вы можете использовать

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

Это даст вам список пакетов, которые установят все остальные пакеты, которые вам потребуются в качестве зависимостей. Может быть полезно, если вы действительно хотите просмотреть список. (dpkg --get-selections создаст долго список). Кроме того, список достаточно короткий, чтобы вы могли добавлять новые строки и закомментировать записи с помощью '#'. Затем при установке дополнительных пакетов вы можете сделать

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

Таким образом, если есть несколько пакетов, которые вы хотите установить только на некоторых машинах, вам не нужно полностью удалять их из списка пакетов.

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 / и т. Д., Потому что вы знаете какие пакеты есть в системе.

На форумах Ubuntu есть хороший ответ

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

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

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

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

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

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

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

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

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

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

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

С помощью 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.

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