RPM (англ. Red Hat Package Manager — менеджер пакунків Red Hat або RPM Package Manager — RPM — менеджер пакунків) — позначає дві речі: формат пакунків програмного забезпечення і програму, створену для управління цими пакунками. Програма дозволяє встановлювати, видаляти і оновлювати програмне забезпечення. Формат RPM заснований на форматі, розробленому LSB.
Тип | менеджер пакунків |
---|---|
Автори | d[1] і d[1] |
Розробник | Red Hat |
Операційна система | Linux |
Мова програмування | C |
Ліцензія | GNU General Public License |
Репозиторій | github.com/rpm-software-management/rpm |
Вебсайт | rpm.org |
Спочатку розроблений компанією Red Hat для Red Hat Linux, RPM став використовуватися в багатьох дистрибутивах (GNU/Linux) і був портований на інші операційні системи: Novell NetWare (з версії 6.5 SP3), IBM AIX (з версії 5) та інші.
Сьогодні «RPM Package Manager» використовується як рекурсивний акронім.
Проект RPM 4 (rpm.org [ 15 червня 2018 у Wayback Machine.]) розвивається компанією Red Hat і використовується в таких дистрибутивах, як RHEL, Fedora, SUSE Linux, openSUSE, Mageia, ALT Linux і MeeGo. RPM 4 не слід плутати з проектом RPM 5 (), який ніяк не пов'язаний з RPM 4 і з 2007 року розвивається паралельно іншою командою розробників. З дистрибутивів, що перейшли на RPM 5, можна відмітити , , і Mandriva Linux.
Назви пакунків
Кожен пакунок 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 файла, що містить також деякі застарілі заголовки.
- Підпис, який може використовуватися для впевненості в цілісності та/або автентичності.
- Заголовок містить метадані:
- назва, версія, реліз пакунка
- архітектура
- залежності які потребує пакет
- залежності які надає, задовільняє, для встановлення інших пакетів
- група пакетів
- інформація про збірку, з яких вихідних файлів, коли та на якому хості було зібрано пакет
- список файлів
- короткий опис, URL та опис пакунку
- журнал змін
- Файловий архів cpio який стиснений за допомогою gzip, bzip2 або lzma. Формат RPM 5.0 підтримує архіватор .
- Архів також має скрипти, які виконуються під час встановлення, видалення пакунків.
Переваги і недоліки RPM
Переваги RPM над іншими засобами управління і установкою програмного забезпечення:
- Легкість видалення і оновлення програм
- Популярність: дуже багато програм збираються саме в RPM, тому немає необхідності збирати програму з вихідних кодів
- «Неінтерактивна установка»: легко автоматизувати процес установки/оновлення/видалення
- Перевірка цілісності пакунків за допомогою контрольних сум і GPG-підписів
- , аналог patch, що дозволяє відновити встановлене програмне забезпечення з мінімальними витратами на трафік
- Можливість акумуляції досвіду складальників в spec-файлі
- Відносна компактність spec-файлів за рахунок використання макросів
Основні недоліки
- Незавершена і застаріла документація (або англомовна чернетка)
- Збірка пакунка з вихідних кодів зазвичай вимагає великих знань
- Залежності. RPM не займається задоволенням залежностей. Цю проблему вирішують менеджери yum, urpmi, yast, zypper в залежності від диструбутива.
- Макропакунки між дистрибутивами можуть істотно розрізнятися
- Іноді відбувається несумісність версій пакунків при пошуку залежностей (найчастіше це відбувається тоді, коли відбувається спроба встановити пакунок від іншого дистрибутиву, наприклад від Fedora Core до Mandriva)
- Неможливо розпакувати звичайним ПЗ (в порівнянні з deb (Debian) або tgz (Slackware)). Для цього існує скрипт rpm2cpio.sh [ 6 березня 2012 у Wayback Machine.] (він розпаковує пакунок за допомогою od, expr, dd і gunzip, а не однією командою)
Створення пакунку
Для створення пакунку потрібний spec-файл. Це звичайний текстовой файл, має суфікс .spec і містить в собі назву пакунку, версію, номер реліза, інструкції по збірці і установці пакунку і список змін. За наявності spec-файла пакунок створюється командою rpmbuild
Дуже короткий курс молодого бійця можна знайти ; з англомовних керівництв можна рекомендувати хоч і старе, але багато в чому (особливо по частині макросів) актуальне Maximum RPM [ 16 травня 2008 у Wayback Machine.] і чернетка його оновленої версії — .
Приклади використання
маніпуляції з пакунками
rpm -i package-1.2.3-1.el9.x86_64.rpm
— встановлення пакунка.rpm -U package-1.2.3-2.el9.x86_64.rpm
— за наявності встановленого пакунка package відбудеться його оновлення, за відсутності — встановлення.rpm -e package
— видалення пакунка
запити до бази RPM
rpm -qa
— (--all
) виведення переліку всіх встановлених пакунківrpm -ql package
— виведення переліку всіх встановлених файлів пакунка packagerpm -qf /path/to/file
— виведення пакунка, якому належить файл/path/to/file
rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n'
— використання визначеного формату запиту при виводі списку всіх встановлених пакунків: розмір файла пакета, назва пакета, версія, реліз.rpm --verify package
— проведення перевірки (аудіта) пакунка package. Виявляє файли що стали відсутні або змінені після встановлення пакунка.
База даних RPM
База даних RPM представляє собою набір баз Berkeley DB, який ведеться в теці /var/lib/rpm
. В них ведеться інформаця про те, які пакет встановлювались, оновлювались, їх залежності, які файли були встановлені операційну систему, їх метадані при встановленні тощо.
При встановленні або видалені програм, rpm перевіряє наявність необхідних залежностей, причому перевіряє не наявність файлів на файловій системі, а наявність саме в цій базі. Залежності іноді собою представляють не тільки файл, а абстрактну сутність, бібліотеку яка
В набір утілит rpm входить функціонал аудиту, який дозволяє перевірити наявність або відсутність файлів які були встановлені в пакеті, їх контрольну суму а також встановлені права.
База даних не має вбудованих механізмів журналювання, тому може постраждати від переривання процесу встановлення/видалення пакетів, помилок, нестачі вільного місця на файловій системі. Це призводить до неконсистентного стану бази, в такому випадку її можна відновити за допомогою rpm --rebuilddb
.
При повній втраті бази, її можна відновити з наявних пакунків, з них можна отримати інформацію якою база повинна бути наповнена, в емулювати встановлення без перезапису файлів, а лише записи в базу rpm -ivh --justdb
за списком пакунків.
Дистрибутиви Linux
Список деяких найвідоміших дистрибутивів Linux, заснованих на RPM:
- Red Hat Enterprise Linux, CentOS, Fedora
- openSUSE, SUSE Linux Enterprise Desktop, SUSE Linux Enterprise Server
- Azure Linux
- ALT Linux
- Mandriva Linux
- Fuduntu
- Mageia
- MeeGo
Виноски
- http://rpm5.org/roadmap.php
- . Архів оригіналу за 5 липня 2008. Процитовано 17 липня 2008.
Посилання
- Офіційний сайт [ 11 вересня 2014 у Wayback Machine.](англ.)
- (пояснение выгоды для администраторов)(рос.)
- (англ.)
- (англ.)
- (англ.)
- Package File Format — Linux Standards Base(англ.)
- www.rpmfind.net [ 13 серпня 2006 у Wayback Machine.](англ.) — велетенський репозиторій пакунків
- rpm2cpio.sh [ 6 березня 2012 у Wayback Machine.] — скрипт для розпакування пакунків
- Подключение сторонних RPM-репозиториев в Fedora/CentOS [ 27 березня 2007 у Wayback Machine.](рос.)
- План перехода с Windows на Linux: Часть 9. Установка программного обеспечения [ 1 травня 2007 у Wayback Machine.](рос.)
Дивись також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
RPM angl Red Hat Package Manager menedzher pakunkiv Red Hat abo RPM Package Manager RPM menedzher pakunkiv poznachaye dvi rechi format pakunkiv programnogo zabezpechennya i programu stvorenu dlya upravlinnya cimi pakunkami Programa dozvolyaye vstanovlyuvati vidalyati i onovlyuvati programne zabezpechennya Format RPM zasnovanij na formati rozroblenomu LSB RPM Package ManagerTipmenedzher pakunkivAvtorid 1 i d 1 RozrobnikRed HatOperacijna sistemaLinuxMova programuvannyaCLicenziyaGNU General Public LicenseRepozitorijgithub com rpm software management rpmVebsajtrpm org U Vikipediyi ye statti pro inshi znachennya cogo termina rpm znachennya Spochatku rozroblenij kompaniyeyu Red Hat dlya Red Hat Linux RPM stav vikoristovuvatisya v bagatoh distributivah GNU Linux i buv portovanij na inshi operacijni sistemi Novell NetWare z versiyi 6 5 SP3 IBM AIX z versiyi 5 ta inshi Sogodni RPM Package Manager vikoristovuyetsya yak rekursivnij akronim Proekt RPM 4 rpm org 15 chervnya 2018 u Wayback Machine rozvivayetsya kompaniyeyu Red Hat i vikoristovuyetsya v takih distributivah yak RHEL Fedora SUSE Linux openSUSE Mageia ALT Linux i MeeGo RPM 4 ne slid plutati z proektom RPM 5 yakij niyak ne pov yazanij z RPM 4 i z 2007 roku rozvivayetsya paralelno inshoyu komandoyu rozrobnikiv Z distributiviv sho perejshli na RPM 5 mozhna vidmititi i Mandriva Linux Nazvi pakunkivKozhen pakunok RPM maye nazvu yaka skladayetsya z dekilkoh chastin Nazva programi Versiya programi Nomer relizu kilkist raziv perezbirki programi odniyeyi i tiyeyi zh versiyi Takozh chasto vikoristovuyetsya dlya poznachennya distributivu pid yakij zibranij cej pakunok napriklad mdv Mandriva Linux abo fc4 Fedora Core 4 Arhitektura pid yaku zibranij pakunok i386 ppc i t d Zibranij pakunok zazvichaj maye takij format nazvi lt nazva gt lt versiya gt lt reliz gt lt arhitektura gt rpm Napriklad nano 0 98 2 i386 rpm Inodi v pakunok vhodyat pochatkovi kodi Taki pakunki ne mistyat informaciyi pro arhitekturu vona zaminyuyetsya na src Napriklad libgnomeuimm2 0 2 0 0 3 src rpm Biblioteki najchastishe rozpovsyudzhuyutsya v dvoh okremih pakunkah Pershij mistit zibranij kod drugij zazvichaj do nogo dodayut devel mistit zagolovni fajli i inshi fajli neobhidni rozrobnikam Neobhidno stezhiti za tim shob versiyi cih dvoh pakunkiv zbigalisya inakshe biblioteki mozhut pracyuvati nekorektno Pakunki z rozshirennyam noarch rpm ne zalezhat vid konkretnoyi arhitekturi komp yutera Zazvichaj voni mistyat grafiku i teksti sho vikoristovuyut inshi programi Struktura pakunkiv RPMPakunok zapisuyetsya u dvijkovomu formati i skladayetsya z chotiroh rozdiliv pochatkova identifikaciya pakunka yak RPM fajla sho mistit takozh deyaki zastarili zagolovki Pidpis yakij mozhe vikoristovuvatisya dlya vpevnenosti v cilisnosti ta abo avtentichnosti Zagolovok mistit metadani nazva versiya reliz pakunka arhitektura zalezhnosti yaki potrebuye paket zalezhnosti yaki nadaye zadovilnyaye dlya vstanovlennya inshih paketiv grupa paketiv informaciya pro zbirku z yakih vihidnih fajliv koli ta na yakomu hosti bulo zibrano paket spisok fajliv korotkij opis URL ta opis pakunku zhurnal zmin Fajlovij arhiv cpio yakij stisnenij za dopomogoyu gzip bzip2 abo lzma Format RPM 5 0 pidtrimuye arhivator Arhiv takozh maye skripti yaki vikonuyutsya pid chas vstanovlennya vidalennya pakunkiv Perevagi i nedoliki RPMPerevagi RPM nad inshimi zasobami upravlinnya i ustanovkoyu programnogo zabezpechennya Legkist vidalennya i onovlennya program Populyarnist duzhe bagato program zbirayutsya same v RPM tomu nemaye neobhidnosti zbirati programu z vihidnih kodiv Neinteraktivna ustanovka legko avtomatizuvati proces ustanovki onovlennya vidalennya Perevirka cilisnosti pakunkiv za dopomogoyu kontrolnih sum i GPG pidpisiv analog patch sho dozvolyaye vidnoviti vstanovlene programne zabezpechennya z minimalnimi vitratami na trafik Mozhlivist akumulyaciyi dosvidu skladalnikiv v spec fajli Vidnosna kompaktnist spec fajliv za rahunok vikoristannya makrosiv Osnovni nedoliki Nezavershena i zastarila dokumentaciya abo anglomovna chernetka Zbirka pakunka z vihidnih kodiv zazvichaj vimagaye velikih znan Zalezhnosti RPM ne zajmayetsya zadovolennyam zalezhnostej Cyu problemu virishuyut menedzheri yum urpmi yast zypper v zalezhnosti vid distrubutiva Makropakunki mizh distributivami mozhut istotno rozriznyatisya Inodi vidbuvayetsya nesumisnist versij pakunkiv pri poshuku zalezhnostej najchastishe ce vidbuvayetsya todi koli vidbuvayetsya sproba vstanoviti pakunok vid inshogo distributivu napriklad vid Fedora Core do Mandriva Nemozhlivo rozpakuvati zvichajnim PZ v porivnyanni z deb Debian abo tgz Slackware Dlya cogo isnuye skript rpm2cpio sh 6 bereznya 2012 u Wayback Machine vin rozpakovuye pakunok za dopomogoyu od expr dd i gunzip a ne odniyeyu komandoyu Stvorennya pakunkuDlya stvorennya pakunku potribnij spec fajl Ce zvichajnij tekstovoj fajl maye sufiks spec i mistit v sobi nazvu pakunku versiyu nomer reliza instrukciyi po zbirci i ustanovci pakunku i spisok zmin Za nayavnosti spec fajla pakunok stvoryuyetsya komandoyu rpmbuild Duzhe korotkij kurs molodogo bijcya mozhna znajti z anglomovnih kerivnictv mozhna rekomenduvati hoch i stare ale bagato v chomu osoblivo po chastini makrosiv aktualne Maximum RPM 16 travnya 2008 u Wayback Machine i chernetka jogo onovlenoyi versiyi Prikladi vikoristannyamanipulyaciyi z pakunkami rpm i package 1 2 3 1 el9 x86 64 rpm vstanovlennya pakunka rpm U package 1 2 3 2 el9 x86 64 rpm za nayavnosti vstanovlenogo pakunka package vidbudetsya jogo onovlennya za vidsutnosti vstanovlennya rpm e package vidalennya pakunka zapiti do bazi RPM rpm qa all vivedennya pereliku vsih vstanovlenih pakunkiv rpm ql package vivedennya pereliku vsih vstanovlenih fajliv pakunka package rpm qf path to file vivedennya pakunka yakomu nalezhit fajl path to file rpm qa queryformat 010 SIZE t NAME VERSION RELEASE n vikoristannya viznachenogo formatu zapitu pri vivodi spisku vsih vstanovlenih pakunkiv rozmir fajla paketa nazva paketa versiya reliz rpm verify package provedennya perevirki audita pakunka package Viyavlyaye fajli sho stali vidsutni abo zmineni pislya vstanovlennya pakunka Baza danih RPMBaza danih RPM predstavlyaye soboyu nabir baz Berkeley DB yakij vedetsya v teci var lib rpm V nih vedetsya informacya pro te yaki paket vstanovlyuvalis onovlyuvalis yih zalezhnosti yaki fajli buli vstanovleni operacijnu sistemu yih metadani pri vstanovlenni tosho Pri vstanovlenni abo vidaleni program rpm pereviryaye nayavnist neobhidnih zalezhnostej prichomu pereviryaye ne nayavnist fajliv na fajlovij sistemi a nayavnist same v cij bazi Zalezhnosti inodi soboyu predstavlyayut ne tilki fajl a abstraktnu sutnist biblioteku yaka V nabir utilit rpm vhodit funkcional auditu yakij dozvolyaye pereviriti nayavnist abo vidsutnist fajliv yaki buli vstanovleni v paketi yih kontrolnu sumu a takozh vstanovleni prava Baza danih ne maye vbudovanih mehanizmiv zhurnalyuvannya tomu mozhe postrazhdati vid pererivannya procesu vstanovlennya vidalennya paketiv pomilok nestachi vilnogo miscya na fajlovij sistemi Ce prizvodit do nekonsistentnogo stanu bazi v takomu vipadku yiyi mozhna vidnoviti za dopomogoyu rpm rebuilddb Pri povnij vtrati bazi yiyi mozhna vidnoviti z nayavnih pakunkiv z nih mozhna otrimati informaciyu yakoyu baza povinna buti napovnena v emulyuvati vstanovlennya bez perezapisu fajliv a lishe zapisi v bazu rpm ivh justdb za spiskom pakunkiv Distributivi LinuxSpisok deyakih najvidomishih distributiviv Linux zasnovanih na RPM Red Hat Enterprise Linux CentOS Fedora openSUSE SUSE Linux Enterprise Desktop SUSE Linux Enterprise Server Azure Linux ALT Linux Mandriva Linux Fuduntu Mageia MeeGoVinoskihttp rpm5 org roadmap php Arhiv originalu za 5 lipnya 2008 Procitovano 17 lipnya 2008 PosilannyaOficijnij sajt 11 veresnya 2014 u Wayback Machine angl poyasnenie vygody dlya administratorov ros angl angl angl Package File Format Linux Standards Base angl www rpmfind net 13 serpnya 2006 u Wayback Machine angl veletenskij repozitorij pakunkiv rpm2cpio sh 6 bereznya 2012 u Wayback Machine skript dlya rozpakuvannya pakunkiv Podklyuchenie storonnih RPM repozitoriev v Fedora CentOS 27 bereznya 2007 u Wayback Machine ros Plan perehoda s Windows na Linux Chast 9 Ustanovka programmnogo obespecheniya 1 travnya 2007 u Wayback Machine ros Divis takozhOpen Build Service