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

UnixForum






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

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

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

Использование APT в Red Hat 8.0

Предисловие

Довольно часто пользователи Red Hat сталкиваются с неудобством этого дистрибутива в плане управления пакетами. Особенно это касается начинающих пользователей, потому что старики уже привыкли к этой особенности. А неудобство заключается в том, что менеджер пакетов Red Hat, который называется rpm, ничего не знает о пакетах, которые не установлены в системе. С одной стороны это логично - точно также ведут себя и другие низкоуровневые менежеры пакетов (например dpkg) с другой стороны это причиняет массу неудобств.

Действительно, если для dpkg в дистрибутиве Debian GNU/Linux написаны высокоуровневые оболочки (или как их называют front-end) такие как dselect и APT, то в Red Hat, пользователь, который не поставил что-то при начальной установке становится как круглый сирота. Вот вроде есть CD с дистрибутивом, вот вроде бы изучили как работать с rpm и пытаемся поставить скажем sox командой
rpm -i sox-12.17.3-7.i386.rpm
а в итоге получае ответ, что есть, мол, неудовлетворенные зависимости:
libogg.so.0
libvorbisenc.so.2
libvorbisfile.so.3
libvorbis.so.0
Что сразу может поставить в тупик - где брать эти *.so? Ладно, если существуют пакеты libogg*.rpm и libvorbis*.rpm, тогда все более или менее понятно. Но довольно часто вы можете получить и такое, что просто по имени пакета вы не найдете. Что же делать тогда? Все что можно сделать в обычном случае - это написать что-то типа:
for i in *.rpm; do echo $i; rpm -qp $i --provides | grep нужный_вам_файл;done
И запускать это на всех 3-х CD дистрибутива, чтобы наконец найти тот пакет, который предоставляет нужный вам файл. Не говоря уже о том, что это долго, это также и очень неудобно. В Red Hat 8.0 попытались сделать в этом плане шаг навстречу пользователям и написали инструмент, который по внешнему виду очень напоминает инструмент управления установкой и удалением программ в Windows 2000, и который может помочь при установке или удалении пакетов, входящих в дистрибутиве. Но как быть с теми пакетами, которые вы собрали сами или нашли в Интернет? Проблемы остаются.

Тем не менее это решаемые проблемы. Некоторые дистрибутивы, основанные на rpm обзавелись своими собственными выскоуровневыми инструментами. Не давая здесь их обзора, заметим, что некоторые из них можно вполне использовать и в Red Hat. APT, что расшифровывается как Advanced Package Tool (в русском переводе "Продвинутый инструмент для работы с пакетами"), был первоначально разработан для дистрибутива Debian GNU/Linux и менеджера пакетов dpkg. Однако, удобство его использования пришлось по вкусу и пользователям других дистрибутивов. Тогда разработчики бразильского дистрибутива Connectiva Linux, написали код, которые сделал возможным работу APT с rpm. Чтобы обеспечить пользователям максимальное удобство, был также написан графический интерфейс для APT, который называется Synaptic. Именно об этих инструментах далее и пойдет речь.

Где взять и как установить?

Начнем мы конечно с APT. Брать надо здесь: http://freshrpms.net. Это сайт, на котором есть разделы посвященные Red Hat разных версий. На нем всегда можно найти самые свежие версии очень полезных программ, собранных для дистрибутива Red Hat. Сборка происходит довольно качественно и могу отметить, что у меня ни разу не было проблем с совместимостью пакетов с этого сайта и пакетов дистрибутива Red Hat, для которого они были собраны.

Итак, заходим на сайт и переходим в раздел Red Hat 8.0. Затем выкачиваем оттуда один единственный пакет - apt. На момент написания данной статьи это apt-0.5.4cnc9-fr1.i386.rpm. Устанавливаем его обычным образом:

rpm -i apt-0.5.4cnc9-fr1.i386.rpm

Установка на этом не кончается. Это как-то связано с работой rpm, но для того, чтобы вы потом могли нормально генерировать списки пакетов, необходимо провести следующую операцию:

rpm --import /usr/share/doc/redhat-release-8.0/RPM-GPG-KEY

Далее нужно настроить APT.

Настройка APT

Сперва надо подготовить каталоги для хранения пакетов. У меня это выглядит так:

  • Создан каталог /var/APT/RedHat/8.0/en/i386. Разумеется, что вы можете создать каталог и в другом месте и с другим именем. В этом вас никто не ограничивает.
  • В этом каталоге созданы два подкаталога RPMS.os и RPMS.my. В RPMS.os я переписал пакеты с 3-х дистрибутивных дисков Red Hat 8.0. В RPMS.my лежат собранный мной пакеты и пакеты надерганные из Internet. Окончательный вид дерева каталогов дан ниже:
    /var
       /APT
          /RedHat
	     /8.0
	       /en
	         /i386
		    /RPMS.os
		    /RPMS.my
  • В файле /etc/apt/sources.list у меня сделаны две записи. Первая соответствуют моему хранилищу, вторая репозитарию пакетов на сайте http://freshrpms.net
rpm file:/var/APT RedHat/8.0/en/i386 os my
rpm http://apt.freshrpms.net redhat/8.0/en/i386 os updates freshrpms

Далее, чтобы APT мог работать с нашим хранилищем (репозитарием) пакетов, мы должны изготовить список пакетов. Я это делаю командой:

genbasedir --bloat --flat --bz2only /var/APT/RedHat/8.0/en/i386 my os

Команда требует базовый каталог в качестве первого аргумента (в нашем случае /var/APT/RedHat/8.0/en/i386) и суффиксы подкаталогов RPMS.*, находящихся в этом каталоге (в данном случае это my и os, так как есть два подкаталога RPMS.my и RPMS.os). После выполнения команды в /var/APT/RedHat/8.0/en/i386 появится еще один подкаталог: base, в котором будут содержаться служебные файлы для APT. Особый интерес представляют файлы pkglist.*, которые и являются списками пакетов.

Теперь когда мы настроили APT, можно перейти непостредственно к работе с пакетами.

Работа с APT

Дальнейшая работа с APT происходит точно также как и в Debian GNU/Linux. Сперва нужно, чтобы APT создал кэш пакетов. Подключитесь к Интернет, если вы используете внешние источники пакетов (такие как freshrpms) и выполните команду:

apt-get update

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

apt-get upgrade

APT проанализирует какие версии пакетов обновились и предложит вам список пакетов, которые можно обновить.

Я не будут здесь перечислять все команды и все опции apt-get и других программ, входящих в APT. Когда-то я сделал перевод страниц руководства по APT и теперь с удовольствием отсылаю за подробностями туда.
Мы же выполним последнюю операцию, после которой я предлагаю вас пустится в самостоятельное плавание - установку графического интрфейса к APT - программы Synaptic. Итак, подключитесь к Интернет и наберите команду

apt-get install synaptic

APT проведет выкачивание rpm-пакета Synaptic с freshrpms и его установку. Все что требуется от вас - это наслаждаться процессом. Если в процессе установки понадобятся какие-либо другие пакеты, APT самостоятельно их найдет и предложит установить! Не правда ли все это очень удобно? Теперь запустите программу, набрав synaptic в среде GNOME или KDE и вперед. Программа имеет интуитивно-понятный и простой интерфейс. Вот снимочек окна Synaptic:

synaptic

Заключение

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

В Интрнет существует множество репозитариев APT, которые предоставляют дополнительные пакеты для Red Hat и основанных на rpm дистрибутивов. После установки APT вы получаете возможность без труда работать с ними.