У меня есть одна установка на компьютере с необходимыми мне приложениями, и я бы хотел установить то же самое на новом компьютере с 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 есть хороший ответ
Некоторые дополнительные ссылки из обсуждения на форумах:
Лучшими командами 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.