RPM Package Manager: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(160 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:Rpmlogo.png|150px|thumb|upright|RPM (RPM Package Manager)]]
[[File:Rpmlogo.png|200px|thumb|upright|<p align="center" text-family="Halvetica" text-size="18px">'''RPM Package Manager'''</p>
'''Referaat on protsessis'''
'''Originaal autor:''' <p align="right">Red Hat</p>
'''Stabiilne versioon:''' <p align="right">4.9.0</p>
'''Kuupäev:''' <p align="right">02.03.2011</p>
'''Operatsioonisüsteem:''' <p align="right">GNU/Linux</p>
'''Tüüp:''' <p align="right">Paketihaldussüsteem</p>
'''Litsents:''' <p align="right">GNU GPL</p>
'''Veebileht: <p align="right">[http://www.rpm.org/ rpm.org/]</p>
<p align="right">[http://www.rpm5.org/ '''rpm5.org/''']</p>]]
 
=Sissejuhatus=
=Sissejuhatus=
'''RPM''' (rekursiivne akroonüüm '''RPM Package Manager'''; varem oli nimetud nagu '''Red Hat Package Manager''') määrab kaks üksusi: tarkvarapakettide vorming ja programm, milline oli loodud selle paketi kontrollimise jaoks. Programmi abil võib installida, kustutada ja uuendada tarkvarat. RPM - see on põhine paketide vorming Linux Standards Base-s. '''RPM''' on litsentseeritud '''GPLv2''' all.
'''RPM''' (rekursiivne akroonüüm '''RPM Package Manager'''; varem nimega '''Red Hat Package Manager''') määrab kahte üksust: tarkvarapakettide vorming ja programm, mis on loodud selle paketi kontrollimise jaoks. RPM määrab kahte asja: paketi tarkvara vormingut ja tarkvara, mis on tehtud selle paketi juhtimiseks. Programmi abil võib installeerida, kustutada ja uuendada tarkvara.<br/>
 
RPM - see on paketide põhine vorming Linux Standards Base-s. '''RPM''' kasutab litsentsina '''GPLv2'''.<br/>
Failide hoidmiseks vormingus RPM kasutatakse arhiivne konteiner cpio, kasutades utiliidiga [[gzip]]. Hilisemades versioonides võib kasutada ka star arhivaatorit ja kokkupakkimist [[bzip2]], [[LZMA]] või [[XZ]] abiga. Alustades versioonist RPM 5.0 võimalik arhivaatorit [[XAR]] kasutamine.
Failide hoidmiseks RPM vormingus kasutatakse arhiivset konteinerit '''cpio''', kasutades utiliiti [[gzip]]. Hilisemates versioonides võib kasutada arhiveerimiseks ka '''star'''i ja kokkupakkimiseks [[bzip2]], [[LZMA]] või [[XZ]]. Alustades versioonist RPM 5.0 on võimalik arhiveerimismeetodi [[XAR]] kasutamine.


==Eesmärk==
==Eesmärk==
* Artikli eesmärgiks on tutvustamine RPM Package Manageriga
* Artikli eesmärgiks on tutvustada RPM Package Manageri<br/>
* Ülevaade mida võiks teha selle programmi abil
* Ülevaade, mida võib teha selle programmi abil<br/>
* Vaadata üle tihti kasutatavad käsud
* Vaadata üle tihti kasutatavad käsud<br/>


==Sisukord==
==Sisukord==
Artiklis on olemas teoreetiline ja praktiline osa.
Artiklis on olemas teoreetiline ja praktiline osa.<br/>
Teoreetilises osas uuritakse, mis on RPM ja mille jaoks teda on vaja.<br/>
Praktilises osas vaatame, kuidas seda programmi saab kasutada.
 
==Kasutus==
Selles artiklis on kirjutatud käsud, mida kõige tihidamini kasutatakse.<br/>
Lisaks on olemas spikker.
 
==Nõuded==
* GNU/Linuxi teadmine
* GNU/Linuxi käsurea teadmine
* Inglise keele arusaamine ja mõistmine
 
=Struktuur=
RPM sisaldab '''.spec''' faili, mis annab informatsiooni paketist, tema sõltuvutest (millised paketid oli installeeritud, et see pakett võiks töötada). Fail .spec sisaldab failipaketide manifesti, infot sellest, kuhu need failid peavad olema süsteemis paigaldatud ja millised on nende põhilised õigused. RPM sisaldab veel eelpaigaldatud scripti, mis on kirjutatud paketi töötleja poolt. Lisaks sisaldab RPM kompileeritud binaarset faili ja paigaldatud skripti.
 
{|border="1"
|.spec
|eelpaigaldatud skript
|binaarne fail
|binaarne fail
|...
|binaarne fail
|paigaldatud skript
|}
 
=Andmebaas=
RPM andmebaas asub /var/lib/rpm kataloogis. See koosneb ühest andmebaasist (Packages), milles hoiatakse kogu informatsiooni paketidest. Sisaldab ka palju väikeseid andmebaase (__db.001, __db.002 jne), mis indekseerivad ja sisaldavad teateid sellest, millised failid muutusid ja loodud paketide installerimise ja kustutamise protsessis.<br/>
Kui andmebaas läheb katki (see võib juhtuda, kui installerimise või kustutamise protsess oli «tapetud» või ketas on täis), siis saab seda taastada käsu abil:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm --rebuilddb</blockquote>


Teoreetilises osas võib teada ja uurida mis on RPM ja mille jaoks ta on vaja.
Andmebaasi initsialiseerimine:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm --initdb</blockquote>


Praktilises osas võib vaadata kuidas seda programmi kasutada.
RPMi installerimise protsessi käigus süsteem kontrollib sõltuvusi. Kui sõltuvused puuduvad, siis  installerimise protsess lõpetab. Välja arvatud need juhtumid, kui kasutatakse spetsiaalseid suvandeid, mis sunnivad teostada installerimist.<br/>


==Kasutus==
Kui installerimine on tehtud ilma probleemita, käivitatakse eelpaigaldatud skripti. Tavaliselt see loob kasutajaid ja katalooge. Kuid ta võib genereerida dünaamilise konfiguratsiooni erinevaid tüüpe.<br/>


=RPM andmebaas=
Kui eelpaigaldatud skript on täidetud edukalt, binaarsed failid kopeeritakse süsteemi vastavalt paketi manifestiga. Kui kõik failid on juba kopeeritud ja õigused on nendele tehtud, siis käivitatakse paigaldatud skript.<br/>
RPM andmebaas ведётся kataloogis /var/lib/rpm. Ta seisneb ühest andmebaasist (Packages), millisel hoiatakse kõik informatsioon paketidest, ja palju väikesed andmebaasid (__db.001, __db.002 jne), millised teenindavad indekseerimise jaoks ja sisaldab teaded sellest, millised failid muutusid ja luuasid paketide installerimise ja kustutamise protsessis.


Kui andmebaas natuke rikkub (see võib juhtuda, millal installerimise või kustutamise protsess oli «tapetud» või lõpetas jaotusele vaba ruumi), siis teda võib taastada kommandi abil:
Kui protsess lõpeb, informatsioon paketist lisatakse RPM andmebaasi ja installeerimine lõpeb.<br/>


<pre>
RPM pakettide installeerimise protsessis toimub failide kopeerimine süsteemi ja skriptide käivitamine. Root käivitab RPMi, kõik need tegevused on kättesaadavad ainult root kasutaja jaoks. Sellepärast enne paketi installerimist süstemi, on vaja teada selle paketi päritolu.
rpm --rebuilddb
</pre>


=Mis on sees=
=Mis on sees=
Paar sõna sellest, mis toimub installimise või kustutamise protsessi jooksul. RPM automatiseerub rutiinseid operatsioone. Paketide installimise/kustutamise jooksul kõik tegevused võib panna skriptidesse. Asukoha selle skriptide sõltuvuses kanoonilise tegevuste järjestikkus, näiteks paketi installimise protsessis, need skriptid nimetatakse enne paigaldatavad või paigaldatavad. Standaartne operatsioonide järjekord, millised initsialiseeritakse rpmi paketi installimise jooksul on:
Paar sõna sellest, mis toimub paigaldamise või kustutamise protsessi jooksul. RPM automatiseerib rutiinseid operatsioone. Paketide paigaldamise või kustutamise tegevusi saab skriptida. Standaartne operatsioonide järjekord, mida tehakse rpm paketi paigaldamise jooksul on:<br/>


* Kontrollitatakse sõltuvusi  
* Kontrollitatakse sõltuvusi<br/>
* Kontrollitatakse võimalikud konfliktid (kõige tihti konflikti variant - süsteemis paigaldatud ühenimeline pakett enam uuem versiooni)
* Kontrollitatakse võimalike konflikte (kõige tihedam konfliktide põhjus - süsteemis paigaldatud ühenimeline pakett on paigaldatud enne uuemat versiooni)<br/>
* Töödeldakse konfiguratsioonide failid
* Töödeldakse konfiguratsiooni faili<br/>
* Kooperitakse binaarsed failid vajalikku kataloogisse
* Kooperitakse binaarfailid vajalikku kataloogi<br/>
* Teostatakse peale installerimist skriptid
* Pärast installerimist käivitatakse skriptid<br/>
* Uuendatakse paketide andmebaas
* Uuendatakse pakettide andmebaas<br/>


=Paketide nimetused=
=Paketide nimetused=
Igal RPM paketil on nimetus, milline sisaldab mitmest osast:
Igal RPM paketil on nimetus, mis koosneb mitmest osast:
* Programmi nimetus
* Programmi nimetus<br/>
* Programmi versioon
* Programmi versioon<br/>
* Reliisi number (arv kui palju kordi programm oli uuendatud). Tihti kasutatakse distributiivi määramise jaoks, mille all tehtud pakett.
* Redaktsiooni number (arv kui palju kordi programm oli uuendatud). Tihti kasutatakse distributsiooni määramise jaoks, mille ajaoks on tehtud pakett<br/>
* Arhitektuur, mille all pakett tehtud (i386, ppc jne)
* Arhitektuur, millele on tehtud  pakett (i386, ppc jne)<br/><br/>
 


Kokku võetav pakett tavaliselt sisaldab niisugune nimetuse vorming:
Paketil on tavaliselt niisugune nimetuse vorming:


<pre>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; "><nimetus>-<versioon>-<redaktsioon>.<arhitektuur>.rpm</blockquote>
<nimetus>-<versioon>-<reliis>.<arhitektuur>.rpm
</pre>


Näiteks:
Näiteks:


<pre>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">nano-2.2.6-1.i386.rpm</blockquote>
nano-2.2.6-1.i386.rpm
</pre>


=RPMi eelised ja puudused=
=RPMi eripärad, eelised ja puudused=


==RPMi eelised==
==RPMi eelised==
* Kustutamise kergus ja programmide uuendamine
* Kustutamise kergus ja programmide uuendamine<br/>
* Populaarsus: väga palju programme on kokku kogutud RPMi, see tähendab, et ei ole vajadust teha programmi lähtekoodis muudatusi<br/>
* "Pole interaktiivne" installerimine: kergesti automatiseeritud installerimise/uuendamise/kustutamise protsess<br/>
* Paketide tervikluse kontroll kontrollsummade abil ja '''GPG'''-allkirjadega<br/>
* [[DeltaRPM]] - see on apache'i analoog, millega võib uuendada installitud tarkvara minimaalse pingitusega<br/>
* Spec-failide relatiivne kompaktsus makrode kasutamise abil


* Populaarsus: väga palju programme собираются RPMisse, see tähendab et ei ole vajadusi teha programmi lähtekoodidest
==RPM eripärad==
===Uuendamine===
RPMi abil saate uuendada oma süsteemi individuaalseid komponente ja installimata üle kogu süsteem. RPM tagab intellektuaalse, täis automaatse uuendamise viisi süsteemi ja paketide installeerimiseks. RPM jälgib eraldi konfiguratsioonifaile ja dokumentatsiooni pakette ja annab installerimise/uuendamise võimaluse iga paketi osale eraldi.


* "Pole interaktiivne" installerimine: kergesti automatiseerida installerimise/uuendamise/kustutamise/ protsess
===Tugev päringute vahend===
'''RPM''' on loodud tugeva päringute töötluse jaoks. Te võite otsida pakette andmebaasist või mõnest failist. Te võite lihtsasti leida, millisele paketile, milline fail kuulub, ja kust see paket oli võetud. Te võite teha andmebaasi järelepärimise või '''.rpm''' faili järelpärimise, sest tema pealkiri sisaldab kõike vajaliku informatsiooni tema sisust.


* Paketide tervikluse kontroll kontrolli summade abil ja '''GPG'''-allkirjadega
===Süsteemide kontroll===
 
RPM annab võimalusi süsteemi terviklikkuse ja erifailide kontrollimise jaoks. Kui teil tekkis kahtlus, mis on seotud iga paketiga (näiteks te kahtlete, kas te ei kustutanud vajaliku faili) - te võite kontrollida paketi terviklust. RPMis saab teha sõltuvuste kontrolli, failide kontrollsummasid, juurdepääsu õigusi, suurust jne kõikide installitud süsteemis paketide jaoks.<br/><br/>
* [[DeltaRPM]] - see on apache'i analoog, millega võib uuendada installitud tarkvarat minimaalsega pingitusega
RPMi paketi allikad ('''.src.rpm''') sisaldavad programmi algkoodi, kõik paigad pluss täisinstruktsioon paketi koostamise kohta.  Uue tarkvara versiooni ilmumisel, piisab algkoodi vahetamisest. RPM paketi uuendamiseks on võimalik parandada koostamise instruktsioone ja viidates RPMile uuendada antud pakett.
 
* Akkumulatsiooni võimaluse kogemus kogujade spec-failis
 
* Spec-failide relatiivne kompaktsus macroside kasutamise abil


==Põhilised puudused==
==Põhilised puudused==
* Makropaketid distributiivide vahel võivad eraldada
* Distributsioonide vahelised makropaketid võivad olla üsna erinevad.
* Erinevate versioonide killustatus  ja ühitamatus. Näiteks, on olemas erinevad RPM 4 ([http://www.rpm.org/ rpm.org]), RPM5 ([http://www.rpm5.org/ rpm5.org]) väljatöötamis/arendamisprojektid, ning samas eksisteerib palju RPM pakke distributsioonides. Selline mitmekesisus võib põhjustada:
** Distributsioonide vaheliste spec-failide ühitamatust (tihti ALT Linux spec-faile ei ole võimalik kokku panna Red Hat ja SUSEle ilma tunduvate muudatusteta)
** Pakettsõltuvuste nimetuste ühildamatust, juhul kui püütakse instaleerida paketti teiselt distributsioonilt (näiteks, Connectiva kokkupanekuga RPM sõltuvusi luuakse teiste, erinevate Mandrivast, reeglite järgi).


=Toetavad Linux distributiivid=
=Toetavad Linuxi distributsioonid=
See on nimekiri mõnede tuntumate distributiivide, millised olid asutatud RPM baasil:
Nimekiri mõnede tuntumatest distributsioonidest, mis on asutatud RPM baasil:
* [[ALT Linux]]
* [[ALT Linux]]<br/>
* [[ASP Linux]]
* [[ASP Linux]]<br/>
* [[CentOS]]
* [[CentOS]]<br/>
* [[Fedora]]
* [[Fedora]]<br/>
* [[Mandriva Linux]]
* [[Mandriva Linux]]<br/>
* [[Red Hat Enterprise Linux]]
* [[Red Hat Enterprise Linux]]<br/>
* [[SUSE Linux]]
* [[SUSE Linux]]<br/>


(See on mittetäielik nimekiri)
(See on mittetäielik nimekiri)
=Lisaprogrammid RPMi jaoks=
Töö programmiga '''rpm''' konsoolis ei ole raske, kuid mõnikord on lihtsam kasutada graafilist liidest. Linux tavaliselt sisaldab lisaprogramme, mis on graafilised. Igal distributsioonil on oma lisaprogrammid ja nad võivad erineda. Seda infot võib leida distrubutsiooni dokumentatsioonis.


=Praktiline kasutamine=
=Praktiline kasutamine=
==Kasutusjuhend==
Kõikides Linuxi programmides võib vaadata kasutusjuhendit. Selle jaoks kirjutage:
Kõikides Linuxi programmides võib vaadata kasutusjuhendit. Selle jaoks kirjutage:
<pre>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">man rpm</blockquote>
man rpm
 
</pre>
==Paketi installerimine==
Kui te tahate installida paketi RPMi abil, siis kirjutage:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -i <paketi nimi></blockquote>
 
==Paketi uuendamine==
Paketi uuendamise jaoks kasutatakse:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -U <paketi nimi></blockquote>


Kui te tahate installida pakket RPMi abil, siis kirjutage:
Pärast paketti allalaadimist, piisab käivitada rpm käsk ja anda kolm omadust:
<pre>
rpm -i <package name>
</pre>
Peale seda millal pakett asub teie failisüsteemis, piisavalt käivitada rpm käsk ja anda kolm omadusi:


'''-U (upgrade)''' Miks '''-U''' parem, kui '''-i'''? Asi on selles, et -i võib ainult installida, aga -U annab uuendamine ja installimine. Sõltumatu sellest, kas te tahate uuendada programmi või installida, see käsk teeb vajalikud tegevused.
'''-U (upgrade)''' Miks '''-U''' parem, kui '''-i'''? Asi on selles, et -i võib ainult installida, aga -U annab uuendusi ja installeerimisi. Sõltumatult sellest, kas te tahate uuendada programmi või paigaldada, see käsk teeb vajalikud tegevused.


'''-h''' (installimise protsessi kujutamise jaoks)
'''-h''' (installeerimise protsessi kujutamise jaoks)


'''-v''' ('''verbose''', väljastus laiemalt informatsiooni täidetavast tegevustest)
'''-v''' ('''verbose''', väljastus laiemalt informatsiooni täidetavast tegevustest)
<pre>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -Uhv <paketi nimi></blockquote>
rpm -Uhv <package name>
</pre>


Kustutada pakett ka väga lihtne:
==Paketi kustutamine==
<pre>
Kustutada paketi on väga lihtne:
rpm -e <package name>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -e <paketi nimi></blockquote>
</pre>


Paketi uuendamise jaoks kasutatakse:
==Paigaldatud paketi kontrollimine==
<pre>
Kontrollida, kas paket on paigaldatud:
rpm -U <package name>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -qa | grep <paketi nimi></blockquote>
</pre>
 
==Info paketist==
Kui te tahate uurida informatsiooni paketi kohta, siis kirjutage:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -qi | grep <paketi nimi></blockquote>


Vaadata, kas installitud pakett võib selle kommandi abil:
Veel üks võimalus informatsiooni vaatamiseks:
<pre>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\n' <paketi nimi></blockquote>
rpm -qa | grep <package name>
</pre>


Kui te tahate uurida informatsiooni paketist, siis kirjutage:
==Paketi failide nimekiri==
<pre>
Vaadata failide nimekiri, mida sisaldab pakett:
rpm -qi | grep <package name>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -ql | grep <paketi nimi></blockquote>
</pre>


Vaadata failide nimekiri, millised sisenevad paketide sisukorra võib:
==Paketi kirjeldus==
<pre>
Suur kollektsioon võimalusi annab infot režiimi päringude omaduste kohta. Paketist ja tema failidest võib saada praktiliselt kogu informatsiooni. Need võimalusi realiseeritakse enda võti-filtri abil või --queryformat abil. --queryformat näitab ainult tellitud ametlikke välju. Näiteks selline käsk näitab paketi kirjeldust:  
rpm -ql | grep <package name>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -q --queryformat %{DESCRIPTION} <paketi nimi></blockquote>
</pre>


Vaadata kõik paketid võib käsuga:
==Distributsiooni nimetus==
<pre>
Distributsiooni nimetuse saab teada selle käsu abil:
rpm -qa | grep <package> more
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -q --queryformat %{DISTRIBUTION} <paketi nimi></blockquote>
</pre>


<br/>
'''NB! Märkus'''
'''NB! Märkus'''
<br/>
Nagu teised programmid Linuxi jaoks, programm rpm alati areneb. Ja selle tõttu versioonide vahel võib tekkida probleeme ja raskusi pakettide installeerimisega, mis loodi eelmistes versioonides. On vaja kasutada pakette, mis sobivad teie installeeritud versiooniga.
=Spikker=
See on väike spikker RPMi käsu kohta.<br/>
Need käsud on kontrollitud '''Fedora 14''' (Laughlin) distributsioonis.<br/>
Nende käskude käivitamiseks on vaja olla '''root'''.<br/><br/>
'''Juhtimine'''<br/>
Tuleb kasutada koos käsuga:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -<'''täht'''> <paketi nimi></blockquote>
{|border="1"
!Käsk
!Kirjeldus
|-
| -e või --erase
|Paketi kustutamine
|-
| -c või --configfiles
|Konfiguratsioonifailide nimekiri
|-
| -h või --hash
|Räsimine
|-
| -i või --install
|Paketi intalleerimine
|-
| -K või --checksig 
|Võimalus kontrollida kõiki ülevaate väljaandeid ja allkirju sisalduvaid PACKAGE_FILE, et tagada terviklust ja päritolu paketist.
|-
| -U või --upgrade
|Paketi uuendamine või installeerimine, kui ta ei olnud varem installitud
|}
<br/>               
'''Paketi valimise suvandid'''<br/>
Järgmiseid käske kasutatakse koos käsuga:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -q<'''täht'''> <paketi nimi></blockquote> 
{|border="1"
!Käsk
!Kirjeldus
|-
| -a või --all
|Päring kõikide installeeritud pakettide kohta
|-
| -c või --configfiles
|Konfiguratsiooni failide nimekiri
|-
| -d või --docfiles
|Dokumentatsiooni failide nimekiri
|-
| -f või --file FILE
|Paketi omanikud FILE
|-
| -g või --group GROUP
|Paketi gruppid GROUP
|-
| -i või --info
|Näitab paketi infot, sealhulgas nime, versiooni ja kirjeldust
|-
| -l või --list
|Paketi failide nimekiri
|-
| -V või --verify
|Paketi kontrollimine
|-
| -R või --requires
|Pakettide nimekiri, mis sõltuvad sellest paketist
|-
| -s või --state
|Näitab failide olekut paketis (on olemas kolm olekud: normal, not installed või replaced)
|}         
<br/>
'''Paketi verifitseerimine'''<br/>
Verifitseerimine on väga kasulik, sest ta võib võrrelda käesoleva oleku installitud failide nende algse olekuga.<br/>
Tavaliselt kataloogi /bin käskude nimekirjas tuleb fail, mida võib kontrollida. See võti näitab informatsiooni süsteemi protsessori arhitektuuri. Et saada teada millisest paketist on see fail, on vaja kirjutada järgmise käsu ('''-f''' näitab, millisele paketile suhtub selline fail):
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -qf /bin/<utiliidi nimi></blockquote>
Peale seda teeme varukoopia ja lisame failisse sõna "Tere":
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">cp /bin/<utiliidi nimi> /bin/<utiliidi nimi_back></blockquote>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">echo "Tere" >> /bin/<utiliidi nimi></blockquote>
Ja peale seda verifitseerimise mehhanism näitab probleeme:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rpm -V <käsu rpm -qf /bin/<utiliidi nimi> tulemus></blockquote>
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">S.?....T.    /bin/<utiliidi nimi>
</blockquote>
Taastame faili ja kontrollime veel kord:
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">rm /bin/<utiliidi nimi></blockquote>


Nagu teised programmid Linuxi jaoks, programm rpm alati rakendab. Ja seda tõttu versiooni vahel võib tekkida probleemid ja raskused paketide installerimisega, millised oli loodid eelmistes versioonides. On vaja kasutada paketid, millised sobivad teie installitud versiooni.
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">mv /bin/<utiliidi nimi_back> /bin/<utiliidi nimi></blockquote>
Tulemus:


=Spikker=
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">.......T /bin/<utiliidi nimi></blockquote>
See on väike spikker RPMi käsü kohta.
 
Eraldamise kujutamiseks kasutatakse spetsiaalseid tähistusi. Failide kontrollimise tulemus:
{|border="1"
!Märgistus
!Kirjeldus
|-
| S
|Faili suuruse eraldamine (size)
|-
| M
|Oleku eraldamine (Mode) (juurdepääsu õigused ja faili tüüp)
|-
| 5
|MD5 summa eraldamine
|-
| D
|Ei ühita major/minor-numbrid
|-
| L
|Ei ühita readLink(2) tee
|-
| U
|Ei ühita kasutajanimi
|-
| G
|Ei ühita grupp
|-
| T
|Eraldab mTime
|}
See abistab administraatorile selgitada mõned probleemid ja paketid reinstallimise jaoks.
 
=Varundamine=
Nagu varem oli mainitud, RPM andmebaas asub /var/lib/rpm. Saate varundada RPM andmebaasi kasutades järgmised käske:


'''Juhtimine:'''
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">cd /var/lib
-e või --erase         Paketi kustutamine
tar cvf rpmdb.tar ./rpm</blockquote>
-F või --freshen         Paketi uuendamine, paigaldada ainult uue pakati, kui ta oli juba selle versiooni installitud
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">tar cvf rpmdb.tar ./rpm </blockquote>
-h või --hash         Räsimine
<blockquote style="background: none repeat scroll 0 0 #F5F5F5; margin: 0.7em 0 0.7em 5%; padding: 1em 2% 1em 4%; ">gzip rpmdb.tar </blockquote>
-i või --install         Paketi intalleerimine
-U või --upgrade         Paketi ülendus või installeerimini, kui ta ei olnud varem installitud
-v või --verbose         Sisaldab lisasõnumid
               
'''Paketi valimise suvandid:'''
-q                
-a või --all                
-c või --configfiles                
-d või --docfiles             
-f või --file                
-i või --info                
-l või --list         
-V või --verify                Paketi kontrollimine
-R või --requires             
-s või --statr               
-g või --group


=Kokkuvõte=
=Kokkuvõte=
Kõik eeltoodu demonstreerib RPM paketi haldussüsteemi tähtsust ja aktuaalsust. Artiklist võib leida nii teoreetilisi kui ka praktilisi aspekte, mis on seotud RPMiga. On toodud RPMi peamised eeldused ja puudused. Samuti kasutaja peamiseks kasuks on konkreetsed käsud, mida saab rakendada RPMi juhul.


=Kasutatud kirjandus=
=Kasutatud kirjandus=
* [http://www.rpm.org/max-rpm/rpm.8.html man-lehekülg rpm]
* Scott Granneman. Linux phrasebook. Sams (2006).<br/>
* Ф. Торчинский. Практическое пособие администратора UNIX. Второе издание, дополненное. Символ-Плюс (2005).
* [http://rpm.org/ RPM Package Manageri lehekülg]
* [http://rpm5.org/ RPM Package Manager - The Standard UNIX software packing tool]
* [http://en.wikipedia.org/wiki/RPM_Package_Manager RPM Package Manager Wikipedia]
* [http://susefaq.sourceforge.net/articles/rpm.html RPM RedHat Package Manager]
* [http://www.cyberciti.biz/tips/rebuilding-corrupted-rpm-database.html Rebuilding corrupted RPM database]
* [http://www.rpm.org/max-rpm/rpm.8.html man rpm lehekülg]
 
=Vaata veel=
* [http://fedoraproject.org/wiki/How_to_create_an_RPM_package How to create an RPM package]
* [http://kuutorvaja.eenet.ee/wiki/Redhati_kasutamine Red Hati kasutamine]
* [http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/pkgformat.html Package File Format]


=Autor=
=Autor=
Line 181: Line 338:
* vvinogra AT itcollege.ee
* vvinogra AT itcollege.ee


{|border="2"
!Versioon
!Uuendatud
!Kommentaar
|-
|0.1
|21.03.2011
|Artikli loomine.
|-
|0.2
|17.04.2011
|Artikli kirjutamise algus - struktuuri mõeldamine.
|-
|0.3
|01.05.2011
|Artikkel tehtud.
|-
|0.4
|13.05.2011
|Vigade parandus.
|-
|1.0
|02.05.2011
|Artikli täiendamine. Valmis ülevaatamiseks.
|}
[[User:Vvinogra|Vvinogra]] 09:28, 13 May 2011 (EEST)
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 11:53, 14 May 2011

RPM Package Manager

Originaal autor:

Red Hat

Stabiilne versioon:

4.9.0

Kuupäev:

02.03.2011

Operatsioonisüsteem:

GNU/Linux

Tüüp:

Paketihaldussüsteem

Litsents:

GNU GPL

Veebileht:

rpm.org/

rpm5.org/

Sissejuhatus

RPM (rekursiivne akroonüüm RPM Package Manager; varem nimega Red Hat Package Manager) määrab kahte üksust: tarkvarapakettide vorming ja programm, mis on loodud selle paketi kontrollimise jaoks. RPM määrab kahte asja: paketi tarkvara vormingut ja tarkvara, mis on tehtud selle paketi juhtimiseks. Programmi abil võib installeerida, kustutada ja uuendada tarkvara.
RPM - see on paketide põhine vorming Linux Standards Base-s. RPM kasutab litsentsina GPLv2.
Failide hoidmiseks RPM vormingus kasutatakse arhiivset konteinerit cpio, kasutades utiliiti gzip. Hilisemates versioonides võib kasutada arhiveerimiseks ka stari ja kokkupakkimiseks bzip2, LZMA või XZ. Alustades versioonist RPM 5.0 on võimalik arhiveerimismeetodi XAR kasutamine.

Eesmärk

  • Artikli eesmärgiks on tutvustada RPM Package Manageri
  • Ülevaade, mida võib teha selle programmi abil
  • Vaadata üle tihti kasutatavad käsud

Sisukord

Artiklis on olemas teoreetiline ja praktiline osa.
Teoreetilises osas uuritakse, mis on RPM ja mille jaoks teda on vaja.
Praktilises osas vaatame, kuidas seda programmi saab kasutada.

Kasutus

Selles artiklis on kirjutatud käsud, mida kõige tihidamini kasutatakse.
Lisaks on olemas spikker.

Nõuded

  • GNU/Linuxi teadmine
  • GNU/Linuxi käsurea teadmine
  • Inglise keele arusaamine ja mõistmine

Struktuur

RPM sisaldab .spec faili, mis annab informatsiooni paketist, tema sõltuvutest (millised paketid oli installeeritud, et see pakett võiks töötada). Fail .spec sisaldab failipaketide manifesti, infot sellest, kuhu need failid peavad olema süsteemis paigaldatud ja millised on nende põhilised õigused. RPM sisaldab veel eelpaigaldatud scripti, mis on kirjutatud paketi töötleja poolt. Lisaks sisaldab RPM kompileeritud binaarset faili ja paigaldatud skripti.

.spec eelpaigaldatud skript binaarne fail binaarne fail ... binaarne fail paigaldatud skript

Andmebaas

RPM andmebaas asub /var/lib/rpm kataloogis. See koosneb ühest andmebaasist (Packages), milles hoiatakse kogu informatsiooni paketidest. Sisaldab ka palju väikeseid andmebaase (__db.001, __db.002 jne), mis indekseerivad ja sisaldavad teateid sellest, millised failid muutusid ja loodud paketide installerimise ja kustutamise protsessis.
Kui andmebaas läheb katki (see võib juhtuda, kui installerimise või kustutamise protsess oli «tapetud» või ketas on täis), siis saab seda taastada käsu abil:

rpm --rebuilddb

Andmebaasi initsialiseerimine:

rpm --initdb

RPMi installerimise protsessi käigus süsteem kontrollib sõltuvusi. Kui sõltuvused puuduvad, siis installerimise protsess lõpetab. Välja arvatud need juhtumid, kui kasutatakse spetsiaalseid suvandeid, mis sunnivad teostada installerimist.

Kui installerimine on tehtud ilma probleemita, käivitatakse eelpaigaldatud skripti. Tavaliselt see loob kasutajaid ja katalooge. Kuid ta võib genereerida dünaamilise konfiguratsiooni erinevaid tüüpe.

Kui eelpaigaldatud skript on täidetud edukalt, binaarsed failid kopeeritakse süsteemi vastavalt paketi manifestiga. Kui kõik failid on juba kopeeritud ja õigused on nendele tehtud, siis käivitatakse paigaldatud skript.

Kui protsess lõpeb, informatsioon paketist lisatakse RPM andmebaasi ja installeerimine lõpeb.

RPM pakettide installeerimise protsessis toimub failide kopeerimine süsteemi ja skriptide käivitamine. Root käivitab RPMi, kõik need tegevused on kättesaadavad ainult root kasutaja jaoks. Sellepärast enne paketi installerimist süstemi, on vaja teada selle paketi päritolu.

Mis on sees

Paar sõna sellest, mis toimub paigaldamise või kustutamise protsessi jooksul. RPM automatiseerib rutiinseid operatsioone. Paketide paigaldamise või kustutamise tegevusi saab skriptida. Standaartne operatsioonide järjekord, mida tehakse rpm paketi paigaldamise jooksul on:

  • Kontrollitatakse sõltuvusi
  • Kontrollitatakse võimalike konflikte (kõige tihedam konfliktide põhjus - süsteemis paigaldatud ühenimeline pakett on paigaldatud enne uuemat versiooni)
  • Töödeldakse konfiguratsiooni faili
  • Kooperitakse binaarfailid vajalikku kataloogi
  • Pärast installerimist käivitatakse skriptid
  • Uuendatakse pakettide andmebaas

Paketide nimetused

Igal RPM paketil on nimetus, mis koosneb mitmest osast:

  • Programmi nimetus
  • Programmi versioon
  • Redaktsiooni number (arv kui palju kordi programm oli uuendatud). Tihti kasutatakse distributsiooni määramise jaoks, mille ajaoks on tehtud pakett
  • Arhitektuur, millele on tehtud pakett (i386, ppc jne)

Paketil on tavaliselt niisugune nimetuse vorming:

<nimetus>-<versioon>-<redaktsioon>.<arhitektuur>.rpm

Näiteks:

nano-2.2.6-1.i386.rpm

RPMi eripärad, eelised ja puudused

RPMi eelised

  • Kustutamise kergus ja programmide uuendamine
  • Populaarsus: väga palju programme on kokku kogutud RPMi, see tähendab, et ei ole vajadust teha programmi lähtekoodis muudatusi
  • "Pole interaktiivne" installerimine: kergesti automatiseeritud installerimise/uuendamise/kustutamise protsess
  • Paketide tervikluse kontroll kontrollsummade abil ja GPG-allkirjadega
  • DeltaRPM - see on apache'i analoog, millega võib uuendada installitud tarkvara minimaalse pingitusega
  • Spec-failide relatiivne kompaktsus makrode kasutamise abil

RPM eripärad

Uuendamine

RPMi abil saate uuendada oma süsteemi individuaalseid komponente ja installimata üle kogu süsteem. RPM tagab intellektuaalse, täis automaatse uuendamise viisi süsteemi ja paketide installeerimiseks. RPM jälgib eraldi konfiguratsioonifaile ja dokumentatsiooni pakette ja annab installerimise/uuendamise võimaluse iga paketi osale eraldi.

Tugev päringute vahend

RPM on loodud tugeva päringute töötluse jaoks. Te võite otsida pakette andmebaasist või mõnest failist. Te võite lihtsasti leida, millisele paketile, milline fail kuulub, ja kust see paket oli võetud. Te võite teha andmebaasi järelepärimise või .rpm faili järelpärimise, sest tema pealkiri sisaldab kõike vajaliku informatsiooni tema sisust.

Süsteemide kontroll

RPM annab võimalusi süsteemi terviklikkuse ja erifailide kontrollimise jaoks. Kui teil tekkis kahtlus, mis on seotud iga paketiga (näiteks te kahtlete, kas te ei kustutanud vajaliku faili) - te võite kontrollida paketi terviklust. RPMis saab teha sõltuvuste kontrolli, failide kontrollsummasid, juurdepääsu õigusi, suurust jne kõikide installitud süsteemis paketide jaoks.

RPMi paketi allikad (.src.rpm) sisaldavad programmi algkoodi, kõik paigad pluss täisinstruktsioon paketi koostamise kohta. Uue tarkvara versiooni ilmumisel, piisab algkoodi vahetamisest. RPM paketi uuendamiseks on võimalik parandada koostamise instruktsioone ja viidates RPMile uuendada antud pakett.

Põhilised puudused

  • Distributsioonide vahelised makropaketid võivad olla üsna erinevad.
  • Erinevate versioonide killustatus ja ühitamatus. Näiteks, on olemas erinevad RPM 4 (rpm.org), RPM5 (rpm5.org) väljatöötamis/arendamisprojektid, ning samas eksisteerib palju RPM pakke distributsioonides. Selline mitmekesisus võib põhjustada:
    • Distributsioonide vaheliste spec-failide ühitamatust (tihti ALT Linux spec-faile ei ole võimalik kokku panna Red Hat ja SUSEle ilma tunduvate muudatusteta)
    • Pakettsõltuvuste nimetuste ühildamatust, juhul kui püütakse instaleerida paketti teiselt distributsioonilt (näiteks, Connectiva kokkupanekuga RPM sõltuvusi luuakse teiste, erinevate Mandrivast, reeglite järgi).

Toetavad Linuxi distributsioonid

Nimekiri mõnede tuntumatest distributsioonidest, mis on asutatud RPM baasil:

(See on mittetäielik nimekiri)

Lisaprogrammid RPMi jaoks

Töö programmiga rpm konsoolis ei ole raske, kuid mõnikord on lihtsam kasutada graafilist liidest. Linux tavaliselt sisaldab lisaprogramme, mis on graafilised. Igal distributsioonil on oma lisaprogrammid ja nad võivad erineda. Seda infot võib leida distrubutsiooni dokumentatsioonis.

Praktiline kasutamine

Kasutusjuhend

Kõikides Linuxi programmides võib vaadata kasutusjuhendit. Selle jaoks kirjutage:

man rpm

Paketi installerimine

Kui te tahate installida paketi RPMi abil, siis kirjutage:

rpm -i <paketi nimi>

Paketi uuendamine

Paketi uuendamise jaoks kasutatakse:

rpm -U <paketi nimi>

Pärast paketti allalaadimist, piisab käivitada rpm käsk ja anda kolm omadust:

-U (upgrade) Miks -U parem, kui -i? Asi on selles, et -i võib ainult installida, aga -U annab uuendusi ja installeerimisi. Sõltumatult sellest, kas te tahate uuendada programmi või paigaldada, see käsk teeb vajalikud tegevused.

-h (installeerimise protsessi kujutamise jaoks)

-v (verbose, väljastus laiemalt informatsiooni täidetavast tegevustest)

rpm -Uhv <paketi nimi>

Paketi kustutamine

Kustutada paketi on väga lihtne:

rpm -e <paketi nimi>

Paigaldatud paketi kontrollimine

Kontrollida, kas paket on paigaldatud:

rpm -qa | grep <paketi nimi>

Info paketist

Kui te tahate uurida informatsiooni paketi kohta, siis kirjutage:

rpm -qi | grep <paketi nimi>

Veel üks võimalus informatsiooni vaatamiseks:

rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\n' <paketi nimi>

Paketi failide nimekiri

Vaadata failide nimekiri, mida sisaldab pakett:

rpm -ql | grep <paketi nimi>

Paketi kirjeldus

Suur kollektsioon võimalusi annab infot režiimi päringude omaduste kohta. Paketist ja tema failidest võib saada praktiliselt kogu informatsiooni. Need võimalusi realiseeritakse enda võti-filtri abil või --queryformat abil. --queryformat näitab ainult tellitud ametlikke välju. Näiteks selline käsk näitab paketi kirjeldust:

rpm -q --queryformat %{DESCRIPTION} <paketi nimi>

Distributsiooni nimetus

Distributsiooni nimetuse saab teada selle käsu abil:

rpm -q --queryformat %{DISTRIBUTION} <paketi nimi>


NB! Märkus
Nagu teised programmid Linuxi jaoks, programm rpm alati areneb. Ja selle tõttu versioonide vahel võib tekkida probleeme ja raskusi pakettide installeerimisega, mis loodi eelmistes versioonides. On vaja kasutada pakette, mis sobivad teie installeeritud versiooniga.

Spikker

See on väike spikker RPMi käsu kohta.
Need käsud on kontrollitud Fedora 14 (Laughlin) distributsioonis.
Nende käskude käivitamiseks on vaja olla root.

Juhtimine
Tuleb kasutada koos käsuga:

rpm -<täht> <paketi nimi>

Käsk Kirjeldus
-e või --erase Paketi kustutamine
-c või --configfiles Konfiguratsioonifailide nimekiri
-h või --hash Räsimine
-i või --install Paketi intalleerimine
-K või --checksig Võimalus kontrollida kõiki ülevaate väljaandeid ja allkirju sisalduvaid PACKAGE_FILE, et tagada terviklust ja päritolu paketist.
-U või --upgrade Paketi uuendamine või installeerimine, kui ta ei olnud varem installitud


Paketi valimise suvandid
Järgmiseid käske kasutatakse koos käsuga:

rpm -q<täht> <paketi nimi>

Käsk Kirjeldus
-a või --all Päring kõikide installeeritud pakettide kohta
-c või --configfiles Konfiguratsiooni failide nimekiri
-d või --docfiles Dokumentatsiooni failide nimekiri
-f või --file FILE Paketi omanikud FILE
-g või --group GROUP Paketi gruppid GROUP
-i või --info Näitab paketi infot, sealhulgas nime, versiooni ja kirjeldust
-l või --list Paketi failide nimekiri
-V või --verify Paketi kontrollimine
-R või --requires Pakettide nimekiri, mis sõltuvad sellest paketist
-s või --state Näitab failide olekut paketis (on olemas kolm olekud: normal, not installed või replaced)


Paketi verifitseerimine
Verifitseerimine on väga kasulik, sest ta võib võrrelda käesoleva oleku installitud failide nende algse olekuga.
Tavaliselt kataloogi /bin käskude nimekirjas tuleb fail, mida võib kontrollida. See võti näitab informatsiooni süsteemi protsessori arhitektuuri. Et saada teada millisest paketist on see fail, on vaja kirjutada järgmise käsu (-f näitab, millisele paketile suhtub selline fail):

rpm -qf /bin/<utiliidi nimi>

Peale seda teeme varukoopia ja lisame failisse sõna "Tere":

cp /bin/<utiliidi nimi> /bin/<utiliidi nimi_back>

echo "Tere" >> /bin/<utiliidi nimi>

Ja peale seda verifitseerimise mehhanism näitab probleeme:

rpm -V <käsu rpm -qf /bin/<utiliidi nimi> tulemus>

S.?....T. /bin/<utiliidi nimi>

Taastame faili ja kontrollime veel kord:

rm /bin/<utiliidi nimi>

mv /bin/<utiliidi nimi_back> /bin/<utiliidi nimi>

Tulemus:

.......T /bin/<utiliidi nimi>

Eraldamise kujutamiseks kasutatakse spetsiaalseid tähistusi. Failide kontrollimise tulemus:

Märgistus Kirjeldus
S Faili suuruse eraldamine (size)
M Oleku eraldamine (Mode) (juurdepääsu õigused ja faili tüüp)
5 MD5 summa eraldamine
D Ei ühita major/minor-numbrid
L Ei ühita readLink(2) tee
U Ei ühita kasutajanimi
G Ei ühita grupp
T Eraldab mTime

See abistab administraatorile selgitada mõned probleemid ja paketid reinstallimise jaoks.

Varundamine

Nagu varem oli mainitud, RPM andmebaas asub /var/lib/rpm. Saate varundada RPM andmebaasi kasutades järgmised käske:

cd /var/lib tar cvf rpmdb.tar ./rpm

tar cvf rpmdb.tar ./rpm

gzip rpmdb.tar

Kokkuvõte

Kõik eeltoodu demonstreerib RPM paketi haldussüsteemi tähtsust ja aktuaalsust. Artiklist võib leida nii teoreetilisi kui ka praktilisi aspekte, mis on seotud RPMiga. On toodud RPMi peamised eeldused ja puudused. Samuti kasutaja peamiseks kasuks on konkreetsed käsud, mida saab rakendada RPMi juhul.

Kasutatud kirjandus

Vaata veel

Autor

  • Vadim Vinogradin A21
  • vvinogra AT itcollege.ee
Versioon Uuendatud Kommentaar
0.1 21.03.2011 Artikli loomine.
0.2 17.04.2011 Artikli kirjutamise algus - struktuuri mõeldamine.
0.3 01.05.2011 Artikkel tehtud.
0.4 13.05.2011 Vigade parandus.
1.0 02.05.2011 Artikli täiendamine. Valmis ülevaatamiseks.

Vvinogra 09:28, 13 May 2011 (EEST)