Управління пакетами в RHEL - rpm, Паралельні обчислення в УРО РАН
Для встановлення, видалення та оновлення програм у дистрибутивах 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 – докладний опис.
Крім того, кожен пакет належить до певної групи Інтернету, Розробка Програм, Розваги і т.п. Переглянути секції rpm файлу можна на mc.
У подальших описах означає ім'я пакета без i386.rpm (якщо встановлена одна версія програми, то номер версії та збірки також можна опустити), а означає ім'я файлу .rpm. Як файл можна вказувати його URL, наприклад, http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/i386/yum-2.2.0-0.fc3.noarch.rpm
Встановлення, видалення, оновлення програм
Допоміжні опції: -v – докладний висновок повідомлень; -h – показ індикатора прогресу установки.
rpm-ivh. – встановити пакет(и) rpm-Uvh. – оновити пакет(и), якщо не встановлені – встановити rpm -Fvh . – оновити вже встановлений пакет(и) rpm -e . – видалити пакет(и)
Перегляд інформації про встановлені пакети або файли rpm
Допоміжні опції: -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 – видалення ключа
Перевірка файлу пакета на цілісність
Перевірка встановленого пакета на цілісність
Після виконання цієї команди буде видано список файлів, що змінилися, із зазначенням, що саме в них змінилося. Інформація про тип змін складається з рядка абревіатур,включають:
- S - розмір (Size)
- M – тип файлу або права доступу (Mode)
- 5 - контрольна сума (MD5)
- D – мажор або мінор пристрою (Device)
- L – вміст символічного посилання (Link)
- U – власник (User)
- G - група (Group)
- T - час модифікації (mTime)
- P - капабіліті (caPabilities)
Вилучення та упаковка файлів rpm пакета
rpm2cpio витягує файли з RPM пакета у форматі архіву cpio . Для розпакування файлів разом зі структурою каталогів використовується команда cpio з опціями -i – розпакувати та –d – створити каталоги:
rpm2cpio cpio -i -d
Якщо необхідно зберегти встановлений пакет у файл, можна скористатися програмою rpmrebuild :
Особливі випадки
Якщо пакет вже встановлений і його потрібно перевстановити або необхідно зменшити версію пакета, то можна до команд інсталяції або оновлення додати опцію --force .
Якщо встановлення або видалення пакета формально порушує залежності, але відомо, що все буде добре, то використовується опція --nodeps.