Introducere în portage

Bun venit la Portage

Datorită flexibilității ridicate și a capacităților extrem de bogate, Portage poate fi recunoscut ca fiind unul dintre cele mai bune instrumente de management al software-ului disponibile în Linux. Portage este scris în Python și Bash.

Portage arbore

Fișiere de asamblare ebuild

Vorbind despre pachete, deseori ne referim la programele disponibile pentru utilizatorii Calculate prin arborele portage. Portage copac - este un set de asamblare ebuild fișiere care conțin toate informațiile de care Portage are nevoie pentru a menține software-ul (instalare, căutare, interogare etc.) În mod implicit, fișierele de asamblare sunt în / usr / portage și / var / lib / mirean / Calculare . A doua modalitate este Calculate overlay, care conține și fișierele ebuild de asamblare.

Când Portage efectuează acțiuni asupra pachetelor software, aceste acțiuni se bazează pe fișierele de asamblare disponibile în sistem. Prin urmare, trebuie să actualizați în mod regulat fișierele de asamblare, astfel încât Portage să fie conștient de noi programe, actualizări de securitate etc.

Actualizarea arborelui portage

Arborele portage este de obicei actualizat cu rsync. Actualizarea este destul de simplă, deoarece pornirea rsync este furnizată de comanda emerge:

Dacă rsync nu poate fi executat din cauza restricțiilor de firewall, arborele portage poate fi în continuare actualizat din instantanee zilnice. Pentru a extrage și instala automat cel mai recent instantaneu în sistem, utilizați utilitarul emerge-webrsync:

Este important, împreună cu arborele portage, să actualizați suprapunerea Calculate. Suprapunerea este stocată în Git, poate fi actualizată cu utilitarul laic:

Puteți să actualizați arborele portage și Calculate overlay, precum și baza de date eix cu aceeași comandă:

Întreținerea software-ului

Căutați programe

Pentru a căuta programe în arborele portage după nume, puteți folosi comanda built-in emerge. În mod implicit, comanda emerge -search afișează numele pachetelor care se potrivesc (atât integral cât și parțial) cu condiția de căutare specificată.

De exemplu, pentru a găsi toate pachetele care conțin "pdf" în titlu:

Pentru a căuta pachete, puteți utiliza și parametrul --searchdesc (sau -S) în textul descrierii:

Un exemplu de căutare a tuturor pachetelor, în descrierea cărora este prezent cuvântul "browser".

Instalarea programelor

Odată ce ați găsit software-ul potrivit, îl puteți instala cu ușurință utilizând comanda emerge. Iată un exemplu de instalare a pachetului gnumeric:

Deoarece multe aplicații depind una de alta, orice încercare de a instala un pachet software poate implica instalarea de pachete suplimentare. Nu-ți face griji, Portage se va descurca cu asta. Dacă doriți să aflați ce va instala Portage cu pachetul de care aveți nevoie, adăugați -p (sau --pretend). De exemplu:

După comanda pentru a instala pachetul, Portage descarcă codul sursă necesar din Internet (dacă este necesar) și îl stochează implicit în directorul / var / calculate / remote / distfiles. După aceasta, pachetul este despachetat, compilat și instalat. Dacă doriți ca Portage să descarce doar codul sursă fără să îl instaleze, adăugați opțiunea -f (sau --fetchonly) la comanda emerge:

Detectarea documentației pentru un pachet

Multe pachete conțin documentația proprie. Uneori docul USE de pavilion determină dacă se instalează documentația pentru pachet. Puteți verifica prezența documentului USE-flag cu comanda emerge -vp <название пакета>. exemplu:

Documentul USE flag poate fi activat sau dezactivat la nivel global în fișierul /etc/portage/make.conf/custom. și pentru pachetele individuale, crearea unui fișier în directorul /etc/portage/package.use și specificarea semnalului în el. În capitolul USE-flags, această întrebare este descrisă mai detaliat.

Documentația din pachetul nou instalat este de obicei localizată în subdirectorul directorului / usr / share / doc. care corespunde numelui pachetului. În plus, puteți lista toate fișierele instalate cu equery. exemple:

Scoateți un pachet

Când doriți să eliminați un pachet din sistem, utilizați comanda emerge -C (sau --unungege). Aceasta va elimina toate fișierele instalate de pachet de la sistem, cu excepția fișierelor de configurare a aplicațiilor care s-au modificat după instalare. Salvarea fișierelor de configurare vă permite să reveniți la lucrul cu pachetul, dacă vreți să îl instalați din nou.

Atenție: Portage nu verifică. Dacă alte pachete depind de ștergerea! Cu toate acestea, veți primi un avertisment dacă ștergerea pachetului va duce la nefuncționarea sistemului.

După ce pachetul este eliminat din sistem, pachetele instalate de dependențe rămân. Pentru ca Portage să poată identifica toate pachetele care au fost necesare odată, care acum pot fi eliminate, utilizați comanda emerge -c (sau --depclean). Vom reveni la cele de mai jos.

Actualizare sistem

Pentru a menține sistemul într-o formă excelentă (ca să nu mai vorbim de instalarea celor mai recente actualizări de securitate), acesta trebuie actualizat în mod regulat. Din moment ce Portage se uită numai la fișierele de asamblare din arborele portage local și suprapunere, va trebui mai întâi să le actualizați. După actualizarea arborelui portage, puteți actualiza sistemul cu comanda globală emerge -u. În exemplul următor, de asemenea, folosim opțiunea -a (sau --ask), care instruiește Portage să prezinte lista pachetelor pe care urmează să le actualizeze și vă întreabă dacă puteți continua:

Portage va căuta versiuni mai noi ale aplicațiilor instalate. Cu toate acestea, sunt verificate numai versiunile aplicațiilor pe care le-ați instalat în mod explicit, și nu pe cele de care depind. Dacă doriți să actualizați fiecare pachet din sistem, adăugați argumentul -D (sau --deep):

Deoarece actualizările legate de securitate, se întâmplă în pachete care au fost instalate pe dependențele, este recomandat să rulați această comandă.

Dacă ați modificat oricare dintre steagurile USE, puteți să adăugați și opțiunea -N (sau --newuse). Atunci Portage va verifica dacă instalarea necesită pachete noi sau recompulează cele existente:

Pachete Meta

Unele pachete din arborele portage nu au conținut ca atare și sunt folosite pentru a instala un set de alte pachete. De exemplu, pachetul kde instalează complet mediul KDE pe sistemul dvs., atrăgând diverse pachete KDE ca dependențe.

Dacă vreți vreodată să eliminați un astfel de pachet din sistem, emerge -unmerge nu va avea efectul dorit, deoarece pachetele de pe care acesta depinde vor rămâne în sistem.

În Portage, este posibilă eliminarea dependențelor reziduale, dar din moment ce dependențele de programe se schimbă în timp, disponibilitatea software-ului necesită mai întâi actualizarea completă a întregului sistem, inclusiv implementarea modificărilor efectuate prin modificarea semnelor USE. După aceasta, puteți executa emerge -c (sau --depclean) pentru a elimina dependențele reziduale. Când acest lucru se va întâmpla, va trebui să reconstruiți aplicațiile asociate anterior dinamic cu pachetele de la distanță pe care nu mai au nevoie.

Cu toate acestea, următoarele trei comenzi sunt gestionate:

Când se plânge Portage.

Sloturi, virtuale, ramuri, arhitecturi și profile

După cum sa menționat deja, Portage este un sistem extrem de puternic care suportă multe caracteristici pe care alte sisteme de management de programe nu le au. Pentru a face acest lucru clar, vom analiza mai multe aspecte ale Portage fără a intra în detalii.

Cu Portage, versiuni diferite ale unui singur pachet pot coexista în același sistem. În timp ce alte sisteme de management tind să numească pachete în funcție de versiune (de exemplu, freetype și freetype2), Portage folosește tehnologia sloturilor (SLOT) sau zonele. Pachetul atribuie un anumit interval al versiunii sale. Pachetele cu sloturi diferite pot coexista în același sistem. De exemplu, pachetul freetype are un ebuild ca de la SLOT = "1". și cu SLOT = "2".

Există, de asemenea, pachete care execută aceleași funcții, dar diferă în ceea ce privește implementarea. De exemplu metalogd. sysklogd și syslog-ng sunt servicii de logare de sistem. Aplicațiile care utilizează "jurnalul de sistem" nu pot depinde de un anumit program, de exemplu de la metalogd. deoarece restul programelor nu sunt mai rele. Portage oferă pachete virtuale: fiecare serviciu de logare oferă virtuale / syslog. și ca urmare, aplicațiile pot specifica o dependență de virtuale / syslog.

Software-ul poate fi localizat în diverse ramuri ale arborelui portage. În mod implicit, pe sistem sunt permise numai pachete stabile. Cele mai multe programe noi de admitere sunt incluse în ramura de testare, ceea ce indică necesitatea unor teste suplimentare înainte de a fi incluse în stativ. Deși în arborele portage și vedeți fișierele de asamblare pentru astfel de programe, Portage nu le va actualiza până când nu sunt plasate într-o ramură stabilă.

Unele programe nu sunt disponibile pentru toate arhitecturile. Ori acestea nu funcționează pe alte arhitecturi, sau are nevoie de mai mult de testare, sau dezvoltatorul nu este în măsură să verifice dacă pachetul funcționează pe alte arhitecturi diferite.

Fiecare instalare Gentoo urmează un profil specific. care conține, printre altele, o listă de pachete necesare funcționării sistemului.

Blocarea pachetelor

Exemplu de avertisment despre pachetele blocate (cu --pretend)

În fișierele ebuild, există câmpuri speciale care îi spun lui Portage despre dependențe. Există două tipuri de dependențe: ansamblul de dependență, declarat în DEPEND. și dependența de rulare declarată în RDEPEND. Atunci când una dintre aceste dependențe indică în mod explicit o incompatibilitate a unui pachet sau a unui pachet virtual, acesta provoacă o blocare.

Pentru ao debloca, puteți refuza instalarea pachetului sau mai întâi puteți elimina pachetul care se află în conflict. În acest exemplu, puteți refuza să instalați postfix sau mai întâi să eliminați ssmtp.

De asemenea, este posibil ca cele două pachete care urmează să fie instalate să se blocheze reciproc. În acest caz rar, trebuie să determinați de ce trebuie să instalați ambele pachete. În cele mai multe cazuri, puteți gestiona unul.

Pachete de mascare

Exemplu de avertizare privind pachetele deghizate:

Un exemplu de avertisment despre pachetele deghizate cu motivul:

Când intenționați să instalați un pachet care nu este conceput pentru sistemul dvs., se emite o eroare de mascare. Ar trebui să încercați să instalați un alt program care există pentru sistemul dvs. sau să așteptați până când pachetul devine disponibil. Există întotdeauna un motiv pentru care pachetul este deghizat:

arc. Pachetul nu este suficient verificat pentru a fi plasat într-o ramură stabilă. Așteptați câteva zile sau săptămâni și încercați să o instalați din nou.
  • -arch sau key- *: pachetul nu este functional in arhitectura dumneavoastra. Dacă credeți că funcționează, raportați-l la bugzilla.
  • cheia lipsește. Pachetul nu a fost încă testat în arhitectura dvs. Întrebați echipa de portare a arhitecturii să verifice pachetul sau să-l testeze pentru ei și să raporteze rezultatele la bugzilla.
  • package.mask. Este detectată o corupție a pachetelor, instabilitate sau ceva mai rău, iar pachetul este blocat în mod specific.
  • profil. pachetul este considerat neadecvat pentru profilul dvs. În cazul instalării, aplicația poate provoca o defecțiune a sistemului sau este pur și simplu incompatibilă cu profilul utilizat.
  • <





    ?php include ($ _SERVER ["DOCUMENT_ROOT"]. "/ vstavki / blokvtext2.php"); ?>

    Lipsesc pachetele necesare

    Exemplu de avertisment lipsă de pachete:

    Aplicația pe care încercați să o instalați depinde de un alt pachet care nu este disponibil pentru sistemul dvs. Verificați dacă există o astfel de solicitare în bugzilla. și dacă nu, raportați o eroare. Dacă nu combinați ramurile, acest lucru nu ar trebui să se întâmple și aceasta este o greșeală evidentă.

    Ambiguitatea numelui pachetului

    Exemplu de avertizare despre numele duplicat al ebuild:

    Relații ciclice

    Exemplu de avertizare Portage despre dependențele ciclice:

    Două sau mai multe pachete pe care doriți să le instalați sunt reciproc dependente și, ca urmare, instalarea lor este imposibilă. Cel mai probabil, acesta este un bug în arborele portage. Așteptați timpul necesar pentru actualizarea arborelui portage și încercați din nou. De asemenea, puteți verifica dacă există o eroare în bugzilla. și dacă nu, raportați-o.

    Eroare de extracție

    Exemplu de avertizare Portage despre o eroare de extracție:

    Portage nu a putut descărca codul sursă pentru această aplicație și va încerca să continue să instaleze alte aplicații (dacă sunt planificate). Această eroare poate apărea din cauza unei oglinzi incorect sincronizate sau deoarece ebuildul indică un loc greșit. Serverul unde este localizat codul sursă poate, de asemenea, să nu funcționeze din anumite motive.

    Repetați procesul într-o oră pentru a vedea dacă această eroare se va repeta.

    Protecția profilului sistemului

    Un exemplu de avertizare Portage despre un pachet protejat de un profil:

    Ați cerut să eliminați pachetul inclus în pachetele de bază ale sistemului dvs. Este marcat în profilul dvs. ca obligatoriu și nu trebuie șters din sistem.







    Articole similare

    Trimiteți-le prietenilor: