RPM
Материал из Википедии — свободной энциклопедии
RPM (Red Hat Package Manager — менеджер пакетов Red Hat или RPM Package Manager — RPM — менеджер пакетов) обозначает две вещи: формат пакетов программного обеспечения и программа, созданная для управления этими пакетами. Программа позволяет устанавливать, удалять и обновлять программное обеспечение. Формат RPM основан на формате, разработанным LSB.
Изначально разрабатываясь компанией Red Hat для Red Hat Linux, RPM стал использоваться во многих дистрибутивах GNU/Linux и был портирован на другие операционные системы: Novell NetWare (с версии 6.5 SP3), IBM AIX (с версии 5) и прочие…
Содержание |
[править] База данных RPM
База данных RPM ведётся в каталоге /var/lib/rpm. Она состоит из одиночной базы данных (Packages), в которой хранится вся информация о пакетах и множества маленьких баз (__db.001, __db.002 и т. д.), которые служат для индексации и содержит в себе сведения о том, какие файлы менялись и создавались при установке и удалении пакетов. Если база данных сотрётся или испортится (что может произойти, если процесс установки или удаления был «убит»), то её можно восстановить, введя команду rpm --rebuilddb.
[править] Названия пакетов
Каждый пакет RPM имеет название, которое состоит из нескольких частей:
- Название программы
- Версия программы
- Номер релиза (количество раз пересборки программы одной и той же версии). Также часто используется для обозначения дистрибутива, под который собран этот пакет, например mdk (Mandriva Linux) или fc4 (Fedora Core 4).
- Архитектура, под которую собран пакет (i386, ppc и т. д.)
Собранный пакет обычно имеет такой формат названия:
<название>-<версия>-<релиз>.<архитектура>.rpm
Например:
nano-0.98-2.i386.rpm
Иногда в пакет входят исходные коды. Такие пакеты не содержат информации об архитектуре, она заменяется на src. Например:
libgnomeuimm2.0-2.0.0-3.src.rpm
Библиотеки чаще всего распространяются в двух отдельных пакетах. Первый содержит собранный код, второй (обычно к нему добавляют -devel) содержит заголовочные файлы и другие файлы, необходимые разработчикам. Необходимо следить за тем, чтобы версии этих двух пакетов совпадали, иначе библиотеки могут работать некорректно. Пакеты с расширением noarch.rpm не зависят от конкретной архитектуры компьютера. Обычно они содержат графику и тексты, используемые другими программами.
[править] Преимущества и недостатки RPM
Преимущества RPM над другими средствами управления и установкой программного обеспечения:
- Лёгкость удаления программ
- Популярность: очень многие программы собираются именно в RPM, поэтому нет необходимости собирать программу из исходных кодов
- «Неинтерактивная установка»: легко автоматизировать процесс установки и удаления
- Проверка пакетов с помощью контрольных сумм
- DeltaRPM, аналог patch, позволяющий легко обновить установленное программное обеспечение
Основные недостатки:
- Часто меняется формат пакетов без обратной совместимости.
- Незавершённая и устаревшая документация
- Сборка пакета из исходных кодов обычно требует больших знаний
- Иногда происходит несовместимость версий пакетов при поиске зависимостей (чаще всего это происходит тогда, когда происходит попытка установить пакет от другого дистрибутива, например от Fedora Core к Mandriva)
- Невозможно распаковать обычным ПО (по сравнению с deb (Debian) или tgz (Slackware). Несмотря на то, что есть скрипт rpm2cpio.sh[1], он распаковывает пакет с помощью od, expr, dd и gunzip, а не одной командой)
- Зависимости расчитываются по файлам, а не по пакетам
[править] Создание пакета
Для создания пакета нужен spec-файл. Это обычный текстовой файл, имеет расширение .spec и содержит в себе название пакета, версию, номер релиза, инструкции по сборке и установке пакета и список изменений. При наличии spec-файла пакет создаётся командой rpmbuild
[править] Примеры
- rpm -Uhv package.rpm — При наличии пакета package произойдёт его обновление, при отсутствии — установка.
- rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n' — вывод списка всех установленных пакетов и их размеров
[править] Поддерживаемые дистрибутивы Linux
Ниже приведён список некоторых наиболее известных дистрибутивов, основанных на RPM:
(Это неполный список. Подробности смотрите в списке дистрибутивов Linux)
[править] Удобные дополнения к RPM
Есть несколько программ, которые позволяют автоматически разрешить зависимости при установке пакетов. Вот некоторые наиболее известные:
- YaST, используется в SuSE
- urpmi, используется в Mandriva Linux
- yum, используется в Fedora Core и Yellow Dog Linux
- apt4rpm, порт APT Debian. Рекомендуется для использовании с некоторыми репозиториями Fedora Core. Почти не разрабатывается, но расходует меньше ресурсов процессора, чем те средства, которые перечислены выше.
- smart, доступен для многих дистрибутивов
[править] Ссылки
В Википедии есть портал «Свободное программное обеспечение» |
- Официальный сайт(англ.)
- Сборка пакетов RPM(англ.)
- man-страница RPM(англ.)
- Сборка пакетов простым пользователем(англ.)
- Package File Format — Linux Standards Base(англ.)
- www.rpmfind.net(англ.) — огромный репозиторий пакетов
- rpm2cpio.sh — скрипт для распаковки пакетов