Основите на RPM - Управление на пакети Red Hat [Linux 101]
В предишни статии ние изследвахме системата, използвана за инсталиране на софтуер на базирани на Debian системи, включително и на Ubuntu. RPM или "Red Hat Package Manager", дебютира в Red Hat Linux 2.0 през 1995 г. и сега е предпочитаната система за управление на пакети на дистрибуции на базата на Red Hat, включително CentOS и Linux дистрибуцията на Oracle, както и SuSE.
Сега ще видим как тази система се сравнява с "начина на Ubuntu" за управление на софтуера.
Забележка : Ако използвате система, базирана на DEB, може да имате команда rpm. Вероятно няма да имате база данни за пакети, така че някои от долупосочените команди може да покажат някои грешки, свързани с това.
Основи на RPM пакета
Пакетът RPM, като DEB, се състои от архив от файлове, които мениджърът на пакети ще постави на компютъра ви, когато е инсталиран. Също така съдържа същия тип информация за друг софтуер, от който се нуждае, така че системата може да изтегли и инсталира вашите зависимости за вас. То просто обвива всичко това по различен начин.
Подобно на файловете DEB, RPM пакетът може да съдържа или двоичен (или изпълним) код, изходен код, който е компилиран в двоичен вид преди инсталацията, или файлове, независими от архитектура (като документация). RPM файл е cpio архив, който е архивен формат, първоначално използван за архивиране на ленти. RPM съдържат три основни типа данни:
- Данни, идентифициращи файла като RPM пакет
- Подпис, така че системата да може да провери дали опаковката не е била подправена (например, MD5 хеш на опаковката)
- "Header", който съдържа информация за пакета, като име, номер на версията и резюме
- "Натоварването" или файловете, които пакетът ще инсталира на вашата система
За разлика от Debian пакетите, разглеждането на част от тази информация не е толкова лесно, колкото деархивирането на пакета и разглеждането на някои текстови файлове. Ако искаме да погледнем подписа, да речем, за да го сравним с подпис в базата данни RPM на системата, ще трябва да използваме програмата RPM на командния ред, както следва:
sudo rpm -checksig rpm-4.9.1.3-6.fc17.x86_64.rpm
За да видите информацията за заглавката, можете да заявите пакета със следната команда:
sudo rpm -qip rpm-4.9.1.3-6.fc17.x86_64.rpm
Тук флага "-q" указва на RPM да потърси пакета, "i", за да получи информация за него, и "p", който ще покаже пакетен файл като аргумент. Така че, за да видите кои файлове са в пакета, ще искате списък вместо информация или следното:
sudo rpm -qlp rpm-4.9.1.3-6.fc17.x86_64.rpm
Можете също така да отваряте RPM файлове директно в много архивни мениджъри, за да видите как са организирани файловете в пакета.
Базата данни RPM
Както бе споменато по-горе, един от основните елементи на пакетиращата система Red Hat е базата данни RPM. Съхранена в / var / lib / rpm, тази директория съдържа редица поддиректории и файлове, съдържащи информация за пакетите, инсталирани в системата. Тази база данни обикновено се настройва по време на инсталирането на системата. След като бъде инициализирано, всеки пакет, инсталиран в системата, ще бъде записан в тази база данни - например повечето инсталирани пакети със системата се извършват с RPM, така че техните записи ще бъдат включени.
За да зададете заявка за базата данни RPM, можете да използвате команди, подобни на тези по-горе, оставяйки флаг "p" (защото не предоставяме аргумент за пакетен файл). Например следната команда ще търси в базата данни RPM и ще изведе списък на всички файлове, които са част от rpm пакета (ако е инсталиран):
sudo rpm -ql rpm
По същия начин в следната команда ще бъдат изброени всички пакети, инсталирани в системата:
sudo rpm -qa
Има огромен брой флагове и опции, които могат да се използват с инструментите за RPM, за да управлявате софтуера си. Една добра референция е документацията, поддържана от проекта Fedora.