Управление на пакети в RHEL - rpm, паралелни изчисления в Уралския клон на Руската академия на науките
RHEL, Fedora, Mandriva, AltLinux и някои други дистрибуции използват мениджъра на пакетиrpm за инсталиране, премахване и актуализиране на програми. Мениджърът на пакети rpm ви позволява да инсталирате, премахвате, проверявате пакети от съответния формат, но няма средства за автоматично разрешаване на зависимости и търсене в хранилища. За да автоматизирате инсталирането на пакети, можете да използвате програматаyum (Yellowdog Update Manager), която автоматично разрешава зависимостите между пакетите и зарежда необходимите файлове. Ако трябва да изградите пакет с програмата от източника, можете да използватеrpmbuild. За да направите това, трябва да подготвите пакет във формат .src.rpm, който включва изходния код на програмата и .spec файл, който описва процеса на изграждане.
Структура на пакета
Пакетите са именувани по следната схема: име-версия-сглобяване. Пакетите се разпространяват като файлове с .architecture.rpm, добавен към техните имена. Например squid-2.5.STABLE8–1.FC3.1.i386.rpm означава: програма squid, версия 2.5.STABLE8, компилация 1.FC3.1, i386 архитектура (неоптимизирано приложение за i386 съвместими процесори). Номерът на компилация може или не може да включва името на разпространението (FC3 в този случай). Архитектурата noarch означава скриптове, независими от архитектурата на процесора. Файловете .src.rpm съдържат програмни източници и се инсталират по специален начин.
Всеки пакет съдържа файлове за програми, библиотеки, конфигурация, документация и т.н., пакетирани с cpio архиватора. Пакетът съдържа и допълнителни раздели:
- ПРЕДОСТАВЯНЕ – предоставена функционалност (например „пощенски сървър“) плюс пакетни файлове;
- REQUIRENAME – необходимо заправилна работа на пакети, файлове и др. (това, което се изисква вREQUIRENAME трябва да присъства вPROVIDE на предварително инсталирани пакети);
- OBSOLETES - списък с пакети, които могат да бъдат премахнати, защото тяхната функционалност и/или файлове са заменени от този пакет;
- PREIN, POSTIN – скриптове, изпълнявани преди инсталацията (например спиране на обновяването на демона) и скриптове, изпълнявани след инсталацията (например редактиране на конфигурационни файлове за конкретна машина);
- PREUN, POSTUN – скриптове, които да се изпълняват при изтриване;
- ОБОБЩЕНИЕ – кратко описание на пакета;
- ОПИСАНИЕ – подробно описание.
Освен това всеки пакет принадлежи към някаква група Интернет, Разработка на софтуер, Развлечения и т.н. Можете да видите секциите на 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 файла (в примерите няма да се дава навсякъде).
обороти в минута -q. – проверка за инсталиран пакет и неговата версия rpm -qa - списъквсички rpm -qi пакети. – ОПИСАНИЕ на пакет rpm -qip . – ОПИСАНИЕ на файл rpm -qR . – ЗАЯВКИ на пакет rpm -ql . – списък с пакетни файлове rpm -qf. – определяне на принадлежността на произволен файл към един от инсталираните пакети
Проверка на целостта на rpm пакет
Файловете, поставени в rpm пакет, са придружени от изчислена контролна сума и обикновено са цифрово подписани от създателя на пакета. След като пакетът бъде инсталиран, контролните суми и подписите се съхраняват в базата данни на инсталираните пакети. Тези спомагателни данни ви позволяват да извършите няколко проверки, например можете да проверите дали пакетът е създаден от доверен издател и че файловете на пакета не са били манипулирани след инсталирането.
Първата проверка е много важна при изтегляне на пакети от интернет, а втората, когато подозирате, че компютърът ви е хакнат.
Публичните ключове за проверка на подписа се инсталират автоматично при инсталиране от дистрибуцията и също полуавтоматично се добавят при инсталиране на rpm пакети за свързване на yum хранилища. Ключовите файлове на CentOS са инсталирани в директорията /etc/pki/rpm-gpg/. Можете да добавите ключа ръчно, като посочите пътя до локален файл или неговия url. Файлът с ключа трябва да е в текстов формат "ASCII брониран"
След инсталирането за ключовете се прилагат същите команди, както за инсталираните пакети.
rpm -qa gpg-pubkey* - списък на всички ключове rpm -qi gpg-pubkey-db42a60e - информация (включително име на собственик) за определен ключ rpm -e gpg-pubkey-db42a60e - изтриване на ключ
Проверка на пакетния файл за целостта
Проверка на целостта на инсталиран пакет
След изпълнение на тази команда ще се покаже списък с променени файлове, показващ какво точно е променено в тях. Информацията за типа промяна се състои от низ от съкращения,включително:
- S – размер (Размер)
- M – тип файл или права за достъп (режим)
- 5 – контролна сума (MD5)
- D – голямо или второстепенно устройство устройство (Устройство)
- L – съдържание на символна връзка (Връзка)
- U - собственик (Потребител)
- G – група (Група)
- T – време за модификация (mTime)
- P - възможност (caPabilities)
Извличане и пакетиране на rpm пакетни файлове
Програмата rpm2cpio извлича файлове от RPM пакет в cpio архивен формат. За да разопаковате файлове заедно със структурата на директорията, използвайте командата cpio с опциите -i - разопаковане и -d - създаване на директории:
rpm2cpio cpio -i -d
Ако трябва да запишете инсталирания пакет във файл, можете да използвате програмата rpmrebuild:
Особени случаи
Ако пакетът вече е инсталиран и трябва да бъде преинсталиран или ако версията на пакета трябва да бъде понижена, тогава можете да добавите опцията --force към командите за инсталиране или надстройка.
Ако инсталирането или премахването на пакет формално прекъсва зависимостите, но е известно, че е добре, тогава се използва опцията --nodeps.