Can apt-get be used on Red Hat systems?
We know that apt-get is used on debian based systems so what is used on Red Hat Enterprise Linux (RHEL) systems? Is it possible to install and use apt-get on Red Hat?
aptitude or apt-get is the Debian package manager. In RedHat distributions, the package manager is rpm or yum for the Fedora/Centos flavours. You could probably figure out a way to manually install aptitude on RedHat, but that sounds like quite a bit of work.
2 Answers 2
There is a project out there that claims to support apt style repositories (as well as the apt-get command) on RPM based distros. It is called apt-rpm and is used as the default package manager on a few distros, though not on RHEL/Fedora.
- It seems not to be really maintained since ~2008; it may have incremental patches or fixes since then, but nothing major.
- Yum repositories are not compatible with apt-rpm , so even if you were to install it on your computer, you would need an apt-rpm repository to connect to in order to use it.
There is a fork of apt-rpm that has been updated to be mostly compatible with rpm version 5, which is used in all recent RPM distros. So if you insist on using it, a good starting point is to check out the Gitorious branch for apt-rpm for rpm5.
The command syntax of yum is close enough to apt-get that you should be able to learn one if you know the other within a day, or at most, a week. So unless there is some very strong business need for using apt and you’re willing to create your own apt-rpm repository (and deal with the cruftiness of software that’s basically unmaintained), I would advise against proceeding down this train of thought.
Использование APT в Red Hat 8.0
Первая редакция данной статьи вызвала некоторую заинтересованность, я получил несколько откликов, где наряду с благодарностью за выход статьи были также и некоторые вопросы, которые мне пришлось пояснять отдельно. Именно поэтому я решил выпустить вторую редакцию статьи, а чтобы сохранить заинтересованность людей я добавил и упоминание о Red Hat 9 ,
Предисловие
Довольно часто пользователи Red Hat сталкиваются с неудобством этого дистрибутива в плане управления пакетами. Особенно это касается начинающих пользователей, потому что старики уже привыкли к этой особенности. А неудобство заключается в том, что менеджер пакетов Red Hat, который называется rpm, ничего не знает о пакетах, которые не установлены в системе. С одной стороны это логично — точно также ведут себя и другие низкоуровневые менежеры пакетов (например dpkg в Debian GNU/Linux ) с другой стороны это причиняет массу неудобств.
Действительно, если для dpkg в дистрибутиве Debian GNU/Linux написаны высокоуровневые оболочки (или как их называют front-end) такие как dselect и APT, то в Red Hat, пользователь, который не поставил что-то при начальной установке становится как круглый сирота. Вот вроде есть CD с дистрибутивом, вот вроде бы изучили как работать с rpm и пытаемся поставить скажем sox командой
Что сразу может поставить в тупик — где брать эти *.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. Кроме того, через репозитарий APT (что это такое читайте ниже) здесь же доступны как сами дистрибутивы Red Hat , так и обновления к ним. Сборка происходит довольно качественно и могу отметить, что у меня ни разу не было проблем с совместимостью пакетов с этого сайта и пакетов дистрибутива Red Hat, для которого они были собраны.
Итак, заходим на сайт и переходим в раздел Red Hat 8.0 или Red Hat 9 в зависимости от вашей версии Red Hat (обслуживается даже версия 7.3). Затем выкачиваем оттуда один единственный пакет — apt. На момент написания данной статьи это apt-0.5.5cnc5-fr2.i386.rpm. Устанавливаем его обычным образом:
rpm -i apt-0.5.5cnc5-fr2.i386.rpm
Установка на этом не кончается. Это как-то связано с работой rpm, но для того, чтобы вы потом могли нормально генерировать списки пакетов, необходимо провести следующую операцию:
rpm --import /usr/share/doc/redhat-release-8.0/RPM-GPG-KEY
rpm --import /usr/share/doc/apt-0.5.5cnc5/RPM-GPG-KEY.freshrpms
Насколько я понимаю нужно будет каждый раз делать импорт ключа для подписанных пакетов, которые вы берете из разных источников. В противном случае эти пакеты могут не попасть в список пакетов APT при его построении.
Далее нужно настроить APT.
Настройка APT
Сперва надо подготовить репозитарий пакетов, т.е. создать каталоги для хранения пакетов и список пакетов . У меня это выглядит так (здесь говорится о версии 8.0, но для версии 9 все делается абсолютно аналогично):
- Создан каталог /var/APT/RedHat/8.0/en/i386. Разумеется, что вы можете создать каталог и в другом месте и с другим именем. В этом вас никто не ограничивает.
- В этом каталоге созданы два подкаталога RPMS.os и RPMS.my. В RPMS.os я переписал пакеты с 3-х дистрибутивных дисков Red Hat 8.0. В RPMS.my лежат собранный мной пакеты и пакеты надерганные из Internet. Окончательный вид дерева каталогов дан ниже:
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) и выполните команду:
На экране вы увидите процесс работы этой команды. Если все было сделано правильно, то вы не увидите ошибок, а после выполнения команды у вас будет готовый кэш пакетов. Смотреть его целиком нет никакого смысла, хотя это и возможно. Гораздо вероятней, что вы захотите посмотреть информацию о каком-либо пакете. Пусть это будет тот же sox . Это можно сделать так:
После выполнения этой команды вы увидите что-то типа:
12.17.3-11 - /bin/sh (0 (null)) libc.so.6 (0 (null)) libc.so.6(GLIBC_2.0) (0 (null)) libc.so.6(GLIBC_2.1) (0 (null)) libc.so.6(GLIBC_2.3) (0 (null)) libm.so.6 (0 (null)) libm.so.6(GLIBC_2.0) (0 (null)) libogg.so.0 (0 (null)) libvorbis.so.0 (0 (null)) libvorbisenc.so.2 (0 (null)) libvorbisfile.so.3 (0 (null))
Обяснять здесь всё я не вижу смысла, вы найдете подробности в документации по APT. Хочу только заострить внимание на «Dependencies:». Теперь очень легко средствами APT можно найти пакет, который предоставляет нужную нам функциональность. Например команда
apt-cache search libogg.so.0
libogg - The Ogg bitstream file format library.
Именно пакет libogg нам нужно поставить, чтобы удовлетворить зависимость в библиотеке libogg.so.0 . Но если вы заходите установить sox, то вам не понадобится вручную искать все нужные пакеты. Вполне достаточно будет выполнить команду
Система APT сама выдаст вам список недостающих пакетов наряду с sox и запросит разрешение на их установку. Всё что остается — сказать «Y» и как говорит изделие дяди Билли: «Откинтесь на спинку кресла. «. Не правда ли все это очень удобно?
Наверняка вас заинтересует возможность обновления вашей системы. Это можно сделать выполнив команду
APT проанализирует какие версии пакетов обновились и предложит вам список пакетов, которые можно обновить.
Я не будут здесь перечислять все команды и все опции apt-get и других программ, входящих в APT. Когда-то я сделал перевод страниц руководства по APT и теперь с удовольствием отсылаю за подробностями туда.
Мы же выполним последнюю операцию, после которой я предлагаю вас пустится в самостоятельное плавание — установку графического интрфейса к APT — программы Synaptic. Итак, подключитесь к Интернет и наберите команду
APT проведет выкачивание rpm-пакета Synaptic с freshrpms и его установку. Все что требуется от вас — это наслаждаться процессом. Если в процессе установки понадобятся какие-либо другие пакеты, то как уже говорилось, APT самостоятельно их найдет и предложит установить! Теперь запустите программу, набрав synaptic в среде GNOME или KDE и вперед. Программа имеет интуитивно-понятный и простой интерфейс. Новые версии Synaptic имеют дополнительные возможности и удобства. Вот снимочек окна Synaptic для Red Hat 9 :
Немного об утилите apt-cdrom
В письмах, которые пришли в ответ на первую версию статьи часто спрашивали об возможности использования apt-cdrom . Вынужден слегка огорчить — использование apt-cdrom со стандартными дисками дистрибутивов Red Hat на мой взгляд невозможно. Это обусловлено тем, что на CD c Red Hat отсутствует необходимая для APT структура каталогов и список пакетов.
Однако, никто не мешает вам создавать репозитарии пакетов на CD самим и если они будут выполнены также, как указано выше, то никаких проблем с их использованием быть не должно.
Заключение
Разумеется, APT далеко не единственный высокоуровневый инструмент для работы с пакетами. Однако, на мой взгляд он наиболее удобен и очень прост в настройке. Не последнюю роль играет и популярность APT .
В Интрнет существует множество репозитариев APT, которые предоставляют дополнительные пакеты для Red Hat и основанных на rpm дистрибутивов. После установки APT вы получаете возможность без труда работать с ними.