Библиотека сайта 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
Назад | Оглавление | Вперед |