RPM Package Manager: Difference between revisions
Line 82: | Line 82: | ||
==RPMi eelised== | ==RPMi eelised== | ||
* Kustutamise kergus ja programmide uuendamine<br/> | * Kustutamise kergus ja programmide uuendamine<br/> | ||
* Populaarsus: väga palju programme | * 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 | * "Pole interaktiivne" installerimine: kergesti automatiseeritud installerimise/uuendamise/kustutamise protsess<br/> | ||
* Paketide tervikluse kontroll | * Paketide tervikluse kontroll kontrollsummade abil ja '''GPG'''-allkirjadega<br/> | ||
* [[DeltaRPM]] - see on apache'i analoog, millega võib uuendada installitud tarkvarat minimaalsega pingitusega<br/> | * [[DeltaRPM]] - see on apache'i analoog, millega võib uuendada installitud tarkvarat minimaalsega pingitusega<br/> | ||
* Akkumulatsiooni võimaluse kogemus kogujade spec-failis<br/> | * Akkumulatsiooni võimaluse kogemus kogujade spec-failis<br/> | ||
* Spec-failide relatiivne kompaktsus | * Spec-failide relatiivne kompaktsus makrode kasutamise abil | ||
==RPM väärilisused== | ==RPM väärilisused== |
Revision as of 09:07, 29 April 2011
Referaat on protsessis
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 installida, kustutada ja uuendada tarkvarat.
RPM - see on põhine paketide 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 võib saada ja uurida, 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.
Struktuur
RPM sisaldab .spec fail, mis annab informatsiooni paketist, tema sõltuvusest (millised paketid oli installitud, et see pakett võib töötada). Fail .spec sisaldab paketi failide manifesti, infot sellest, kuhu süsteemis need failid peavad olema koormatud ja millised on nende põlised õ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 | eelpaigaldatud skript |
Andmebaas
RPM andmebaas kirjuta /var/lib/rpm kataloogis. Ta seisneb ühest andmebaasist (Packages), millisel hoiatakse kogu informatsiooni paketidest, ja palju väikeseid andmebaase (__db.001, __db.002 jne), mis teenindavad indekseerimise jaoks ja sisaldavad teateid sellest, millised failid muutusid ja luuakse 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 teda taastada käsu abil:
rpm --rebuilddb
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. Asukoha selle skriptide sõltuvuses kanoonilise tegevuste järjestikkus, näiteks paketi paigaldamise protsessis, need skriptid nimetatakse eelpaigaldatud või paigaldatud skriptideks. Standaartne operatsioonide järjekord, mis paigaldatakse rpmi 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 binaar faile vajalikku kataloogi
- Teostatakse peale installerimist skriptid
- Uuendatakse paketide 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 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 tarkvarat minimaalsega pingitusega
- Akkumulatsiooni võimaluse kogemus kogujade spec-failis
- Spec-failide relatiivne kompaktsus makrode kasutamise abil
RPM väärilisused
Uuendamine
RPMi abil te saate uuendada Teie süsteemi individuaalsed komponendid ja kõik süsteem ilma installita. RPM tagab intellektuaalne, täis automaatne uuendamise viis Teie süsteemi ja paketide installimine. RPM jälgib eraldi konfiguratsioonifaile ja dokumentatsiooni paketides ja annab installimise/uuendamise võimalusi kõikide paketide osa eraldi.
Tugev päringude vahend
RPM oli loodud tugevaga liidesega päringude töötluse jaoks. Te võite otsida paketide andmebaasis või mõnedes failides. Te võite lihtne leida millele paketile milline fail kuulub ja kust oli võetud see paket. Te võite teha andmebaasi järelepärimist või .rpm fail, sest tema pealkiri sisaldab kõik vajaliku informatsiooni tema sisust.
Süsteemide kontroll
RPM annab võimalusi süsteemi terviklikkuse ja eri failide kontrollimise jaoks. Kui Teil tekkisid kahtlusi, millised on seotud iga paketi kohta (näiteks Te kahtlete, kas te ei kustutanud vajalik fail) - Te võite kontrollid paketi terviklust. RPM annab teha sõltuvusi kontroll, failide kontrollide summad, juurdepääsu õigusi, suurus jne kõikide installitud süsteemis paketide jaoks.
RPM salvestab originaalseid allikaid распространяемый programmi looja. RPMi paketi allikaid (.src.rpm) sisaldavad programmi algkoodi, kõik paigid pluss täis instruktsioon paketi koostamise kohta. RPM paketi uuendamiseks peale выхода uue tarkvara versiooni Teie on piisavalt vahetada algkoodi ja võimalik parandada kostamise instruktsioone ja viita RPMile koostada antud paket.
Põhilised puudused
- Makropaketid distributsioonide vahel võivad eraldada
- ...
Toetavad Linuxi distributsioonid
See on nimekiri mõnede tuntumate distributsioonide, millised olid asutatud RPM baasil:
(See on mittetäielik nimekiri)
Praktiline kasutamine
Kõikides Linuxi programmides võib vaadata kasutusjuhendit. Selle jaoks kirjutage:
man rpm
Kui te tahate installida pakket RPMi abil, siis kirjutage:
rpm -i <paketi nimi>
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.
-h (installimise protsessi kujutamise jaoks)
-v (verbose, väljastus laiemalt informatsiooni täidetavast tegevustest)
rpm -Uhv <paketi nimi>
Kustutada pakett ka väga lihtne:
rpm -e <paketi nimi>
Paketi uuendamise jaoks kasutatakse:
rpm -U <paketi nimi>
Vaadata, kas installitud pakett võib selle käsu abil:
rpm -qa | grep <paketi nimi>
Kui te tahate uurida informatsiooni paketist, siis kirjutage:
rpm -qi | grep <paketi nimi>
Veel üks võimalus informatsiooni vaatamiseks võib teenida käsk:
rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}\n' <paketi nimi>
Vaadata failide nimekiri, millised sisenevad paketide sisukorra võib:
rpm -ql | grep <paketi nimi>
Suur kollektsioon võimalusi annavad resiimi päringide omadusi. Paketist ja tema failidest võib anna praktiliselt kõik informatsiooni. Need võimalusi realiseeritakse enda võti-filtri abil või --queryformat abil. --queryformat näitab ainult tellitud ametlikude väljad. Näiteks selline käsk näitab paketi kirjeldus:
rpm -q --queryformat %{DESCRIPTION} <paketi nimi>
Distributsiooni nimetus, millisel asub pakett saab teada selle käsu abil:
rpm -q --queryformat %{DISTRIBUTION} <paketi nimi>
NB! Märkus
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.
Spikker
See on väike spikker RPMi käsu kohta.
Need käsud autor kontrollis Fedora 14 distributsioonis.
Juhtimine:
Nende käsude käivitamiseks on vaja olla super userina ja 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 ülevaateväljaanded ja allkirjade sisalduvate PACKAGE_FILE ja tagada terviklust ja päritolu paketis. |
-U või --upgrade | Paketi ülendus või installeerimini, kui ta ei olnud varem installitud |
Paketi valimise suvandid:
Järgmised käsud kasutatakse koos käsuga rpm -q<täht> <paketi nimi>
Käsk | Kirjeldus |
---|---|
-a või --all | Päring kõiki installitud pakette |
-c või --configfiles | Konfiguratsioonifailide nimekiri |
-d või --docfiles | Dokumentatsioonifailide nimekiri |
-f või --file FILE | Paketti omanikud FILE |
-g või --group GROUP | Paketti gruppid GROUP |
-i või --info | Näitab paketi infot, sealhulgas nime, versiooni ja kirjeldus |
-l või --list | Paketti failide nimekiri |
-V või --verify | Paketi kontrollimine |
-R või --requires | Paketide nimekiri, millised sõltuvad selle paketi |
-s või --state | Näitab failide olek paketis (on olemas kolm olekud: normal, not installed või replaced) |
Paketi verifitseerimine:
-V või verify
Verify 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, milline võib kontrollida. See utiliit näitab informatsiooni süsteemi protsessori arhitektuuris. Et teada millist kogust see fail, on vaja kirjutada tehke seda käsu (-f näitab, millisele paketile suhtub selline fail):
rpm -qf /bin/<utiliidi nimi>
Peale seda teeme varukoopiat 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 kujutamise jaoks kasutatakse spetsiaalsed tähistused:
Failide kontrollimise tulemus:
Käsk | 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 selgitama mõned probleemid ja paketid reinstallimise jaoks.
Eeskomponendid RPMi jaoks
Töö programmiga rpm konsoolis ei ole raske, kui mõnikord on lihtsam kasutada graafilist liidest. Linux tavaliselt sisaldab eeskomponentide programmid, millised on graafilised. Igal distbutsioonil on oma eeskomponendid ja nad võivad erineda. Seda infot võib leida distrubutsiooni dokumentatsioonis.
Kokkuvõte
Kasutatud kirjandus
Autor
- Vadim Vinogradin A21
- vvinogra AT itcollege.ee