Управление на пакетите под Linux – Част втора: RPM

Основи на RPM

RPM (Resource Packet Manager) е единя от двата основни пакетни мениджъра в Linux. Той може да се използва както директно, като пакетен мениджър от ниско ниво, така и посредством пакетни мениджъри от високо ниво. Ето списък с различните мениджъри от високо ниво, придружен от информация в коя дистрибуция се използват:

  • yum – Fedora, CentOS-5, Red Hat Enterprise Linux, Scientific Linux, Yellow Dog Linux и Oracle Linux.
  • up2date – Red Hat Enterprise Linux и CentOS
  • Synaptic Package Manager – PCLinuxOS
  • zypper – MeeGo, openSUSE и SUSE Linux Enterprise
  • urpmi – Mandriva Linux
  • apt-rpm – това е разновидност на пакетния мениджър на Debian – Advanced Packaging Tool (APT), използва се в Ark Linux

Информацията за инсталираните пакети се пази в база от данни, намираща се в /var/lib/rpm. Тя е базирана на Berkeley DB. Състои от основна база (Packages), която съдържа всички meta-данни за инсталираните пакети. Освен това се използват и различни бази, съдържащи индекса на пакетите с цел по-бързо търсене. Базата също се използва за да се проследяват всички променени по време на инсталацията файлове, с цел при необходимост, тези промени да бъдат отменени. Ако по някаква причина целостта на базата бъде нерушена, rpm поддържа пре-изграждане на данните в базата, чрез командата rpm –rebuilddb.

Файловете, които съдържат пакетите, които се използват при инсталация с RPM имат следните разширения:

  • rpm – бинарен пакет
  • src.rpm – пакет, съдържащ source code на приложение

Команди, използвани за инсталиране и ъпгрейд на пакети

  • rpm -ivh <package> – инсталиране на пакет (i=install v=verbose h=show hash marks)
  • rpm -e <package> – премахване на пакет
  • rpm -Uvh <package> – ъпдейт на пакет
  • rpm -Uvh –test <package> – проверка, как ще протече инсталацията/ъпгрейда на пакета

Команди, използвани за проверка на пакет

  • rpm -Vvv <package> – проверка на пакет. Допълнителните “vv” в ключа карат rpm да изведе повече информация от стандартното
  • rpm -Va – проверка на всички инсталирани пакети
  • rpm -K <package> – проверка на криптографския подпис на даден пакет

Команди за търсене

  • rpm -qpl <package> – извежда съдържанието на неинсталиран пакет
  • rpm -qa | grep <pattern> – търсене на определен инсталиран пакет, чрез използването на филтриране
  • rpm -ql <package> – показва, кои файлове са включени в пакета
  • rpm -qi <package> – показва информация за пакета
  • rpm -qf <path/to/file> – показва част от кой пакет е файла
  • rpm -qc <package> – показва конфигурационните файлове, които се съдържат в пакета
  • rpm -qd <package> – показва файловете с документация в пакета
  • rpm -q –scripts <package>- показва скриптовете в пакета
  • rpm -q –provides <package> – показва какво предоставя пакета
  • rpm -q –requires <package> – показва зависимостите на пакета

Инсталация на src.rpm пакети

За разлика от rpm пакетите, src.rpm не съдържат компилирано приложение, а неговия source code. При инсталацията на такъв пакет, съдържанието му се разопакова в определена директория, като след това е необходимо, изходния код да бъде компилиран, за да може приложението да бъде използвано. Най-лесния начин за инсталиране на такива пакети е, да се използва командата rpmbuild –rebuild, който ще се опита да компилира source пакета. Ако компилирането мине успешно се създава обикновен rpm пакет, който може да бъде инсталиран по описания вече начин:

# rpmbuild --rebuild <package.src.rpm>

Повече информация за това как да използвате scr.rpm пакетите, можете да намерите на страницата с документация на rpm пакетния мениджър – www.rpm.org

RPM мениджъри

Въпреки голямото разнообразие на rpm пакетни менеджъри, тук ще се спра само на два – yum и zypper.

yum – yellowdog updater modified

Yum е автоматичен пакетен мениджър за rpm базирани системи. Той проследява зависимостите между пакетите и автоматично инсталира онези пакети, които са необходими за работата на пакета, който се опитвате да инсталирате или ъпдейтнете. Yum поддържа plug-in интерфейс, който може да бъде използван за разширяване на функционалността му. Освен това, посредством неговия модулен интерфейс, може да бъде вграждан в различни програми, писани на програмния език python. Ето най-често използваните команди на yum:

  • yum install <packet или pattern> – инсталира даден пакет или група от пакети, заедно със зависимостите му
  • yum remove <packet или pattern> – премахва пакет или група от пакети
  • yum search <pattern> – търси базата от данни за определен пакет, не  зависимо дали той е инсталиран или не
  • yum list <pattern> – показва всички пакети, отговарящи на даден критерий
  • yum update – извършва ъпдейт на пакетите в системата. Ако се подаде име на пакет се опитва да ъпдейтне само него.

За достъп до пакети, yum и zypper използват хранилища, намиращи се в интернет, но могат да използват и пакети, намиращи се на локалната машина. В този случай, основния пакет се взема от твърдия диск на машината, а хранилищата се претърсват за зависимости. Описанието на харинилищата се извършва в конфигурационни файлове. В случая с yum, тези файлове се намират в директорията /etc/yum.repos.d

Zypper

zypper е пакетния мениджър на MeeGo, openSUSE и SUSE Linux Enterprise. Подобно на yum, той представлява обвивка върху rpm пакетния мениджър. За разлика от yum, управлението на хранилищата се извършва посредством команда. Освен това zypper подлежи на много по-финна конфигурация отколкото yum, има и по-висока скорост на работа. Притежава и по-добър механизъм за решаване на проблеми със зависимостите. Ето някои основни команди за zypper. Всяка от тях започва с комадната zypper, например zypper ar:

Repository Management:

  • repos, lr – извежда списък с инсталираните хранилища
  • addrepo, ar – добавя ново хранилище
  • removerepo, rr – премахва хранилище
  • refresh, ref – опреснява данните за хранилищата

Software Management:

  • install, in – инсталиране на пакет или група от пакети
  • remove, rm – премахване на пакет или група от пакети
  • verify, ve – проверка на интегритета на пакет
  • source-install, si – инсталация от source

Update Management:

  • update, up – ъпдейт на пакет или група от пакети
  • list-updates, lu – извежда списък с наличните ъпдейти
  • dist-upgrade, dup – пълен ъпгрейд на дистрибуцията

Querying:

  • search, se – търсене на пакет по дадена ключова дума
  • info, if – извежда подробна информация за пакет
  • patterns, pt – извежда списък с предварително зададени схеми

За пълен списък с командите на zypper, извикайте командата в терминал, без да определяте опции. Това ще изведе списък с позволените команди. Ако изпълните zypper help <command>, ще получите по-подробна информация за дадената команда.

Comments are closed.