BLOGS

Darbs ar rpm paku menedžeri YUM

yum

Lai paātrinātu dažādu programmatūru un atjauninājumu uzstādīšanu uz serveriem, daudzi Linux distributīvi saviem lietotājiem piedāvā sakompilētas programmu pakas. Šīs pakas tiek glabātas arhīvos, sauktos par repozitorijiem (repository). Šo paku uzstādīšanu un atjaunināšanu palīdz veikt paku menedžeris, kas tavā vietā atcerēsies katras programmas versijas numuru, pārbaudīs pieejamos atjauninājumus, saglabās uzlikto un pieejamo programmu informāciju, veiks elementāru programmas konfigurāciju un citas nepieciešamas lietas.

Centos, Fedora un RedHat ir trīs populārākie distributīvi no daudziem (rpm based), kuri izmanto RPM pakas. Šo paku pārvaldīšanu nodrošina utilītprogramma rpm, taču tās sarežģītības un daļēji ierobežoto iespēju dēļ vispopulārākais paku menedžeris šajos distributīvos ir YUM (Yellowdog Updater Modified). YUM piedāvā papildus iespējas un funkcionalitāti, taču izmanto rpm.



Pamatkomandas


yum install pakas_nosaukums

Uzstāda paku pakas_nosaukums un nepieciešamos papildinājumus, ja tādi vajadzīgi.

yum reinstall pakas_nosaukums 

Vēlreiz uzstādīt paku pakas_nosaukums

yum remove pakas_nosaukums

Nodzēš paku pakas_nosaukums

yum info pakas_nosaukums

Attēlo detalizētāku aprakstu par paku pakas_nosaukums

yum list installed

Parāda sarakstu ar visām pakām kuras uzstādītas sistēmā

yum search *nosaukums*

Parādīs sarakstu ar visām pakām, kuru nosaukums saturēs norādīto

yum update

Uzliek atjauninājumus visām uzstādītajām pakām, vai noteiktai pakai, ja tāda tiek norādīta

yum --exclude=package *pakas_nosaukums* update

Atjaunot visas pakas, izņemot norādīto paku

yum list updates

Parāda sarakstu ar visām pakām, kurām pieejami atjauninājumi

yum downgrade *pakas_nosaukums*

Uzliek norādītas pakas vai paku iepriekšējo versiju, ja tāda ir pieejama.

yum clean all

Dzēš failus, paku arhīvus un informāciju, kas vairs nav nepieciešami, bet atstāti sistēmā pēc pakas uzstādīšanas.

yum provides "*/libdevmapper.so.1.02"

Sameklē visas pakas, kuras satur norādīto failu. Šinī gadījumā libdevmapper.so.1.02

YUM saprot wildcard ( * ), ar kura palīdzibu var norādīt frāzi, ar kuru saturošajām paka tiks veiktas prasītās darbībās.

yum install php-*

uzliks visas pakas, kuru nosaukums sāksies ar php-


Paku grupas


RPM pakas tiek sagrupētas grupās pēc to darbības. Piemēram pakas kas nepieciešamas sistēmas pamatfunkcijām atrodas grupā Base, pakas kas saistītas ar MySQL - MySQL Database utt.

yum gouplist

Parāda visas pieejamo paku grupu nosaukumus

yum groupinfo "grupas nosaukums*

Parādas grupas aprakstu, kā arī visas pakas kuras tajā sagrupētas.

yum groupinstall "grupas nosaukums*

Uzliek visas pakas, kuras atrodas dotajā grupā

yum groupremove "grupas nosaukums"

Novāc visas pakas, kuras atrodas dotajā grupā



Papildus repozitoriji


Ne vienmēr noklusētajos repizitorijos ir pieejamas nepieciešamās pakas. Ir izveidoti daudzi neoficiāli repozitoriji, kuros entuziasti apkopo pakas ar ieslēgtām nestandarta iespējām, jaunākās programmas

versijas vai programmas ar labojumiem. Populārākie repozitoriji ir RPMforge, EPEL un Atomic. Lai pievienotu papildus repozitoriju, nepieciešams uzstādīt rpm paku ar attiecīgā repozitorija konfigurācijas failiem. Piemēram lai pievienotu RPMforge repozitoriju 64bit sistēmai uz Centos 6 jāizpilda šī komanda

rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Konfigurācijas faili, kas satur repozitoriju adreses, un to konfigurāciju atrodami direktorijā /etc/yum.repos.d/. Šāds ieraksts failā /etc/yum.repos.d/rpmforge.rep norāda repozitorija nosaukumu. Tā atrašanās adresi, kā arī iespējamo spoguļserveru adreses.

[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

enabled norāda, ka šis repozitorijs noklusēti ir ieslēgts, tādējādi pakas no tā varēs uzstādīt bez papildus parametru norādīšanas.

protect=1 norāda, ka noklusēti pakas no šī repozitorija drīkstēs atjaunot ņemot pakas arī no citiem repozitorijiem, ja šo repozitoriju konfigurācijā būs tāds pats protect=1 līmenis.

gpgkey norāda GPG atslēgas atrašanās vietu dotajā sistēma, savukārt gpgcheck norāda, vai YUM pārbaudīs paku paraksta atbilstību, vai arī uzticēsies tam bez pārbaudīšanas.



Repozitoriju pieslēgšana vai atslēgšana


Sistēmā pievienotos repozitorijus iespējams pieslēgt vai atslēgt izmantojot yum komandas, tādējādi katru reizi nav jālabo konfigurācijas fails.

yum --enablerepo=rpmforge update php*

Atjaunos visas php pakas, ar pakām no RPMforge repozitorija.

yum  --disablerepo=rpmforge update php*

Atjaunos visas php pakas no visiem repozitorijiem izņemot RPMforge

yum repolist all

Parādīs sarakstu ar ieslēgtajiem un izslēgtajiem repozitorijiem



Papildus noderīgas komandas


yum -y Pievienojot komandu -y yum neprasīs apstiprinājumu uzdotajām darbībām

rpm2cpio paka.rpm | cpio -idmv

Atarhivēs rpm paku, bet neuzstādīs to.

yum install yum-utils.noarch -y
yumdownloader php* --destdir=/tmp -y

Uzstādīs papildus rīkus priekš YUM neprasot apstiprinājumu. Otrā komanda novilks visas rpm pakas, kuru nosaukums sāksies ar php un saglabās tās direktorijā /tmp bez apstiprinājuma

Gadās situācijas kad sistēmā uzstādītajos repozitorijos nav iespējams sameklēt sev vajadzīgo paku. Internetā ir pieejami vairāki meklētāji, kas meklēs vajadzīgo rpm paku norādītajiem distributīviem. Divi lielākie meklētāji ir rpm.pbone.net un rpmfind.net. Papildus tam, šeit ir Centos izstrādātāju uzturēts repozitoriju saraksts.