Для установки, видалення та оновлення програм в дистрибутивах RHEL, Fedora, Mandriva, AltLinux і деяких інших використовується менеджер пакетів rpm. Менеджер пакетів rpm дозволяє встановлювати, видаляти, верифікувати пакети відповідного формату, але не має коштів для автоматичного залежності не будуть задоволені і пошуку в репозиторіях. Для автоматизації установки пакетів можна скористатися програмою yum (Yellowdog Update Manager), яка автоматично дозволяє залежності між пакетами і завантажує необхідні файли. При необхідності зібрати пакет з програмою з вихідних текстів можна скористатися rpmbuild. Для цього необхідно підготувати пакет в форматі .src.rpm, що включає вихідні тексти програми і .spec файл, що описує процес складання.
структура пакета
Пакети іменуються за наступною схемою: ім'я-версія-збірка. Поширюються пакети у вигляді файлів, в назву яких додається .архітектура.rpm. Наприклад, squid-2.5.STABLE8-1.FC3.1.i386.rpm розшифровується так: програма squid. версія 2.5.STABLE8. збірка 1.FC3.1. архітектура i386 (неоптимізованими додаток під i386 сумісні процесори). Номер збірки може включати назву дистрибутива (FC3 в даному випадку, а може і не включати). Архітектура noarch означає скрипти, незалежні від архітектури процесора. Файли .src.rpm містять вихідні тексти програм і встановлюються особливим чином.
Кожен пакет містить файли програм, бібліотек, конфігурації, документації тощо. Упаковані архіватором cpio. Також пакет містить додаткові секції:
- PROVIDE - надається функціональність (наприклад, "mail server") плюс файли пакета;
- REQUIRENAME - необхідні для коректної роботи пакети, файли і т.п. (Те, що потрібно в REQUIRENAME. Повинне бути присутнім в PROVIDE раніше встановлених пакетів);
- OBSOLETES - список пакетів, які можуть бути видалені тому їх функціональність і / або файли заменяютя даними пакетом;
- PREIN, POSTIN - скрипти, що виконуються до установки (наприклад, зупинка оновлюваного демона), і скрипти, що виконуються після установки (наприклад, правка конфігураційних файлів під конкретну машину);
- PREUN, POSTUN - скрипти, що виконуються при видаленні;
- SUMMARY - короткий опис пакету;
- DESCRIPTION - докладний опис.
Установка, видалення, оновлення програм
Допоміжні опції: -v - докладний висновок повідомлень, -h - показ індикатора прогресу установки.
rpm -ivh <файл>. - встановити пакет (и)
rpm -Uvh <файл>. - оновити пакет (и), якщо не встановлено - встановити
rpm -Fvh <файл>. - оновити вже встановлений (е) пакет (и)
rpm -e <пакет>. - видалити пакет (и)
Допоміжні опції: -a - все встановлене, -p - інформація про фото rpm (в прикладах будуть приведені не скрізь).
rpm -q <пакет>. - перевірка на наявність встановленого пакета і його версії
rpm -qa - список всіх пакетів
rpm -qi <пакет>. - DESCRIPTION пакета
rpm -qip <файл>. - DESCRIPTION файлу
rpm -qR <пакет>. - REQUIERS пакета
rpm -ql <пакет>. - список файлів пакета
rpm -qf <файл_в_файловой_системе>. - визначення приналежності довільного файлу до одного з встановлених пакетів
Перевірка цілісності rpm пакета
Файли, розміщені в rpm пакеті, супроводжуються обчисленої контрольної сумою і, як правило, підписані цифровим підписом збирача пакета. Після установки пакета контрольні суми і підписи зберігаються в базі встановлених пакетів. Ці допоміжні дані дозволяють виконати кілька перевірок, наприклад, можна перевірити, що пакет створений довіреною видавцем і що файли пакета не були підмінені після установки.
Перша перевірка дуже важлива при скачуванні пакетів з інтернету, а друга при підозрі на злом комп'ютера.
Публічні ключі для перевірки підпису автоматично встановлюються при установці з дистрибутива, а також напівавтомат додаються при установці rpm пакетів для підключення репозиторіїв yum. Файли з ключами в CentOS встановлюються в каталог / etc / pki / rpm-gpg /. Можна додати ключ вручну, вказавши шлях до локального файлу або його url. Файл з ключем повинен мати текстовий формат 'ASCII armored'
Після інсталяції до ключів застосовні ті ж команди, що й до встановлених пакетів
rpm -qa gpg-pubkey * - список всіх ключів
rpm -qi gpg-pubkey-db42a60e - інформація (у тому числі ім'я господаря) про конкретний ключі
rpm -e gpg-pubkey-db42a60e - видалення ключа
Перевірка файлу пакета на цілісність
Перевірка встановленого пакета на цілісність
Після виконання цієї команди буде виданий список змінених файлів із зазначенням, що саме в них змінилося. Для отримання відомостей про змін складається з рядка абревіатур, що включають:
Витяг і упаковка файлів rpm пакета
Програма rpm2cpio добуде їх з RPM пакета в форматі архіву cpio. Для розпакування файлів разом зі структурою каталогів використовується команда cpio з опціями -i - розпакувати і -d - створити каталоги:
rpm2cpio <файл.rpm> | cpio -i -d
Якщо необхідно зберегти встановлений пакет в файл, то можна скористатися програмою rpmrebuild:
особливі випадки
Eсли пакет вже встановлений і його треба перевстановити або необхідно знизити версію пакету, то можна до командам інсталяції або поновлення додати опцію --force.
Якщо установка або видалення пакета формально порушує залежності, але відомо, що все буде добре, то використовується опція --nodeps.