RPM

Поделись знанием:
Перейти к: навигация, поиск
RPM Package Manager (RPM)
Тип

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

Автор

Red Hat

Разработчик

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

Написана на

Си

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

GNU/Linux, Unix-like

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

5.3.6 (2 марта 2011)

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

5.4.0

Лицензия

GNU General Public License

Сайт

[rpm.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 [tigro.info/wp/?p=375 здесь]; из англоязычных руководств можно рекомендовать хоть и старое, но во многом (особенно по части макросов) актуальное [rpm.org/max-rpm/ Maximum RPM] и черновик его обновлённой версии — [docs.fedoraproject.org/drafts/rpm-guide-en/ RPM Guide] также есть [www.lexpr.ru/node/11 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.org/ apt-rpm], порт APT, изначально выполненный Conectiva, затем существенно доработанный ALT Linux Team и продолжающий развиваться
  • apt4rpm, более поздний порт APT, чем apt-rpm.
  • smart, доступен для многих дистрибутивов
  • urpmi, используется в Mandriva Linux
  • zypper, используется в SuSE
  • yum, разработан в Yellow Dog Linux, также используется в Fedora (до 22 версии), ASP Linux, Red Hat Enterprise Linux (с версии 5.0 до 7 включительно, и основанных на нём дистрибутивах CentOS, Scientific Linux)
  • dnf, используется в Fedora с 22 версии

FrontEnd

Напишите отзыв о статье "RPM"

Примечания

  1. [www.redhat.com/archives/fedora-announce-list/2006-December/msg00003.html RPM -- plans, goals, etc.]. Max Spevack <mspevack redhat com>. Проверено 20 января 2011.

Ссылки

  • [www.rpm.org/ Официальный сайт] (англ.)
  • [fedoraproject.org.ru/rpm Руководство на русском]
  • [www.linux.kiev.ua/ru/docs/articles/ideal-sysadm-rpm/ Идеальный сисадмин: RPM] (пояснение выгоды для администраторов)
  • [www.rpm.org/max-rpm/rpm.8.html man-страница RPM] (англ.)
  • [www.hut.fi/~tkarvine/rpm-build-as-user.html Сборка пакетов простым пользователем] (англ.)
  • [refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/pkgformat.html Package File Format — Linux Standards Base] (англ.)
  • [rpmfind.net/ www.rpmfind.net] (англ.) — каталог пакетов с возможностью поиска
  • [rpm.pbone.net rpm.pbone.net] (англ.) — каталог пакетов с возможностью поиска
  • [listman.redhat.com/archives/rhn-users/2003-May/msg00092.html rpm2cpio.sh] — скрипт для распаковки пакетов
  • [server-tuning.info/ru/first-steps/rpm-repositories.html Подключение сторонних RPM-репозиториев в Fedora/CentOS]
  • [www.ibm.com/developerworks/ru/library/l-roadmap9/index.html План перехода с Windows на Linux: Часть 9. Установка программного обеспечения] (рус.) developerWorks Россия
  • [www.lexpr.ru/node/11 www.lexpr.ru] — Влад Горелецкий. Русский перевод книги Эрика Фостер-Джонсона Red Hat RPM Guide

Отрывок, характеризующий RPM

– Да, – прошептала Наташа.
– О чем же ты плачешь? Я счастлива за тебя, – сказала княжна Марья, за эти слезы простив уже совершенно радость Наташи.
– Это будет не скоро, когда нибудь. Ты подумай, какое счастие, когда я буду его женой, а ты выйдешь за Nicolas.
– Наташа, я тебя просила не говорить об этом. Будем говорить о тебе.
Они помолчали.
– Только для чего же в Петербург! – вдруг сказала Наташа, и сама же поспешно ответила себе: – Нет, нет, это так надо… Да, Мари? Так надо…


Прошло семь лет после 12 го года. Взволнованное историческое море Европы улеглось в свои берега. Оно казалось затихшим; но таинственные силы, двигающие человечество (таинственные потому, что законы, определяющие их движение, неизвестны нам), продолжали свое действие.
Несмотря на то, что поверхность исторического моря казалась неподвижною, так же непрерывно, как движение времени, двигалось человечество. Слагались, разлагались различные группы людских сцеплений; подготовлялись причины образования и разложения государств, перемещений народов.
Историческое море, не как прежде, направлялось порывами от одного берега к другому: оно бурлило в глубине. Исторические лица, не как прежде, носились волнами от одного берега к другому; теперь они, казалось, кружились на одном месте. Исторические лица, прежде во главе войск отражавшие приказаниями войн, походов, сражений движение масс, теперь отражали бурлившее движение политическими и дипломатическими соображениями, законами, трактатами…
Эту деятельность исторических лиц историки называют реакцией.
Описывая деятельность этих исторических лиц, бывших, по их мнению, причиною того, что они называют реакцией, историки строго осуждают их. Все известные люди того времени, от Александра и Наполеона до m me Stael, Фотия, Шеллинга, Фихте, Шатобриана и проч., проходят перед их строгим судом и оправдываются или осуждаются, смотря по тому, содействовали ли они прогрессу или реакции.
В России, по их описанию, в этот период времени тоже происходила реакция, и главным виновником этой реакции был Александр I – тот самый Александр I, который, по их же описаниям, был главным виновником либеральных начинаний своего царствования и спасения России.
В настоящей русской литературе, от гимназиста до ученого историка, нет человека, который не бросил бы своего камушка в Александра I за неправильные поступки его в этот период царствования.
«Он должен был поступить так то и так то. В таком случае он поступил хорошо, в таком дурно. Он прекрасно вел себя в начале царствования и во время 12 го года; но он поступил дурно, дав конституцию Польше, сделав Священный Союз, дав власть Аракчееву, поощряя Голицына и мистицизм, потом поощряя Шишкова и Фотия. Он сделал дурно, занимаясь фронтовой частью армии; он поступил дурно, раскассировав Семеновский полк, и т. д.».
Надо бы исписать десять листов для того, чтобы перечислить все те упреки, которые делают ему историки на основании того знания блага человечества, которым они обладают.
Что значат эти упреки?
Те самые поступки, за которые историки одобряют Александра I, – как то: либеральные начинания царствования, борьба с Наполеоном, твердость, выказанная им в 12 м году, и поход 13 го года, не вытекают ли из одних и тех же источников – условий крови, воспитания, жизни, сделавших личность Александра тем, чем она была, – из которых вытекают и те поступки, за которые историки порицают его, как то: Священный Союз, восстановление Польши, реакция 20 х годов?
В чем же состоит сущность этих упреков?
В том, что такое историческое лицо, как Александр I, лицо, стоявшее на высшей возможной ступени человеческой власти, как бы в фокусе ослепляющего света всех сосредоточивающихся на нем исторических лучей; лицо, подлежавшее тем сильнейшим в мире влияниям интриг, обманов, лести, самообольщения, которые неразлучны с властью; лицо, чувствовавшее на себе, всякую минуту своей жизни, ответственность за все совершавшееся в Европе, и лицо не выдуманное, а живое, как и каждый человек, с своими личными привычками, страстями, стремлениями к добру, красоте, истине, – что это лицо, пятьдесят лет тому назад, не то что не было добродетельно (за это историки не упрекают), а не имело тех воззрений на благо человечества, которые имеет теперь профессор, смолоду занимающийся наукой, то есть читанном книжек, лекций и списыванием этих книжек и лекций в одну тетрадку.
Но если даже предположить, что Александр I пятьдесят лет тому назад ошибался в своем воззрении на то, что есть благо народов, невольно должно предположить, что и историк, судящий Александра, точно так же по прошествии некоторого времени окажется несправедливым, в своем воззрении на то, что есть благо человечества. Предположение это тем более естественно и необходимо, что, следя за развитием истории, мы видим, что с каждым годом, с каждым новым писателем изменяется воззрение на то, что есть благо человечества; так что то, что казалось благом, через десять лет представляется злом; и наоборот. Мало того, одновременно мы находим в истории совершенно противоположные взгляды на то, что было зло и что было благо: одни данную Польше конституцию и Священный Союз ставят в заслугу, другие в укор Александру.
Про деятельность Александра и Наполеона нельзя сказать, чтобы она была полезна или вредна, ибо мы не можем сказать, для чего она полезна и для чего вредна. Если деятельность эта кому нибудь не нравится, то она не нравится ему только вследствие несовпадения ее с ограниченным пониманием его о том, что есть благо. Представляется ли мне благом сохранение в 12 м году дома моего отца в Москве, или слава русских войск, или процветание Петербургского и других университетов, или свобода Польши, или могущество России, или равновесие Европы, или известного рода европейское просвещение – прогресс, я должен признать, что деятельность всякого исторического лица имела, кроме этих целей, ещь другие, более общие и недоступные мне цели.
Но положим, что так называемая наука имеет возможность примирить все противоречия и имеет для исторических лиц и событий неизменное мерило хорошего и дурного.
Положим, что Александр мог сделать все иначе. Положим, что он мог, по предписанию тех, которые обвиняют его, тех, которые профессируют знание конечной цели движения человечества, распорядиться по той программе народности, свободы, равенства и прогресса (другой, кажется, нет), которую бы ему дали теперешние обвинители. Положим, что эта программа была бы возможна и составлена и что Александр действовал бы по ней. Что же сталось бы тогда с деятельностью всех тех людей, которые противодействовали тогдашнему направлению правительства, – с деятельностью, которая, по мнению историков, хороша и полезна? Деятельности бы этой не было; жизни бы не было; ничего бы не было.
Если допустить, что жизнь человеческая может управляться разумом, – то уничтожится возможность жизни.


Если допустить, как то делают историки, что великие люди ведут человечество к достижению известных целей, состоящих или в величии России или Франции, или в равновесии Европы, или в разнесении идей революции, или в общем прогрессе, или в чем бы то ни было, то невозможно объяснить явлений истории без понятий о случае и о гении.
Если цель европейских войн начала нынешнего столетия состояла в величии России, то эта цель могла быть достигнута без всех предшествовавших войн и без нашествия. Если цель – величие Франции, то эта цель могла быть достигнута и без революции, и без империи. Если цель – распространение идей, то книгопечатание исполнило бы это гораздо лучше, чем солдаты. Если цель – прогресс цивилизации, то весьма легко предположить, что, кроме истребления людей и их богатств, есть другие более целесообразные пути для распространения цивилизации.
Почему же это случилось так, а не иначе?