Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Установка новых программных пакетов

Как на новом компьютере создать Debian систему с привычным набором пакетов

Оригинал: Copying Debian package selections to a new machine
Автор: Ryan Cartwright
Дата: 4 ноября 2010
Свободный перевод: Алексей Дмитриев
Дата перевода: 20 ноября 2010

Многие устанавливают GNU/Linux систему всего один раза. Или дважды. Затем, при помощи великолепных систем управления пакетами, обновляют дистрибутив по мере появления новых релизов. Пользователи Debian и подобных систем (таких как Ubuntu) вполне свыклись с мыслью, что система устанавливается только раз. Но как быть, если нужно перенести систему на другую машину? Клонировать? Это возможно только если оба компьютера имеют одинаковый набор "железа". А если один имеет процессор Intel Pentium, а другой ≈ AMD64? Тогда придется каким-то образом скопировать набор пакетов, но с поправкой на новую архитектуру.

Тут нам поможет программа dpkg.

Программа dpkg

Программа dpkg является одним из базовых приложений Debian и необходима для управления пакетами. Неважно какую программу управления пакетами вы используете для установки, удаления, обновления и управления послеустановочными процессами, она опирается на dpkg. Так что, применяете ли вы apt, aptitude, synaptic или любой другой менеджер пакетов, dpkg обязательно участвует в работе.

Сама по себе программа dpkg умеет многое, но, по правде сказать, пользоваться ей каждый раз довольно утомительно. Вот почему для нее создано столько надстроек. Дело в том, что dpkg не работает с зависимостями, оставляя это дело для apt и остальных. Программа dpkg чисто консольная, так что если вы не привыкли к работе в командной строке, вам придется размять свои пальцы на клавиатуре.

План работы

Прежде всего сделайте резервную копию своей системы. Я не отвечаю, если вы снесете свою систему, или лишитесь ценных данных.

Коротко предстоящий нам процесс можно разделить на четыре шага:

  1. Установить и настроить систему Debian по своему вкусу
  2. Подготовить список установленных пакетов
  3. Установить базовую систему Debian на новой машине
  4. Пользуясь списком из шага 2, установить пакеты в новой системе

Я буду описывать процесс переноса с точки зрения Debian. Не сомневаюсь, что метод будет работать на Дебианоподобных системах, вроде Ubuntu, но у меня нет опыта установки таких систем. Прежде всего имеется ввиду установка минимальной базовой системы и тому подобное.

Шаг 1 ≈ Установка и настройка первой системы Debian

Полагаю, что первый шаг у вас давно уже сделан. Иногда стоит удалить некоторые пакеты, входящие в базовую инсталляцию, но не являющиеся ключевыми. Например, я часто удаляю множество пакетов xserver-xorg-video, которые суть графические драйверы для "железа", которого в моем компьютере просто нет. Это облегчит последующую работу.

Шаг 2 ≈ Создание списка установленных пакетов

На этом этапе dpkg вступает в действие. Откройте терминал и получите права root при помощи команды su. Затем введите команду:

 # dpkg --get-selections

Поскольку вывод будет внушительным, его лучше перенаправить в файл, например вот так:

 # dpkg --get-selections > /tmp/package_list

Теперь список пакетов будет в файле /tmp/package_list. Обратите внимание, что в списке только названия пакетов, безо всяких версий, то есть пользовательская конфигурация не сохранена. Новой системе придется устанавливать версии пакетов, нужные именно ей. Этот файл следует сохранить на флешку, так как он нам понадобиться позднее и на другой машине.

Шаг 3 ≈ Установка базовой системы Debian на новой машине

Я не стану описывать процесс инсталляции Debian, на этот счет есть масса руководств. Наша задача установить минимально возможную систему. На практике это означает не выбирать ни одну из предложенных установщиком задач. На одном из этапов установки Debian вам предлагается список задач, для выполнения которых требуется установить те или иные пакеты. В числе прочих, там будут задачи Desktop Environment, Mail Server, Print Server и так далее. Этот список ≈ одна из замечательных особенностей инсталлятора Debian, позволяющий устанавливать группы пакетов, нужные для вашей системы.

В нашем же конкретном случае, он позволяет нам не выбрать ни одной задачи, не исключая и Standard System. То есть мы не ставим ни одной галочки ни в одном квадратике. В результате будет установлен только "костяк" Debian.

Когда я делаю подобные инсталляции, то стараюсь пользоваться так называемыми "business-card" .iso файлами. Это минималистические (35Mb) iso файлы, которые впоследствии докачивают нужные пакеты из Сети.

Шаг 4 ≈ Установка пакетов при помощи готового списка

Когда вы установили новую систему и перезагрузились, то увидите приглашение командной строки. Залогиньтесь как root и обновитесь:
# apt-get update
# apt-get upgrade

Теперь нужно сообщить системе, какие пакеты мы хотим установить. В дело снова вступает dpkg. Вставьте вашу флешку и примонтируйте ее. У нас ведь минимальная система и никакого автомонтирования. Не стану рассказывать, как монтировать флешку. Когда вы найдете файл packages_list, то запускайте по очереди две команды:

# dpkg --set-selections < /путь_к_файлу/packages_list
 
# apt-get -u dselect-upgrade

Первая команда осуществляет выборку пакетов из файла packages_list. Вторая команда обновляет систему пакетами, предоставленными dpkg. Процесс может занять изрядно времени, зато по окончании его у вас будет новая система с теми же пакетами, что и в старой системе. А главное, все эти пакеты будут обновлены до новейшей версии, все зависимости будут учтены и установлены.

Предлагаемый метод довольно гибок. Можно получить список пакетов из нестабильной ветви Sid и использовать его при установке новейшей тестовой версии Debian. Хотя я бы не рекомендовал заходить столь далеко.

Переход от тестовой к стабильной версии вряд ли получится, так как часть Testing пакетов может отсутствовать в Stable.

Можно также прописать команду

 # dpkg --get-selections > /tmp/package_list

в планировщике cron, или запустить ее непосредственно перед апгрейдом

 # apt-get dist-upgrade

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

Я не стал бы применять этот метод для установки дистрибутива на множество одинаковых машин ≈ для этого удобнее создание специального образа или клонирование.

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