Pacman - comunitatea zey a utilizatorilor linux și unix

Managerul de pachete pacman este una dintre principalele caracteristici ale Arch Linux. Acesta combină un format simplu de pachet binar și un sistem de construcție ușor de utilizat (vedeți Arch Build System și makepkg). Pacman permite utilizatorilor să gestioneze și să personalizeze cu ușurință pachetele, indiferent dacă sunt din depozitul oficial Arch sau colectate independent.

Pacman. sincronizarea pachetelor cu serverul principal, ține sistemul actualizat. Acest model client-server vă permite să descărcați / instalați pachete cu toate dependențele necesare cu o singură comandă.

Pacman este scris în C și utilizează formatul pachetului .pkg.tar.xz. Pachetul oficial Pacman include multe alte instrumente utile, cum ar fi makepkg, pactree, vercomp și altele. Întreaga listă poate fi obținută cu ajutorul comenzii:

configurație

Setări de bază

Parametrii principali sunt în secțiunea [opțiuni]. Pentru mai multe informații despre parametri, citiți pagina man sau examinați fișierul implicit pacman.conf.

Sari peste actualizările de pachete

Pentru a sări peste actualizarea unui pachet, adăugați numele acestuia la linia:

În cazul în care trebuie să listați mai multe pachete pe linia IgnorePkg, separați numele pachetelor cu spații:

Sari peste actualizările grupului de pachete

Ca și în cazul pachetului, puteți interzice, de asemenea, actualizările grupului de pachete, de exemplu:

arhive

Această secțiune a fișierului pacman.conf specifică depozitele care vor fi utilizate. Puteți să le specificați aici sau să vă conectați dintr-un alt fișier.

Toate depozitele oficiale sunt listate într-un singur fișier - /etc/pacman.d/mirrorlist, pentru a le accesa folosind variabila $ repo, deci este suficient să păstrați o listă actualizată.

Iată un exemplu de folosire a oglinzilor din depozitele oficiale care sunt listate în /etc/pacman.d/mirrorlist.

utilizarea

Instalarea pachetelor

Instalarea pachetelor specifice

Pentru a instala un pachet sau un grup de pachete (inclusiv dependențe), utilizați următoarea comandă:

Dacă pachetul are mai multe versiuni în diferite depozite (de exemplu, în plus și de testare). Puteți specifica unde trebuie instalat pachetul:

Instalarea unui grup de pachete

Unele pachete aparțin unui grup de pachete care pot fi instalate în același timp. De exemplu, la executarea comenzii:

toate pachetele incluse în grupul gnome vor fi instalate. Pentru a vedea o listă de pachete care aparțin grupului gnome, executați:

Dacă opțiunea nu este necesară, toate pachetele instalate anterior pe sistem și pachetele aparținând acestui grup vor fi reinstalate când grupul este instalat (chiar dacă pachetele instalate pe sistem au cea mai recentă versiune disponibilă).

Instalarea pachetelor din fișiere

În unele cazuri (practic, atunci când sistemul a rupt sau există dependențe nerezolvate), trebuie să descărcați fișierele pachet din depozit și să faceți o instalare directă. În acest caz, utilizați comutatorul -U. exemplu:

Dacă pacman găsește dependențe pentru acest fișier, atunci 1) începe fie descărcarea din depozit (cu condiția ca informațiile despre pachete să fie actualizate), fie 2) cere să instalați mai întâi pachetele care lipsesc. Lipsesc pachetele pot fi, de asemenea, descărcate manual.

Ștergerea pachetelor

Pentru a șterge un pachet, fără a elimina dependențele instalate:

Pentru a șterge un pachet cu toate dependențele care nu sunt utilizate de alte pachete instalate:

Pentru a șterge un pachet, dependențele acestuia și toate pachetele care depind de pachetul țintă: Atenție! Această operație este recursivă și trebuie utilizată cu grijă, deoarece există riscul de a elimina multe pachete potențial necesare.

În mod implicit, pacman creează copii de rezervă ale fișierelor de configurare ale aplicațiilor șterse adăugând o extensie la acestea. pacsave. Dacă doriți să ștergeți aceste fișiere, utilizați opțiunea -n:

pacman nu șterge fișierele de configurare create de aplicațiile în sine (de exemplu, "dot-files" din dosarul dvs. de acasă).

Actualizare sistem

pacman poate actualiza toate pachetele de sistem cu o singură comandă. Numărul de pachete depinde de cât de proaspete sunt pachetele pe sistem. Cea mai bună opțiune este sincronizarea bazei de date a depozitarului și actualizarea sistemului cu o singură comandă:

Atenție vă rog! Datorită faptului că Arch este o distribuție constant actualizată, utilizatorii ar trebui să rețină că după sau în timpul upgrade-ului pot apărea dificultăți neașteptate. Prin urmare, trebuie actualizat cu prudență. Aceasta înseamnă că, de exemplu, dacă sunt așteptate mari schimbări sau inovații în pachetele actualizate, este mai bine să actualizați sistemul când utilizatorul are suficient timp liber și va fi gata să rezolve posibile probleme.

Nu uitați că ieșirea din pacman este stocată în /var/log/pacman.log.

Dacă nu puteți rezolva probleme conform instrucțiunilor, puteți căuta astfel de mesaje pe forum. Este posibil ca alți utilizatori care au întâmpinat probleme similare să fi oferit deja opțiuni pentru soluția sa.

Anchete către baza de date a pachetelor

pacman, cu flag -Q, poate căuta pachete în baza de date locală; cm.

și, utilizând pavilionul -S, în baza de date (depozite); cm.

pacman poate căuta pachete în baza de date, fie după nume, fie după descriere:

Căutați un pachet după nume în baza de date (ieșire fără informații suplimentare):

Pentru a căuta pachetele instalate:

Pentru a afișa informații extinse despre acest pachet:

pentru pachetele instalate:

Pentru a obține lista fișierelor pachetului instalat:

Pentru a obține lista fișierelor unui pachet dezinstalat, puteți folosi utilitarul pkgfile din pachetul pkgtools sau nosr inclus în pachetul nosr-git, care este localizat în AUR.

Pentru a afla care pachet aparține fișierul dorit:

Pentru a obține o listă de pachete care nu mai sunt necesare ca dependențe (pachete care pot fi șterse în siguranță sau orfane):

Pentru a afișa dependențele ca arbore:

Pentru a obține o listă a pachetelor instalate care depind de pachetul dvs., puteți utiliza utilitarul whoneeds din pachetul pkgtools:

Obținerea unei liste de pachete instalate pentru o recuperare rapidă a sistemului

Este o bună practică salvarea unei liste cu toate pachetele instalate. Dacă sistemul dvs. se blochează și este greu de recuperat, pacman poate reinstala cu ușurință aceste pachete.

Mai întâi, salvați lista de pachete (disponibilă în repozitoriu):

Salvați acest fișier pe o unitate flash USB sau pe alt suport.

Copiați fișierul pkglist în noul sistem, accesați acest dosar.

Pentru a restabili, utilizați comanda:

Obținerea unei liste de fișiere care nu aparțin nici unui pachet

Dacă vreți să păstrați întotdeauna sistemul dvs. curat și respectați calea lui Arch. Ar trebui să verificați ocazional fișiere care nu se află în baza de date pacman. Aceste fișiere sunt adesea instalate de aplicații terțe folosind ./configure; face; face instalare și așa mai departe. Puteți găsi toate aceste fișiere instalate (sau simbolinks) utilizând acest script simplu:

notă - toate fișierele specificate în non-db.txt NU vor fi șterse fără confirmare. Aceasta poate conține fișiere de configurare, jurnale etc. Utilizați această listă numai dacă știți ce faceți.

Comenzi suplimentare

Actualizarea sistemului și instalarea listei de pachete (într-o singură operație):

Descărcați pachetul, dar nu îl instalați:

Instalați pachetul local (nu din depozit):

Instalați nu un pachet local (nu din depozit):

Dezinstalați pachetele din cache (/ var / cache / pacman / pkg): Atenție! Toate pachetele din memoria cache vor fi șterse. Prin urmare, în cazul unor probleme după actualizări - vor apărea dificultăți suplimentare legate de revizuirea versiunilor pachetelor.

Curățarea completă a pachetului de memorie cache: Atenție! Toate pachetele din memoria cache vor fi șterse. Faceți acest lucru numai dacă lucrați bine și nu trebuie să întoarceți niciun pachet.

Ca alternativă la tastele -Sc și -Scc, puteți utiliza pachetul Cacheclean disponibil în AUR. Acesta este un script Python care vă permite să epurați selectiv cache-ul pacman # din versiunile vechi ale pachetelor.

Actualizările parțiale nu sunt acceptate oficial

Arch Linux este o distribuție constant actualizată, ceea ce înseamnă că există întotdeauna noi versiuni ale bibliotecilor din depozite. Dezvoltatorii și utilizatorii de încredere colectează pachete pentru depozite folosind aceste biblioteci. Pentru pachetele instalate local (de exemplu, pachete de la AUR), trebuie să rezolvați problema dvs. de dependență în funcție de datele soname.

De aceea, o actualizare parțială nu este acceptată. Nu utilizați pachetul pacman -Sy sau alte echivalente ale pachetului pacman -Sy și pacman -S. Sincronizați întotdeauna depozitele înainte de a actualiza pachetele și actualizați complet sistemul. Din același motiv, trebuie să fiți atent când utilizați IgnorePkg și IgnoreGroup.

În cazul în care, după înlocuirea parțială a dovedit că fișierele binare nu poate găsi versiunea corectă a unei biblioteci, iar problema nu poate fi „rezolvată“ prin crearea unui link simbolic (biblioteca nu are compatibilitate inversă) - urmați PacMan -Syu, de obicei, acest lucru va fi suficient pentru a rezolva problema.

Depanarea

Actualizarea pachetului XYZ mi-a rupt sistemul!

Arch Linux este o distribuție avansată, actualizată constant. Actualizările pentru pachete devin disponibile atunci când sunt considerate suficient de stabile pentru utilizarea de zi cu zi. Cu toate acestea, actualizările necesită uneori intervenția utilizatorului: poate fi necesar să actualizați fișierele de configurare, se pot schimba dependențe suplimentare etc.

Revedeți ultimul paragraf.

Știu că actualizările sunt disponibile pentru pachetul ABC, dar pacman mă informează că sistemul este actualizat!

Oglinzile pacman nu sunt sincronizate instantaneu. Uneori poate dura mai mult de 24 de ore înainte ca actualizările să devină disponibile pentru dvs.

Ca o soluție, vă puteți sfătui să schimbați oglinda. Pe MirrorStatus puteți vedea starea oglinzilor.

Când actualizați, primiți un mesaj de eroare: "fișierul există în sistemul de fișiere" ("fișierul există în sistemul de fișiere")!

De ce se întâmplă acest lucru: pacman, când fișierele conflictuale sunt detectate în mod prestabilit, acestea nu vor fi suprascrise automat. Nu este o greșeală, este făcută cu intenție. (pentru a afla ce pachet aparține fișierului, dacă există, puteți utiliza pacman -Qo.)

Întrebarea este rezolvată trivial. Mai întâi verificați dacă fișierul aparține unui alt pachet: (pacman -Qo / path / to / file). Dacă este proprietatea, creați un raport de eroare]]. Dacă fișierul cu probleme nu este necesar de alte pachete, redenumiți-l și reporniți comanda de actualizare. Dacă nu există alte probleme, fișierul vechi poate fi șters.

Când instalez pachetul, primesc un mesaj de eroare: "nu a fost găsit în sincronizare db"

Mai întâi, asigurați-vă că pachetul există (și nu ați sigilat nicăieri!). Dacă pachetul nu există, atunci problema poate fi că baza de date a pachetelor nu este sincronizată cu depozitele sau depozitele de date sunt configurate incorect. Pentru a forța o actualizare a pachetelor de pachete, încercați pacman -Syy.

pacman actualizează același pachet de mai multe ori!

Acest lucru se poate datora duplicării intrărilor în / var / lib / pacman / local /, de exemplu există două instanțe de linux. pacman -Qi va imprima versiunea corectă și pacman -Qu îl va arăta ca fiind depășită și, prin urmare, necesită o actualizare.

Soluție: eliminați intrarea suplimentară din / var / lib / pacman / local /.

pacman versiunea 3.4, în cazul detectării înregistrărilor duplicate, ar trebui să afișeze un mesaj de eroare.

Dacă pacman scade cu o eroare "write database" când încercați să ștergeți, reinstalați sau actualizați pachetele:

Începeți să folosiți CD-ul Arch live

Montați sistemul de fișiere rădăcină

Actualizați baza de date pacman cu pacman -Syy

Reinstalați pachetul rupt prin pachetul pacman -r / path / to / root_section -S

Am instalat programul folosind make install; acum aceste fișiere nu aparțin nici unui pachet!

Dacă găsiți "fișiere în conflict", astfel încât acestea să nu poată fi suprascrise manual, puteți utiliza pacman cu opțiunea -f (pacman -Sf).

Citiți despre scriptul care verifică sistemul de fișiere pentru prezența fișierelor abandonate.

Am nevoie de un pachet cu un anumit fișier. De unde știți la care pachet aparțin acest fișier?

Instalați pkgtools, acesta include pkgfile, care utilizează o bază de date separată cu toate fișierele și pachetele asociate.

pacman nu funcționează complet! Cum îl pot reinstala?

Dacă pacmanul nu funcționează și nu îl poate recupera - descărcați manual pachetele (openssl, librări, libfetch și pacman) și despachetați-le în partiția rădăcină. Pacmanul binar va fi restabilit împreună cu fișierul de configurare implicit. Apoi, pentru a menține integritatea bazei de date a pachetelor, reinstalați pachetele descărcate cu instrumentele standard pacman. Informații suplimentare și un exemplu (învechit) al scriptului care automatizează acest proces pot fi găsite în acest mesaj pe forum.

Vezi de asemenea

Articole similare