Unelte utilizator

Unelte site


diverse:tutorial_rpm

– maaxx 20/04/2005

Tutorial RPM tradus si adaptat de la www.speculation.org/garrick/

Ce este RPM?

RPM-ul (RedHat Package Manager) este o metota foarte utila de a distribui software pe sistemele linux. Utilizatorii M$ Windows se pot gandi la un RPM cala un kit .exe, insa aproximarea este foarte vaga, diferentele sunt multiple si profunde.

Ce este un pachet?

Un pachet este pur si simplu o colectie de fisiere alcatuind un program, o librarie etc si care sunt „sudate“ impreuna intr-un fisier RPM. „Source rpms“ sau rpm-urile sursa sunt folosite pentru a livra codul sursa al programului respectiv si sunt identificate dupa sufixul „src.rpm“. Rpm-urile binare sunt precompilate pentru un anumit tip de procesor si au in componenta numelui si sufixul arhitecturii; in cazul Mandriva acesta este „i586.rpm“.

Unde gasesc informatii detaliate despre RPM?

Exista 4 resurse foarte bune care merita luate in consideratie (in aceasta ordine): pagina de manual (man rpm), HOWTO-ul de la http://linuxdoc.org/HOWTO/RPM-HOWTO/index.html , HOWTO-ul Mandrake de la http://www.mandrakelinux.com/howtos/mdk-rpm/ si cartea despre RPM de la O\'Reilly.

Ar trebui sa iau un rpm i686 pentru ca este mai bun decat unul i586?

Procesorul Pentium original reprezinta arhitectura „i586“. Procesoarele Pentium II/III/IV reprezinta toate arhitecturi i686.Toate acestea insa sunt compatibile cu arhitecturile de dinaintea lor (adica si cu i586). Este posibil sa gasiti multe rpm-uri i386 (Fedora Core spre exemplu) care vor functiona pe orice tip de procesor.

Pot sa instalez un rpm pe care l-am gasit pe nu stiu ce site?

In general este recomandat sa folositi numai rpm-uri distribuite de Mandrake, si chiar mai mult de atat, incercati sa nu folositi rpm-uri pentru alte versiuni de Mandrake decat cea de care dispuneti.

Dar de la rpmfind.net pot instala rpm-uri?

Rpmfind.net (si intreaga suita de mirroruri) este in majoritatea cazurilor fara de folos. Citeste FAQ-ul despre urpmi!

Toate comenzile rpm, urpmi, rpmdrake se blocheaza, cee de facut?

Probabil ca o comanda rpm anterioara a fost intrerupta necorespunzator si baza de date rpm a ramas blocata.Comanda

rm -f /var/lib/rpm/__*; 
rpm --rebuilddb

data de root ar trebui sa rezolve problema.

Cum instalez un rpm?

Cu comanda:

 rpm -Uvh nume-pachet.rpm

Cum dezinstalez un rpm?

Cu comanda:

rpm -e nume-pachet

(atentie, nu am mai pus la sfarsitul pachetului si terminatia/sufixul .rpm! Optiunea -e data comenzii rpm ii spune acesteia sa dezinstaleze).

Cum vad ce fisiere sunt instalate cu un rpm?

rpm -qlp nume-pachet.rpm

Nu pot instala pachetul

Nu pot instala pachetul foo.rpm pentru ca are nevoie de bar.rpm, iar bar.rpm nu poate fi instal at pentru ca are nevoie de foo.rpm; ce e de facut?

rpm -Uvh foo.rpm bar.rpm

Unde gasesc un pachet rpm?

Dependinte

cutare-pachet.rpm are nevoie de cutare-alt-pachet.rpm pentru a se instala, nu pot s-o las balt a si sa folosesc optiunea –force?

Nu. Cel care a construit cutare-pachet.rpm spune ca AI NEVOIE de cutare-alt-pachet.rpm!

Care-i toata treaba legata de acest -Uvh?

„U“ vine de la „Upgrade“ care este totuna cu „Install“ numai ca va dezinstala versiuni precedente ale programului daca ele exista si este nevoie. „vh“ arata pe ecran un dialog dragut de progres.

Primesc niste erori ciudate legat de chei GPG, ce e de facut?

Tot trucul aici este sa gasesti cheia GPG. Cheile oficiale Mandrake sunt usor de gasit, celelalte pot fi pe un server de chei sau pe un site web. Pentru pachete Mandrake folositi comanda:

rpm --import http://www.mandrakesoft.com/security/RPM-GPG-KEYS

Pentru PLF:

rpm --import http://plf.zarb.org/plf.asc

Cum listez toate rpm-urile instalate?

rpm -qa | less

Care fisiere au fost instalate de pachetul foo?

rpm -ql foo

Ce rpm a instalat fisierul /cutare/fisier?

rpm -qf /cutare/fisier

Ce este cu pachetul asta cutare.rpm

rpm -qip cutare.rpm

Cand folosesc optiunea -p la comanda rpm?

nFolositi optiunea -p atunci cand doriti sa interogati direct un fisier rpm, altfel va fi interogata intreaba baza de date cu rpm-uri care sunt instalate in sistem.

Cum pot personaliza raspunsul la comenzile rpm?

In primul rand folositi „rpm –querytags“ ca sa sa vedeti lista tuturor etichetelor valide, dupa care puteti folosi comenzi gen:

rpm -q --queryformat %{TAGNAME} foo

De exemplu,

rpm -q --queryformat %{VENDOR} textutils

va raspunde „MandrakeSoft“.

Ce fisiere/pachete sunt necesare instalarii lui cutare.rpm?

rpm -qp --requires cutare.rpm

Ce pachete se vor defecta daca dezinstalez cutare.rpm?

rpm -q --whatrequires cutare

Am sters /cutare/fisier, dar acum il vreau inapoi; ce rpm trebuie sa reinstalez?

(merge numai pe Mandriva):

urpmf /cutare/fisier

Cum extrag un singur fisier dintr-un rpm?

Spre exemplu sa spunem ca vrem sa extragem imaginea gqradio.png din pachetul gqradio-1.9.1-1.i586.rpm. Facem asa:

rpm -qlp gqradio-1.9.1-1.i586.rpm

Rezultatul va fi unul destul de lung:

/usr/bin/gqradio\r\n/usr/share/applications/gqradio.desktop
/usr/share/doc/gqradio-1.9.1
/usr/share/doc/gqradio-1.9.1/
COPYING
.....................................................
/usr/share/locale/fr/LC_MESSAGES/gqradio.mo
/usr/share/pixmaps/gqradio.png

apoi:

rpm2cpio < gqradio-1.9.1-1.i586.rpm |/bin/cpio -id ./usr /share/pixmaps/gqradio.png
1565 blocks

[lucian@evenstar tmp]$ ls -al /home/lucian/tmp/usr/share/pixmaps/gqradio.png
-rw-r--r-- 1 lucian lucian 1551 Feb 16 09:35 /home/lucian/tmp/usr/share/pixmaps/gqradio.png

gata, fisierul este al nostru! cam laborios, nu? dar am reusit!

Cum instalez un rpm sursa numit cutare.src.rpm?

Atentie: NU FACETI ASTA CA ROOT! Folositi, ca user normal, comanda:

rpm --rebuild cutare.src.rpm

Spre sfarsitul output-ului ar trebui sa vedeti ceva de genul:

„Wrote: /home/user/rpm/RPMS/i586/cutare.i586.rpm\“

Nu merge! rpm --rebuild

Nu merge! rpm –rebuild cutare.src.rpm tocmai mi-a dat un raspuns de genul

/usr/lib/rpm/rpmb: No such file or directory

Instaleaza pachetul rpm-build:

urpmi rpm-build

Comanda anterioara tocmai mi-a dat eroarea **cannot write to %sourcedir bla bla bla*. Ce inseamna asta?

Pentru a construi un rpm este nevoie de o structura speciala de directoare si de doua mici fisiere de configurare care sa fie amplasate in home.

Descarca http://speculation.org/garrick/setup_rpm_files.sh (recomandat cu wget), fa-l executabil

chmod +x setup_rpm_files.sh

si executa scriptul.

Este bine sa construim pacheteca root?

NU! Ca parte a procesului de construire a rpm-ului, software-ul este de asemenea instalat astfel incat rpm-ul sa fie creat corect. Este important ca acest lucru sa se intample intr-un mediu controlat si neprivilegiat.

Primesc o eroare de genul "user blabla does not exist"!

Ignorati mesajul, este doar un warning. Fisierele din src.rpm aveau owner pe userul blabla cand au fost creat e si cel mai probabil acesta nu exista pe sistemul dumneavoastra.

Incerc sa compilez cutare program si se plange ca lipseste nu stiu ce librarie! Am instalat libraria, dar in continuare am probleme!

Toate librariile sunt impartite in doua: versiunea \“run-time\“ de care au nevoie unele programe ca sa functioneze si versiunea „build-time“. Versiunea „run-time“ contine numai cate mici fisiere necesare rularii unor programe, pe cand versiunea „build-time“ este mult mai mare, continand librarii si headere necesare compilarii unui program ce are nevoie de libraria respectiva.

De obicei versiunea „build-time“ are in componenta numelui si cuvantul „devel“.
De exemplu vreau sa compilez PHP-ul (www.php.net) si acesta imi cere pentru suportul grafic si librariile JPEG, aici nu este de ajuns sa instalez numai libjpeg62, ci libjpeg62-devel.

diverse/tutorial_rpm.txt · Ultima modificare: 2011/11/06 18:16 (editare externă)