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








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

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

Приемы работы в Ubuntu.
Глава 6: Управление пакетами

Оригинал: "Ubuntu Hacks: Chapter 6 - Package Management"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Совет # 66: Преобразовываем систему Debian в систему Ubuntu

Преобразуем существующую инсталляцию Debian в Ubuntu без переустановки системы с нуля.

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

Выполняем преобразование

Наивно пытаться преобразовывать существующую систему Debian в Ubuntu только отредактировав файл /etc/apt/sources.list, заменяя в нем все ссылки на архивы Debian, эквивалентными ссылками для Ubuntu, а затем обновив все пакеты. Это хорошее начало, но, к сожалению, скорее всего, вы останетесь с явно вышедшей из строя системой, поскольку многие библиотеки в Debian будет иметь более новые версии, чем эквивалентные библиотеки в Ubuntu, так что нужно потрудиться чуть больше с тем, чтобы, в конечном итоге, можно было пользоваться системой.

Отредактируйте ваш файл /etc/apt/sources.list – закомментируйте в нем все архивы Debian и добавьте ссылки на архивы Ubuntu. Если вам потребуется сгенерировать файл sources.list, вы можете воспользоваться инструментальным средством "source-o-matic", которое доступно по ссылке http://www.ubuntulinux.nl/source-o-matic, либо вы можете в качестве отправной точки просто сделать несколько базовых записей:

deb http://archive.ubuntu.com/ubuntu dapper main restricted

deb http://security.ubuntu.com/ubuntu dapper-security main restricted

Затем обновите список пакетов и установите sudo, если вы этого еще не сделали:

# apt-get update
# apt-get install sudo

Поскольку основному пользователю в Ubuntu многое разрешено с привилегиями sudo, также будет хорошо, если вы отредактируете ваш файл /etc/sudoers, запустив для этого visudo и добавив следующую строку:

%admin  ALL=(ALL) ALL

Затем поместите вашего основного пользователя в группу admin, заменив username на фактическое имя пользователя:

# usermod username -g admin

Поскольку первый этап состоит в последовательной установке всех пакетов, вы можете вручную принудительно заменить все пакеты, которые есть в вашей системе, на соответствующие версии, имеющиеся в Ubuntu. Однако в типичной системе Debian установлено более тысячи пакетов, так что эта процедура может оказаться весьма утомительной. Вы можете сэкономить немного времени, если напишите следующий небольшой скрипт:

#!/bin/sh
for name in \Qdpkg --get-selections | grep '[[:space:]]install$' \\
  | awk '{print $1}'\Q
do
   sudo apt-get install --assume-yes ${name}=\Qapt-cache show $name \\
     | grep '^Version' | awk '{print $2}'\Q
done

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

$ sudo apt-get update
$ sudo apt-get dist-upgrade

Как только у вас все существующие пакеты будут заменены версиями из Ubuntu, можно перейти к получению базовых пакетов Ubuntu:

$ sudo apt-get install ubuntu-standard ubuntu-desktop

Результат, возможно, будет не идеальным, но вы должны получить систему, которая будет разумным приближением полной установки Ubuntu.

Объединяем Ubuntu и Debian

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

Начните с добавления в файл etc/apt/sources.list записей о некоторых основных архивах Debian:

deb http://ftp.us.debian.org/debian sarge main non-free contrib
deb http://non-us.debian.org/debian-non-US sarge/non-US main contrib non-free

Создайте файл /etc/apt/preferences, если у вас его еще нет, и поместите в него следующие записи:

Package: *
Pin: release a=dapper
Pin-Priority: 700

Package: *
Pin: release a=sarge
Pin-Priority: 600

В этих записях пакетам Dapper присваивается более высокий приоритет, чем пакетам Sarge, так что если вы выполняете для пакета команду apt-get install foo, система будет пытаться установить версию пакета Dapper, если он доступен, и, в случае необходимости, вернется к использованию пакетов Debian. В действительности алгоритм определения приоритета пакетов более сложный, чем просто сравнение значений приоритетов, и чтобы полностью его понять, вам нужно прочитать руководство по apt_preferences (man apt_preferences).

Поскольку в Ubuntu для проверки сигнатур пакетов используется новая инфраструктура безопасности, вам также потребуется установить ключ архивов Debian, либо ваша система будет каждый раз запрашивать подтверждение, когда она будет пытаться устанавливать пакет из архивов Debian. Ключи архивов Debian меняются каждый год, но их можно получить по ссылке http://ftp-master.debian.org/ziyi_key_ <year>.asc, где <year> указывает текущий год. Используйте wget чтобы получить текущий ключ и использовать его как ключ GPG для проверки сигнатур:

$ wget http://ftp-master.debian.org/ziyi_key_2006.asc
$ gpg --import ziyi_key_2006.asc
gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
$ gpg --fingerprint 2D230C5F
pub   1024D/2D230C5F 2006-01-03 [expires: 2007-02-07]
      Key fingerprint = 0847 50FC 01A6 D388 A643  D869 0109 0831 2D23 0C5F
uid          Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org>

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

Теперь добавьте ключ к apt для того, чтобы можно было проверять подлинность пакетов, подписанных этим ключом:

$ gpg --armor --export 2D230C5F | sudo apt-key add -

Теперь вы можете устанавливать пакеты либо из Ubuntu, либо из Debian. Для любых пакетов, которые вы хотите взять конкретно из архива Debian, к apt нужно добавить флаг -t (и указать релиз):

$ sudo apt-get install -t sarge myprogram

Назад Оглавление Вперед