RPM

RPM
RPM Package Manager (RPM)
RPM Logo.svg
Тип

Система управления пакетами

Автор

Red Hat

Разработчик

сообщество[1]

Написана на

Си

Операционная система

GNU/Linux, Unix-like

Последняя версия

5.3.6 (2 марта 2011)

Тестовая версия

5.4.0

Лицензия

GNU General Public License

Сайт

http://rpm.org/ http://rpm5.org/

RPM (рекурсивный акроним RPM Package ManagerRPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat) обозначает две сущности: формат пакетов программного обеспечения и программа, созданная для управления этими пакетами. Программа позволяет устанавливать, удалять и обновлять программное обеспечение. RPM является основным форматом пакетов в LSB.

Изначально разработанный компанией Red Hat для Red Hat Linux, RPM стал использоваться во многих дистрибутивах Linux и был портирован на другие операционные системы: Novell NetWare (с версии 6.5 SP3), IBM AIX (с версии 5) и прочие.

Для хранения файлов в формате RPM используется архивный контейнер cpio, с использованием сжатия утилитой gzip. В более поздних версиях может быть использован архиватор star и сжатие с помощью bzip2, LZMA или XZ. Начиная с версии RPM 5.0 возможно использование архиватора XAR.

Содержание

База данных RPM

База данных RPM ведётся в каталоге /var/lib/rpm. Она состоит из одиночной базы данных (Packages), в которой хранится вся информация о пакетах, и множества маленьких баз (__db.001, __db.002 и т. д.), которые служат для индексации и содержат в себе сведения о том, какие файлы менялись и создавались при установке и удалении пакетов.

Если база данных несколько испортится (что может произойти, если процесс установки или удаления был «убит» или закончилось место на разделе), то её можно восстановить, введя команду rpm --rebuilddb.

Если база была уничтожена — рекомендуется достать копию из заранее сделанного бэкапа или восстановить при помощи rpm -ivh --justdb по списку пакетов, заранее полученному командой rpm -qa | sort. Возможны полуэвристические методы восстановления базы по списку файлов в пакетах репозитория, из которого была установлена система, но лучше до этого не доводить.

Названия пакетов

Каждый пакет RPM имеет название, которое состоит из нескольких частей:

  • Название программы
  • Версия программы
  • Номер релиза (количество раз пересборки программы одной и той же версии). Также часто используется для обозначения дистрибутива, под который собран этот пакет, например mdv (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, поэтому нет необходимости собирать программу из исходных кодов
  • «Неинтерактивная установка»: легко автоматизировать процесс установки/обновления/удаления
  • Проверка целостности пакетов с помощью контрольных сумм и GPG-подписей
  • DeltaRPM, аналог патча, позволяющий обновить установленное программное обеспечение с минимальной затратой трафика
  • Возможность аккумуляции опыта сборщиков в spec-файле
  • Относительная компактность spec-файлов за счёт использования макросов

Основные недостатки

  • Макропакеты между дистрибутивами могут существенно различаться
  • Раздробленность и несовместимость различных версий. Так, существуют проекты по разработке RPM 4 (rpm.org), RPM5 (rpm5.org), а также большое количество патчей на RPM в дистрибутивах. В частности, это приводит к:
    • Несовместимости spec-файлов между дистрибутивами (spec-файл ALT Linux чаще всего невозможно собрать на Red Hat или SuSE без значительных исправлений)
    • Несовместимости названий пакетных зависимостей при попытке установить пакет от другого дистрибутива (например, зависимости в RPM сборки Connectiva создаются по другим правилам, нежели в Mandriva).

Создание пакета

Для создания пакета нужен spec-файл. Это обычный текстовой файл, имеет суффикс .spec и содержит в себе название пакета, версию, номер релиза, инструкции по сборке и установке пакета и список изменений. При наличии spec-файла пакет создаётся командой rpmbuild

Цикл статей по сборке RPM здесь; из англоязычных руководств можно рекомендовать хоть и старое, но во многом (особенно по части макросов) актуальное Maximum RPM и черновик его обновлённой версии — RPM Guide также есть Red Hat RPM Guide — русский перевод

Примеры

  • rpm -Uhv package.rpm — При наличии пакета package произойдёт его обновление, при отсутствии — установка.
  • rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n' — вывод списка всех установленных пакетов и их размеров
  • rpm -q --queryformat %{DISTRIBUTION} package.rpm  — название дистрибутива, в котором установлен пакет. (опция -q для установленного в систему пакета, опция -qp для неустановленного)
  • rpm -qa | grep xx — список пакетов, где встречается сочетание «xx»
  • rpm -q --whatprovides fullpathtofile — название пакета которому принадлежит файл fullpathfofile

Поддерживаемые дистрибутивы Linux

Ниже приведён список некоторых наиболее известных дистрибутивов, основанных на RPM:

(Это неполный список. Подробности смотрите в списке дистрибутивов Linux)

Удобные дополнения к RPM

Есть несколько программ, которые позволяют автоматически разрешить зависимости при установке пакетов. Вот некоторые наиболее известные:

  • apt-rpm, порт APT, изначально выполненный Conectiva, затем существенно доработанный ALT Linux Team и продолжающий развиваться
  • apt4rpm, более поздний порт APT чем apt-rpm.
  • smart, доступен для многих дистрибутивов
  • urpmi, используется в Mandriva Linux
  • zypper, используется в SuSE
  • yum, разработан в Yellow Dog Linux, также используется в Fedora, ASP Linux, Red Hat Enterprise Linux (с версии 5.0, и основанных на нём дистрибутивах CentOS, Scientific Linux)

FrontEnd

Примечания

  1. RPM -- plans, goals, etc.. Max Spevack <mspevack redhat com>. Проверено 20 января 2011.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "RPM" в других словарях:

  • RPM — Package Manager Aktuelle Version: 5.1.9 (18. April 2009) Betriebssystem: Unixoide Systeme wie bspw …   Deutsch Wikipedia

  • .rpm — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. RPM, sigle composé des trois lettres R, P et M, peut signifier : R.P.M., un film américain réalisé par Stanley Kramer (1970) RPM, un film américano… …   Wikipédia en Français

  • Rpm — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. RPM, sigle composé des trois lettres R, P et M, peut signifier : R.P.M., un film américain réalisé par Stanley Kramer (1970) RPM, un film américano… …   Wikipédia en Français

  • RPM — FINANCE abbreviation for retail price * * * rpm UK US (UK (US r.p.m.) noun ► TRANSPORT ABBREVIATION for revolutions per minute: used when stating the number of times part of a machine, engine …   Financial and business terms

  • RPM — Saltar a navegación, búsqueda RPM puede referirse a: RPM Package Manager, sistema de administración e instalación de paquetes de software característico de varias plataformas GNU/Linux, fundamentalmente basadas o afines a Red Hat. RPM (velocidad) …   Wikipedia Español

  • Rpm — steht als Abkürzung für: Red Hat Package Manager, ein Softwareverteil Programmpaket, siehe RPM Package Manager Rendezvous Pitch Maneuver, ein Flugmanöver des Space Shuttle Retinopathia praematurorum, eine Augenkrankheit von Frühgeborenen… …   Deutsch Wikipedia

  • Rpm — RPM  менеджер пакетов в GNU/Linux совместимых операционных системах RedHat. RPM  канадский музыкальный журнал, издававшийся в 1964 2000 годах. rpm (англ. revolution per minute  оборотов в минуту (об/мин))  единица… …   Википедия

  • rpm — rpm. См. оборот в минуту. (Источник: «Англо русский толковый словарь генетических терминов». Арефьев В.А., Лисовенко Л.А., Москва: Изд во ВНИРО, 1995 г.) …   Молекулярная биология и генетика. Толковый словарь.

  • rpm — Abreviatura de revoluciones por minuto. Diccionario Mosby Medicina, Enfermería y Ciencias de la Salud, Ediciones Hancourt, S.A. 1999 …   Diccionario médico

  • rpm — sau r.p.m. Abreviere pentru rotaţii pe minut, unitatea de măsură a turaţiei. Trimis de ivascu, 13.09.2007. Sursa: Neoficial …   Dicționar Român

  • rpm — [ˌa: pi: ˈem US ˌa:r ] revolutions per minute used to describe the speed at which something turns, especially an engine or a ↑record player …   Dictionary of contemporary English


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»