Unelte utilizator

Unelte site


tutorial_rpm

Diferențe

Aceasta arată diferențele dintre revziile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

tutorial_rpm [2008/05/31 20:10] (curent)
Linia 1: Linia 1:
 +-- 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
 +<​code>​
 +rm -f /​var/​lib/​rpm/​__*; ​
 +rpm --rebuilddb
 +</​code>​
 +data de root ar trebui sa rezolve problema.
 +
 +===== Cum instalez un rpm? =====
 +
 +
 +Cu comanda:
 +<​code>​ rpm -Uvh nume-pachet.rpm</​code>​
 +
 +===== Cum dezinstalez un rpm? =====
 +
 +Cu comanda:
 +<​code>​rpm -e nume-pachet</​code>​
 +
 +(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? =====
 +
 +
 +<​code>​rpm -qlp nume-pachet.rpm</​code>​
 +
 +===== 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?
 +
 +<​code>​rpm -Uvh foo.rpm bar.rpm</​code>​
 +
 +===== Unde gasesc un pachet rpm? =====
 +
 +
 +Incearca http://​www.rpmfind.net sau http://​rpm.pbone.net
 +
 +===== 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:
 +<​code>​
 +rpm --import http://​www.mandrakesoft.com/​security/​RPM-GPG-KEYS
 +</​code>​
 +Pentru PLF:
 +<​code>​
 +rpm --import http://​plf.zarb.org/​plf.asc
 +</​code>​
 +
 +===== Cum listez toate rpm-urile instalate? =====
 +
 +<​code>​
 +rpm -qa | less</​code>​
 +
 +===== Care fisiere au fost instalate de pachetul foo? =====
 +
 +
 +<​code>​rpm -ql foo</​code>​
 +
 +===== Ce rpm a instalat fisierul /​cutare/​fisier?​ =====
 +
 +
 +<​code>​rpm -qf /​cutare/​fisier</​code>​
 +
 +===== Ce este cu pachetul asta cutare.rpm =====
 +
 +
 +<​code>​rpm -qip cutare.rpm</​code>​
 +
 +===== 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:
 +
 +<​code>​rpm -q --queryformat %{TAGNAME} foo</​code>​
 +
 +De exemplu, ​
 +
 +<​code>​rpm -q --queryformat %{VENDOR} textutils</​code>​
 +
 + va raspunde "​MandrakeSoft"​.
 +
 +===== Ce fisiere/​pachete sunt necesare instalarii lui cutare.rpm? =====
 +
 +
 +<​code>​rpm -qp --requires cutare.rpm</​code>​
 +
 +===== Ce pachete se vor defecta daca dezinstalez cutare.rpm? =====
 +
 +
 +<​code>​rpm -q --whatrequires cutare</​code>​
 +
 +===== Am sters /​cutare/​fisier,​ dar acum il vreau inapoi; ce rpm trebuie sa reinstalez? =====
 +
 +
 +(merge numai pe Mandriva): ​
 +
 +<​code>​urpmf /​cutare/​fisier</​code>​
 +
 +===== 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:
 +
 +<​code>​rpm -qlp gqradio-1.9.1-1.i586.rpm</​code>​
 +
 +Rezultatul va fi unul destul de lung:
 +<​code>​
 +/​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
 +</​code>​
 +apoi:
 +<​code>​
 +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
 +</​code>​
 +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:
 +<​code>​
 +rpm --rebuild cutare.src.rpm</​code>​
 +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:
 +<​code>​
 +urpmi rpm-build
 +</​code>​
 +
 +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
 +<​code>​
 +chmod +x setup_rpm_files.sh
 +</​code>​
 +
 +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.
tutorial_rpm.txt · Ultima modificare: 2008/05/31 20:10 (editare externă)