Cuprins
apt vs. apt-get /
apt-cache vs. aptitude
testing cu unele pachete din
unstable
unstable cu unele pachete din
experimental
|
Notă |
|---|---|
|
Acest capitol este scris presupunând că cea mai recentă versiune stabilă
este nume în cod: Sursa de date a sistemului APT este denumită în mod colectiv lista surselor în acest document . Aceasta poate
fi definită oriunde în fișierul „ |
Debian este o organizație voluntară care creează distribuții consistente de pachete binare precompilate de software liber și le distribuie din arhiva sa.
Arhiva Debian este oferită de multe situri oglindă la distanță pentru acces prin metode HTTP și FTP. Este disponibilă și pe CD-ROM/DVD.
Sistemul actual de gestionare a pachetelor Debian care poate utiliza toate aceste resurse este Advanced Packaging Tool (APT).
Sistemul de gestionare a pachetelor Debian, atunci când este utilizat corect, oferă utilizatorului posibilitatea de a instala seturi consistente de pachete binare în sistem din arhivă. În prezent, există 74874 de pachete disponibile pentru arhitectura amd64.
Sistemul de gestionare a pachetelor Debian are o istorie bogată și oferă numeroase opțiuni pentru programul de interfață cu utilizatorul final și metoda de acces la arhiva care urmează să fie utilizată. În prezent, recomandăm următoarele.
apt(8) pentru toate operațiile interactive din linia de
comandă, inclusiv instalarea, eliminarea și actualizarea pachetelor.
apt-get(8) pentru apelarea sistemului de gestionare a
pachetelor Debian din scripturi. Este, de asemenea, o opțiune de rezervă
atunci când apt nu este disponibil (adesea în cazul
sistemelor Debian mai vechi).
aptitude(8) pentru o interfață text interactivă pentru
gestionarea pachetelor instalate și căutarea pachetelor disponibile.
Tabel 2.1. Lista instrumentelor de gestionare a pachetelor Debian
| pachet | popcon(popularitate) | dimensiune | descriere |
|---|---|---|---|
dpkg
|
V:894, I:1000 | 6399 | sistem de gestionare a pachetelor de nivel scăzut pentru Debian (bazat pe fișiere) |
apt
|
V:882, I:1000 | 4670 | interfață APT pentru gestionarea pachetelor cu CLI:(interfață de linie de
comandă)
apt/apt-get/apt-cache |
aptitude
|
V:35, I:180 | 4622 | interfață APT pentru gestionarea interactivă a pachetelor cu consolă pe
ecran complet: aptitude(8) |
tasksel
|
V:37, I:984 | 349 | interfață APT pentru instalarea sarcinilor selectate:
tasksel(8) |
unattended-upgrades
|
V:125, I:184 | 317 | pachet de îmbunătățiri pentru APT pentru a permite instalarea automată a actualizărilor de securitate |
gnome-software
|
V:166, I:274 | 4476 | Centru software pentru GNOME (interfață grafică pentru APT) |
synaptic
|
V:37, I:304 | 7788 | administrator grafic de pachete (interfață GTK APT) |
apt-utils
|
V:403, I:998 | 1151 | programe utilitare APT: apt-extracttemplates(1),
apt-ftparchive(1) și apt-sortpkgs(1) |
apt-listchanges
|
V:385, I:889 | 547 | instrument de notificare a istoricului modificărilor pachetelor |
apt-listbugs
|
V:5.6, I:7.6 | 514 | listează erorile critice înainte de fiecare instalare APT |
apt-file
|
V:16, I:58 | 89 | instrument de căutare a pachetelor APT — interfață linie de comandă |
apt-rdepends
|
V:0.4, I:4.7 | 39 | listează recursiv dependențele pachetului |
Iată câteva puncte cheie pentru configurarea pachetelor în sistemul Debian.
Pentru mediul grafic de birou modern, repornirea sistemului după schimbarea configurației pachetelor și actualizarea pachetelor este o idee bună pentru a asigura funcționarea corectă a sistemului.
Configurația manuală efectuată de administratorul de sistem este respectată. Cu alte cuvinte, sistemul de configurare a pachetelor nu efectuează nicio configurare intruzivă din motive de comoditate.
Fiecare pachet vine cu propriul script de configurare cu interfață
standardizată numită debconf(7) pentru a ajuta în
procesul de instalare inițială a pachetului.
Dezvoltatorii Debian fac tot posibilul pentru a vă oferi o experiență de actualizare fără probleme, cu ajutorul scripturilor de configurare a pachetelor.
Administratorul de sistem are la dispoziție toate funcționalitățile pachetului software. Însă cele care prezintă riscuri de securitate sunt dezactivate în instalarea implicită.
Dacă activați manual un serviciu care prezintă anumite riscuri de securitate, sunteți responsabil pentru limitarea riscurilor.
Configurația ezoterică poate fi activată manual de administratorul de sistem. Acest lucru poate crea interferențe cu programele generice populare de asistență pentru configurarea sistemului.
|
Avertisment |
|---|---|
|
Nu instalați pachete dintr-un amestec aleatoriu de suite. Probabil că acest lucru va afecta coerența pachetului, ceea ce necesită cunoștințe aprofundate de administrare a sistemului, cum ar fi compilatorul ABI, versiunea bibliotecii, caracteristicile interpretului etc. |
Administratorul de sistem Debian începător ar
trebui să rămână la versiunea stabilă a Debian, aplicând doar
actualizările de securitate. Până când nu înțelegeți foarte bine sistemul
Debian, ar trebui să urmați următoarele precauții.
Nu includeți suitele testing (de testare) sau
unstable (instabilă)
în lista sursă.
Nu amestecați Debian standard cu alte arhive non-Debian, cum ar fi Ubuntu, în lista de surse.
Nu creați „/etc/apt/preferences”.
Nu modificați comportamentul implicit al instrumentelor de gestionare a pachetelor prin fișiere de configurare fără a cunoaște impactul complet al acestora.
Nu instalați pachete aleatorii folosind comanda „dpkg -i
pachet_aleatoriu”.
Nu instalați niciodată pachete aleatorii folosind comanda „dpkg
--force-all -i pachet_aleatoriu”.
Nu ștergeți și nu modificați fișierele din
„/var/lib/dpkg/”.
Nu suprascrieți fișierele de sistem prin instalarea programelor software compilate direct din sursă.
Instalați-le în „/usr/local” sau
„/opt”, dacă este necesar.
Efectele incompatibile cauzate de încălcarea precauțiilor de mai sus asupra sistemului de gestionare a pachetelor Debian pot face sistemul dvs. inutilizabil.
Administratorii de sistem Debian serioși, care gestionează servere critice, ar trebui să ia măsuri de precauție suplimentare.
Nu instalați niciun pachet, inclusiv actualizările de securitate de la Debian, fără a le testa temeinic cu configurația dvs. specifică, în condiții de siguranță.
În calitate de administrator de sistem, dumneavoastră sunteți responsabil în ultimă instanță pentru sistemul dumneavoastră.
Istoria îndelungată de stabilitate a sistemului Debian nu constituie o garanție în sine.
|
Atenție |
|---|---|
|
Pentru serverul de producție, se
recomandă suita |
În ciuda avertismentelor mele de mai sus, știu că mulți cititori ai acestui
document ar putea dori să ruleze noile suite testing sau
unstable.
Iluminarea cu următoarele salvează o persoană de lupta eternă karmică a ascensiunii iadului și îi permite să atingă nirvana Debian.
Această listă este destinată mediului de birou autoadministrat.
Utilizați suita testing, deoarece aceasta este practic
versiunea continuă gestionată automat de infrastructura QA a arhivei Debian,
cum ar fi integrarea continuă
Debian, practicile de
încărcare numai a surselor și urmărirea tranziției
bibliotecilor. Pachetele din suita testing sunt
actualizate suficient de frecvent pentru a oferi toate funcționalitățile
cele mai recente.
Stabiliți numele de cod corespunzător suitei testing
(„forky” în timpul ciclului de lansare
trixie-ca-stable) în
lista surselor .
Actualizați manual acest nume de cod în lista surselor cu cel nou numai după ce evaluați situația pe cont propriu timp de aproximativ o lună după lansarea suitei majore. Lista de discuții a utilizatorilor și dezvoltatorilor Debian este, de asemenea, o sursă bună de informații în acest sens.
Utilizarea suitei unstable nu este recomandată. Suita
unstable este potrivită pentru
depanarea pachetelor ca dezvoltator, dar tinde să vă expună la
riscuri inutile pentru utilizarea normală a stației de lucru. Chiar dacă
suita unstable a sistemului Debian pare foarte stabilă în
majoritatea cazurilor, au existat unele probleme cu pachetele, iar câteva
dintre ele nu au fost atât de ușor de rezolvat.
Iată câteva idei de măsuri de precauție de bază pentru a asigura recuperarea rapidă și ușoară în cazul apariției erorilor în pachetele Debian.
Faceți disponibil sistemul de recuperare urmând instrucțiunile din secțiunea Secțiune 3.2, „Sistemul de recuperare”.
Faceți sistemul să fie cu pornire duală
instalând suita stable a sistemului Debian pe o altă
partiție
Luați în considerare instalarea apt-listbugs pentru a
verifica informațiile din Sistemul
de urmărire a erorilor Debian (BTS) înainte de actualizare.
Învățați infrastructura sistemului de pachete suficient pentru a rezolva problema
|
Atenție |
|---|---|
|
Dacă nu puteți lua niciuna dintre aceste măsuri de precauție, probabil că nu
sunteți pregătit pentru suitele |
|
Indicație |
|---|---|
|
Politica oficială a arhivei Debian este definită în Manualul de politici Debian, Capitolul 2 - Arhiva Debian. |
Să analizăm arhiva Debian din perspectiva unui utilizator de sistem.
Pentru un utilizator al sistemului, arhiva Debian este accesată folosind sistemul APT.
Sistemul APT specifică sursa de date ca fiind lista
surselor și este descris în sources.list(5).
Pentru sistemul trixie cu acces HTTP tipic,
lista surselor este furnizat în stilul
modern deb822 în „/etc/apt/sources.list.d/debian.sources”
ca mai jos:
Types: deb deb-src URIs: http://deb.debian.org/debian/ Suites: trixie Components: main non-free-firmware contrib non-free Types: deb deb-src URIs: http://security.debian.org/debian-security/ Suites: trixie-security Components: main non-free-firmware contrib non-free
|
Indicație |
|---|---|
|
Dacă lista surselor este furnizată în
stilul vechi, depreciat, pe o singură linie, în fișierele
„ $ sudo apt modernize-sources |
Punctele cheie ale listei surselor în stilul deb822 sunt următoarele.
Fișierele sale de definiție se află în fișierele
„/etc/apt/sources.list.d/*.sources”.
Fiecare bloc de linii separate printr-o linie goală definește sursa de date pentru sistemul APT.
Strofa „Types:” definește lista tipurilor, cum ar fi
„deb” și „deb-src”.
Strofa „URIs:” definește lista adreselor URI rădăcină ale
arhivei Debian.
Strofa „Suites:” definește lista numelor de distribuție
utilizând fie numele suitei, fie numele în cod.
Strofa „Components:” definește lista numelor valide ale
zonelor de arhivă din arhiva Debian.
Definiția pentru „deb-src” poate fi omisă în siguranță
dacă este doar pentru aptitude, care nu accesează
metadatele legate de sursă. Aceasta accelerează actualizările metadatelor
arhivei.
Adresa URL poate fi de tipul „https://”,
„http://”, „ftp://”,
„file://”, ….
Liniile care încep cu „#” sunt comentarii și sunt
ignorate.
Aici, tind să folosesc numele în cod „trixie”
sau „forky” în loc de numele suitei
„stable” sau „testing” pentru a evita
surprizele atunci când va fi lansată următoarea versiune
stable.
|
Indicație |
|---|---|
|
Dacă în exemplul de mai sus se utilizează „ |
Iată lista adreselor URL ale siturilor de arhivă Debian și numele suitei sau
numele de cod utilizate în fișierul de configurare după versiunea
trixie.
Tabel 2.2. Lista siturilor de arhivă Debian
| adresa URL a arhivei | numele suitei | nume în cod | scopul depozitului |
|---|---|---|---|
| http://deb.debian.org/debian/ | stable |
trixie |
Publicare stabilă cvasi-statică după verificări ample |
| http://deb.debian.org/debian/ | testing |
forky |
Publicare dinamică a suitei de testare după verificări
adecvate și perioade scurte de așteptare |
| http://deb.debian.org/debian/ | unstable |
sid |
Publicare dinamică a suitei instabile după verificări
minime și fără așteptări |
| http://deb.debian.org/debian/ | experimental |
N/D | Experimentări pre-publicare efectuate de dezvoltatori (opțional, numai pentru dezvoltatori) |
| http://deb.debian.org/debian/ | stable-proposed-updates |
trixie-proposed-updates |
Actualizări pentru următoarea versiune stabilă (opțional) |
| http://deb.debian.org/debian/ | stable-updates |
trixie-updates |
Subset al suitei stable-proposed-updates care necesită
actualizări urgente, cum ar fi datele privind fusul orar (opțional) |
| http://deb.debian.org/debian/ | stable-backports |
trixie-backports |
Colecție aleatorie de pachete recompilate, în mare parte din versiunea
testing (opțional) |
| http://security.debian.org/debian-security/ | stable-security |
trixie-security |
Actualizări de securitate pentru versiunea stabilă
(important) |
| http://security.debian.org/debian-security/ | testing-security |
forky-security |
Aceasta nu este susținută în mod activ și nici utilizată de echipa de securitate |
|
Atenție |
|---|---|
|
Numai versiunea pură |
|
Atenție |
|---|---|
|
În principiu, ar trebui să enumerați doar una dintre suitele
|
|
Indicație |
|---|---|
|
Pentru sistemul Debian cu suita |
|
Notă |
|---|---|
|
Erorile/problemele de securitate pentru arhiva |
Tabel 2.3. Lista secțiunilor de arhivă Debian
| secțiunea | numărul de pachete | criterii privind componentele pachetului |
|---|---|---|
main |
73397 | conform cu DFSG și fără dependență de non-free |
non-free-firmware |
64 | nu este conform cu DFSG, necesită firmware pentru o experiență rezonabilă de instalare a sistemului |
contrib |
378 | conform cu DFSG, dar cu dependență de non-free |
non-free |
1035 | nu este conform cu DFSG și nu se află în
non-free-firmware |
Aici numărul de pachete din cele de mai sus este pentru arhitectura amd64.
Secțiunea main furnizează sistemul Debian (vedeți Secțiune 2.1.6, „Debian este software 100% liber”).
Organizarea arhivei Debian poate fi studiată cel mai bine accesând în
navigatorul dvs. fiecare adresă URL a arhivei la care se adaugă
dists sau pool.
Distribuția este menționată în două moduri, versiunea sau nume în cod. Termenul „distribuție” este utilizat alternativ ca sinonim pentru „suită” în multe documentații. Relația dintre versiune și numele în cod poate fi rezumată după cum urmează.
Tabel 2.4. Relația dintre versiune și numele în cod
| Calendarul | versiunea = stable |
versiunea = testing |
versiunea = unstable |
|---|---|---|---|
după publicarea versiunii trixie |
nume în cod = trixie |
nume în cod = forky |
nume în cod = sid |
după publicarea versiunii forky |
nume în cod = forky |
nume în cod = duke |
nume în cod = sid |
Istoria numelor în cod este descrisă în Debian FAQ: 6.2.1 Ce alte nume în cod au fost folosite în trecut?
În terminologia mai strictă a arhivei Debian, cuvântul „secțiune” este utilizat în mod specific pentru clasificarea pachetelor în funcție de domeniul de aplicare. (Cu toate acestea, cuvântul „secțiune principală” poate fi utilizat uneori pentru a descrie zona arhivei Debian denumită „main”.)
De fiecare dată când un dezvoltator Debian (DD) efectuează o nouă încărcare
în arhiva unstable (prin procesarea incoming), DD trebuie să se asigure că pachetele
încărcate sunt compatibile cu cel mai recent set de pachete din cea mai
recentă arhivă unstable.
Dacă DD încalcă intenționat această compatibilitate pentru actualizări importante ale bibliotecii etc., de obicei se face un anunț pe lista de discuții debian-devel etc.
Înainte ca un set de pachete să fie mutat de scriptul de întreținere a
arhivei Debian din arhiva unstable în arhiva
testing, scriptul de întreținere a arhivei nu numai că
verifică maturitatea (aproximativ 2-10 zile) și starea rapoartelor de erori
RC pentru pachete, dar încearcă și să se asigure că acestea sunt compatibile
cu cel mai recent set de pachete din arhiva
testing. Acest proces face ca arhiva
testing să fie foarte actuală și utilizabilă.
Prin procesul gradual de înghețare a arhivei condus de echipa de lansare,
arhiva testing este maturizată pentru a deveni complet
consistentă și fără erori, cu câteva intervenții manuale. Apoi, noua
versiune stable este creată prin atribuirea numelui în
cod al vechii arhive testing noii arhive
stable și crearea unui nou nume în cod pentru noua arhivă
testing. Conținutul inițial al noii arhive
testing este exact același cu cel al arhivei
stable recent lansate.
Atât arhiva unstable cât și arhiva
testing pot suferi defecțiuni temporare din cauza mai
multor factori.
Încărcare pachet defect în arhivă (în special pentru
unstable)
Întârzierea acceptării noilor pachete în arhivă (în special pentru
unstable)
Problemă de sincronizare a arhivei (atât pentru testing
cât și pentru unstable)
Intervenția manuală asupra arhivei, cum ar fi eliminarea pachetelor (mai
mult pentru testing) etc.
Deci, dacă vreodată decideți să utilizați aceste arhive, ar trebui să puteți remedia sau să rezolvați acest tip de probleme.
|
Atenție |
|---|---|
|
Timp de aproximativ câteva luni după lansarea unei noi versiuni
|
|
Indicație |
|---|---|
|
Când se urmărește arhiva |
Consultați Manualul de politici Debian pentru definițiile arhivelor.
Debian este software 100% liber datorită următoarelor aspecte:
Debian instalează în mod implicit numai software liber, pentru a respecta libertățile utilizatorilor.
Debian oferă numai software liber în main.
Debian recomandă rularea numai a software-ului liber din
main.
Niciun pachet din main nu depinde și nu recomandă pachete
din non-free, non-free-firmware sau
contrib.
Unii oameni se întreabă dacă următoarele două fapte se contrazic sau nu.
„Debian va rămâne 100% gratuit”. (Primul termen din Contractul social Debian)
Serverele Debian găzduiesc unele pachete
non-free-firmware, non-free și
contrib.
Acestea nu se contrazic, din următoarele motive.
Sistemul Debian este 100% liber, iar pachetele sale sunt găzduite de
serverele Debian în secțiunea main.
Pachetele din afara sistemului Debian sunt găzduite de serverele Debian în
zonele non-free, non-free-firmware și
contrib.
Acestea sunt explicate în detaliu în termenii 4 și 5 din Contractul social Debian:
Prioritățile noastre sunt utilizatorii și software-ul liber
Ne vom ghida după nevoile utilizatorilor noștri și ale comunității de software liber. Vom pune interesele lor pe primul loc în lista noastră de priorități. Vom sprijini nevoile utilizatorilor noștri de a opera în multe tipuri diferite de medii informatice. Nu ne vom opune lucrărilor care nu sunt libere și care sunt destinate utilizării pe sistemele Debian și nu vom încerca să percepem taxe persoanelor care creează sau utilizează astfel de lucrări. Vom permite altora să creeze distribuții care conțin atât sistemul Debian, cât și alte lucrări, fără a percepe nicio taxă din partea noastră. În vederea promovării acestor obiective, vom furniza un sistem integrat de materiale de înaltă calitate, fără restricții legale care ar împiedica astfel de utilizări ale sistemului.
Lucrările care nu respectă standardele noastre privind software-ul liber
Recunoaștem că unii dintre utilizatorii noștri necesită utilizarea unor
lucrări care nu sunt conforme cu Ghidul Debian pentru software liber. Am
creat secțiunile „non-free”,
„non-free-firmware” și „contrib” în
arhiva noastră pentru aceste lucrări. Pachetele din aceste secțiuni nu fac
parte din sistemul Debian, deși au fost configurate pentru a fi utilizate cu
Debian. Încurajăm producătorii de CD-uri să citească licențele pachetelor
din aceste secțiuni și să determine dacă pot distribui pachetele pe CD-urile
lor. Astfel, deși lucrările non-free nu fac parte din Debian, noi susținem
utilizarea lor și oferim infrastructura necesară pentru pachetele non-free
(cum ar fi sistemul nostru de urmărire a erorilor și listele de discuții).
Suporturile media oficiale Debian pot include firmware care altfel nu face
parte din sistemul Debian, pentru a permite utilizarea Debian cu hardware
care necesită un astfel de firmware.
|
Notă |
|---|---|
|
Textul actual al celui de-al cincilea termen din actualul Contract social Debian 1.2 este ușor diferit de textul de mai sus. Această abatere editorială este intenționată, pentru a asigura coerența acestui document destinat utilizatorilor, fără a modifica conținutul real al Contractului social. |
Utilizatorii trebuie să fie conștienți de riscurile utilizării pachetelor
din secțiunile non-free,
non-free-firmware și contrib:
lipsa de libertate pentru astfel de pachete software
lipsa de asistență din partea Debian pentru astfel de pachete software (Debian nu poate oferi asistență adecvată pentru software fără a avea acces la codul sursă al acestuia)
contaminarea sistemului Debian 100% liber
Ghidul Debian pentru software-ul liber reprezintă standardele de software liber pentru Debian. Debian interpretează „software-ul” în sensul cel mai larg, incluzând documentele, firmware-ul, logo-ul și datele grafice din pachet. Acest lucru face ca standardele Debian pentru software-ul liber să fie foarte stricte.
Pachetele tipice non-free,
non-free-firmware și contrib includ
pachete distribuibile liber de următoarele tipuri:
Pachete de documente sub GNU Free
Documentation License cu secțiuni invariabile, cum ar fi cele pentru
GCC și Make. (se găsesc în principal în secțiunea
non-free/doc.)
Pachete firmware care conțin date binare fără sursă, cum ar fi cele
enumerate în Secțiune 9.10.5, „Controlori hardware și firmware” ca
non-free-firmware; (se găsesc în principal în secțiunea
non-free-firmware/kernel).
Pachete de jocuri și fonturi cu restricții privind utilizarea comercială și/sau modificarea conținutului.
Vă rugăm să rețineți că numărul pachetelor non-free,
non-free-firmware și contrib este mai
mic de 2% din numărul pachetelor main. Activarea
accesului la secțiunile non-free,
non-free-firmware și contrib nu
ascunde sursa pachetelor. Utilizarea interactivă pe ecran complet a
aptitude(8) vă oferă vizibilitate și control deplin
asupra pachetelor instalate din fiecare secțiune, pentru a vă menține
sistemul atât de liber pe cât doriți.
Sistemul Debian oferă un set consistent de pachete binare prin mecanismul său de declarare a dependențelor binare cu versiuni în câmpurile fișierului de control. Iată o definiție puțin simplificată pentru acestea.
„Depends” (depinde de)
Aceasta declară o dependență absolută și toate pachetele enumerate în acest câmp trebuie instalate în același timp sau în prealabil.
„Pre-Depends” (pre-depinde de)
Este similar cu Depends, cu excepția faptului că necesită instalarea completă în prealabil a pachetelor enumerate.
„Recommends” (recomandate)
Aceasta declară o dependență puternică, dar nu absolută. Majoritatea utilizatorilor nu ar dori pachetul decât dacă toate pachetele enumerate în acest câmp sunt instalate.
„Suggest” (sugerate)
Aceasta declară o dependență slabă. Mulți utilizatori ai acestui pachet pot beneficia de instalarea pachetelor enumerate în acest câmp, dar pot avea funcții rezonabile și fără acestea.
„Enhances” (îmbunătățește)
Aceasta declară o dependență slabă, similară cu Suggests, dar funcționează în sens invers.
„Breaks” (deteriorează)
Aceasta declară o incompatibilitate a pachetului, de obicei cu o anumită specificație de versiune. În general, soluția este să actualizați toate pachetele enumerate în acest câmp.
„Conflicts” (conflicte)
Aceasta declară o incompatibilitate absolută. Toate pachetele enumerate în acest câmp trebuie eliminate pentru a instala acest pachet.
„Replaces” (înlocuiește)
Aceasta se declară atunci când fișierele instalate de acest pachet înlocuiesc fișierele din pachetele enumerate.
„Provides” (furnizează)
Acest lucru este declarat atunci când acest pachet furnizează toate fișierele și funcționalitățile din pachetele enumerate.
|
Notă |
|---|---|
|
Vă rugăm să rețineți că definirea simultană a „Provides”, „Conflicts” și „Replaces” pentru un pachet virtual este configurația corectă. Aceasta asigură că doar un singur pachet real care furnizează acest pachet virtual poate fi instalat la un moment dat. |
Definiția oficială, inclusiv dependența de sursă, poate fi găsită în Manualul de politici: Capitolul 7 - Declararea relațiilor dintre pachete.
Iată un rezumat al fluxului simplificat al evenimentelor din gestionarea pachetelor de către APT.
Actualizare metadate („apt
update”, „aptitude update” sau
„apt-get update”):
Preluarea metadatelor din arhiva de la distanță
Reconstruirea și actualizarea metadatelor locale pentru utilizarea de către APT
Modernizare (actualizarea la ultima versiune a
pachetelor) („apt upgrade” și „apt
full-upgrade” sau „aptitude safe-upgrade” și
„aptitude full-upgrade”, sau „apt-get
upgrade” și „apt-get dist-upgrade”):
Alegeți versiunea candidată, care este de obicei cea mai recentă versiune disponibilă pentru toate pachetele instalate (a se vedea Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning” pentru excepții)
Rezolvarea dependențelor pachetelor
Preluarea pachetelor binare selectate din arhiva de la distanță dacă versiunea candidată este diferită de versiunea instalată
Despachetarea pachetelor binare descărcate
Rularea scriptului preinst
Instalarea fișierelor binare
Rularea scriptului postinst
Instalare („apt install
…”, aptitude install …” sau „apt-get
install …”):
Alegerea pachetelor listate în linia de comandă
Rezolvarea dependențelor pachetelor
Preluarea pachetelor binare selectate din arhiva de la distanță
Despachetarea pachetelor binare descărcate
Rularea scriptului preinst
Instalarea fișierelor binare
Rularea scriptului postinst
Eliminare („apt remove
…”, „aptitude remove …” sau „apt-get
remove …”):
Alegerea pachetelor listate în linia de comandă
Rezolvarea dependențelor pachetelor
Rularea scriptului prerm
Eliminarea fișierelor instalate cu excepția fișierelor de configurare
Rularea scriptului postrm
Purjare (curățare) («apt
purge», «aptitude purge …» sau
«apt-get purge …»):
Alegerea pachetelor listate în linia de comandă
Rezolvarea dependențelor pachetelor
Rularea scriptului prerm
Eliminarea fișierelor instalate inclusiv fișierele de configurare
Rularea scriptului postrm
Aici, am omis intenționat detaliile tehnice pentru a prezenta imaginea de ansamblu.
Ar trebui să citiți documentația oficială detaliată. Primul document pe
care trebuie să-l citiți este cel specific Debian
„/usr/share/doc/nume_pachet/README.Debian”.
Ar trebui consultată și altă documentație din
„/usr/share/doc/nume_pachet/”. Dacă
configurați shell-ul ca în Secțiune 1.4.2, „Personalizarea bash”, tastați
următoarele.
$ cd package_name
$ pager README.Debian
$ mc
Pentru informații detaliate, poate fi necesar să instalați pachetul de
documentație corespunzător, denumit cu sufixul „-doc”.
Dacă întâmpinați probleme cu un pachet specific, verificați mai întâi siturile sistemului de urmărire a erorilor Debian (BTS).
Tabel 2.5. Lista siturilor web importante pentru rezolvarea problemelor legate de un pachet specific
| situl web | comandă |
|---|---|
| Pagina principală a sistemului de urmărire a erorilor Debian (BTS) | sensible-browser "https://bugs.debian.org/" |
| Raportul de eroare al unui pachet cunoscut | sensible-browser
"https://bugs.debian.org/package_name" |
| Raportul de eroare al erorii cunoscute cu numărul | sensible-browser
"https://bugs.debian.org/bug_number" |
Căutați cu Google cu cuvinte cheie precum
„site:debian.org”,
„site:wiki.debian.org”,
„site:lists.debian.org” etc.
Când raportați o eroare, vă rugăm să utilizați comanda
reportbug(1).
Când întâlniți mai mult de două pachete similare și vă întrebați pe care să îl instalați fără a recurge la „încercări și erori”, ar trebui să folosiți bunul simț. Consider că următoarele puncte sunt indicii bune pentru alegerea pachetelor preferate.
Esențial: da > nu
Secțiunea: main > contrib > non-free
Prioritate: necesar > important> standard> opțional> suplimentar
Sarcini: pachete enumerate în sarcini precum „Mediu de birou”
Pachetele selectate de pachetul de dependență (de exemplu,
gcc-10 de către gcc)
Popcon (popularitate): număr mai mare de voturi și instalări
Istoric modificări: actualizări periodice de către responsabilul pachetului
BTS: Fără erori RC (fără erori critice, grave sau serioase)
BTS: responsabil de pachet receptiv la rapoartele de erori
BTS: număr mai mare de erori remediate recent
BTS: număr mai mic de erori rămase care nu sunt incluse ca listă de dorințe (wishlist)
Debian fiind un proiect de voluntariat cu un model de dezvoltare distribuit, arhiva sa conține multe pachete cu orientări și calități diferite. Trebuie să decideți singur ce să faceți cu ele.
Indiferent de suita sistemului Debian pe care decideți să o utilizați, este posibil să doriți să rulați versiuni ale programelor care nu sunt disponibile în acea suită. Chiar dacă găsiți pachete binare ale acestor programe în alte suite Debian sau în alte resurse non-Debian, cerințele lor pot intra în conflict cu sistemul Debian actual.
Deși puteți modifica sistemul de gestionare a pachetelor cu tehnica apt-pinning etc., așa cum este descris în Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning” pentru a instala astfel de pachete binare nesincronizate, astfel de abordări de modificare au doar cazuri de utilizare limitate, deoarece pot afecta programele respective și sistemul dvs.
Înainte de a instala în mod brutal astfel de pachete nesincronizate, ar trebui să căutați toate soluțiile tehnice alternative mai sigure disponibile, care sunt compatibile cu sistemul Debian actual.
Instalați astfel de programe utilizând pachetele binare corespunzătoare din amonte (vezi Secțiune 7.7, „Cutia cu nisip (sandbox)”).
Creați un mediu chroot sau similar și rulați astfel de programe în acesta (consultați Secțiune 9.11, „Sistem virtualizat”).
Comenzile CLI pot fi executate cu ușurință în cadrul chroot compatibil (vedeți Secțiune 9.11.4, „Sistemul chroot”).
Mai multe medii grafice de birou complete pot fi încercate cu ușurință fără a reporni sistemul (a se vedea Secțiune 9.11.5, „Mai multe sisteme de medii de birou”).
Construiți singur versiunile dorite ale pachetelor binare care sunt compatibile cu sistemul Debian actual.
Aceasta este o sarcină non-trivială (a se vedea Secțiune 2.7.13, „Adaptarea unui pachet la sistemul stabil”).
Operațiile de gestionare a pachetelor bazate pe depozit în sistemul Debian
pot fi efectuate de numeroase instrumente de gestionare a pachetelor bazate
pe APT disponibile în sistemul Debian. Aici, explicăm 3 instrumente de bază
pentru gestionarea pachetelor: apt,
apt-get / apt-cache și
aptitude.
Pentru operația de gestionare a pachetelor care implică instalarea pachetelor sau actualizarea metadatelor pachetelor, trebuie să aveți privilegii de root.
Deși aptitude este un instrument interactiv foarte bun,
pe care autorul îl folosește în principal, trebuie să știți câteva lucruri
importante:
Comanda aptitude nu este recomandată pentru actualizarea
sistemului de la o versiune la alta pe sistemul Debian
stabil după lansarea noii versiuni.
Pentru aceasta se recomandă utilizarea „apt full-upgrade”
sau „apt-get dist-upgrade”. Consultați Eroarea #411280.
Comanda aptitude sugerează uneori eliminarea în masă a
pachetelor pentru actualizarea sistemului pe sistemul Debian
testing sau unstable.
Această situație a speriat mulți administratori de sistem. Nu intrați în panică.
Aceasta pare să fie cauzată în principal de diferențele de versiune între
pachetele dependente sau recomandate de un meta-pachet precum
gnome-core.
Această problemă poate fi rezolvată selectând „Anulează acțiunile în
așteptare” din meniul de comenzi aptitude, ieșind din
aptitude și utilizând „apt
full-upgrade”.
Comenzile apt-get și apt-cache sunt
cele mai elementare instrumente de
gestionare a pachetelor bazate pe APT.
apt-get și apt-cache oferă doar
interfața de utilizare a liniei de comandă.
apt-get este cel mai potrivit pentru actualizări majore ale sistemului între versiuni
etc.
apt-get oferă un rezolvator de dependențe de pachete
robust.
apt-get solicită mai puține resurse hardware. Consumă
mai puțină memorie și rulează mai rapid.
apt-cache oferă o căutare standard bazată pe expresii regulate pentru numele
și descrierea pachetului.
apt-get și apt-cache pot gestiona mai
multe versiuni de pachete folosind /etc/apt/preferences,
dar este destul de complicat.
Comanda apt este o interfață de linie de comandă de nivel
înalt pentru gestionarea pachetelor. Este practic un înveliș pentru
apt-get, apt-cache și comenzi
similare, concepută inițial ca interfață pentru utilizatorul final și care
activează în mod implicit unele opțiuni mai potrivite pentru utilizarea
interactivă.
apt oferă o bară de progres intuitivă atunci când
instalați pachete folosind apt install.
apt va elimina
pachetele .deb stocate în cache în mod implicit după
instalarea cu succes a pachetelor descărcate.
|
Indicație |
|---|---|
|
Utilizatorilor li se recomandă să utilizeze noua comandă
|
Comanda aptitude este cel mai versatil instrument de gestionare a pachetelor
bazat pe APT.
aptitude oferă interfața text interactivă cu utilizatorul
pe ecran complet.
aptitude oferă și interfața de utilizare a liniei de
comandă.
aptitude este cel mai potrivit pentru gestionarea interactivă zilnică a pachetelor, cum
ar fi inspectarea pachetelor instalate și căutarea pachetelor disponibile.
aptitude este mai exigent în ceea ce privește resursele
hardware. Consumă mai multă memorie și rulează mai lent.
aptitude oferă o căutare îmbunătățită bazată pe expresii regulate pentru
toate metadatele pachetului.
aptitude poate gestiona mai multe versiuni ale pachetelor
fără a utiliza /etc/apt/preferences și este destul de
intuitiv.
Iată operațiile de bază pentru gestionarea pachetelor din linia de comandă,
folosind apt(8), aptitude(8) și
apt-get(8) /apt-cache(8).
Tabel 2.6. Operații de bază de gestionare a pachetelor din linia de comandă folosind
apt(8), aptitude(8) și
apt-get(8) /apt-cache(8)
sintaxa apt |
sintaxa aptitude |
sintaxa apt-get/apt-cache |
descriere |
|---|---|---|---|
apt update |
aptitude update |
apt-get update |
actualizează metadatele arhivei pachetelor |
apt install foo |
aptitude install foo |
apt-get install foo |
instalează versiunea candidată a pachetului „foo”
împreună cu dependențele sale |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
instalează versiunea candidată a pachetelor instalate fără a elimina alte pachete |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
instalați versiunea candidată a pachetelor instalate, eliminând alte pachete dacă este necesar |
apt remove foo |
aptitude remove foo |
apt-get remove foo |
eliminați pachetul „foo” lăsând în același timp fișierele
sale de configurare |
apt autoremove |
N/D | apt-get autoremove |
elimină pachetele instalate automat care nu mai sunt necesare |
apt purge foo |
aptitude purge foo |
apt-get purge foo |
șterge pachetul „foo” împreună cu fișierele sale de
configurare |
apt clean |
aptitude clean |
apt-get clean |
șterge complet depozitul local de fișiere ale pachetelor preluate (descărcate) |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
șterge din depozitul local fișierele pachetelor descărcate pentru pachetele învechite |
apt show foo |
aptitude show foo |
apt-cache show foo |
afișează informații detaliate despre pachetul „foo” |
apt search regex |
aptitude search regex |
apt-cache search regex |
căută pachetele care corespund cu expresia-regulată |
| N/D | aptitude why regex |
N/D | explică motivul pentru care ar trebui instalate pachetele care corespund cu expresia-regulată |
| N/D | aptitude why-not regex |
N/D | explică motivul pentru care pachetele care corespund cu expresia-regulată nu pot fi instalate |
apt list --manual-installed |
aptitude search '~i!~M' |
apt-mark showmanual |
listează pachetele instalate manual |
apt / apt-get și
aptitude pot fi combinate fără probleme majore.
„aptitude why rexpresie-regulată”
poate afișa mai multe informații prin „aptitude -v why
expresie-regulată”. Informații similare pot
fi obținute prin „apt rdepends
pachet” sau „apt-cache rdepends
pachet”.
Când comanda aptitude este pornită în modul linie de
comandă și întâmpină unele probleme, cum ar fi conflicte între pachete,
puteți trece la modul interactiv pe ecran complet apăsând tasta
«e» în prompt.
|
Notă |
|---|---|
|
Deși comanda |
Puteți furniza opțiuni de comandă imediat după
„aptitude”.
Tabel 2.7. Opțiuni de comandă demne de menționat pentru aptitude(8)
| opțiunea de comandă | descriere |
|---|---|
-s |
simulează rezultatul comenzii |
-d |
doar descărcare, fără instalare/actualizare |
-D |
afișează explicații succinte înainte de instalările și dezinstalările automate |
Pentru mai multe informații, consultați aptitude(8) și
„Manualul utilizatorului aptitude” la
„/usr/share/doc/aptitude/README”.
Pentru gestionarea interactivă a pachetelor, porniți
aptitude în modul interactiv din promptul consolei shell,
după cum urmează.
$ sudo aptitude -u Password:
Aceasta actualizează copia locală a informațiilor din arhivă și afișează
lista pachetelor pe ecranul complet cu meniu. Aptitude plasează
configurația sa în „~/.aptitude/config”.
|
Indicație |
|---|---|
|
Dacă doriți să utilizați configurația root în locul celei a utilizatorului,
utilizați „ |
|
Indicație |
|---|---|
|
|
Tastele demne de menționat pentru a naviga în starea pachetelor și pentru a defini „acțiunea planificată” pentru acestea în acest mod ecran complet sunt următoarele.
Tabel 2.8. Lista combinațiilor de taste pentru «aptitude»
| tasta | comanda/funcția asociată |
|---|---|
F10 sau Ctrl-t |
meniu |
? |
afișează ajutorul pentru apăsarea tastei (listă mai completă) |
F10 → Ajutor → Manualul utilizatorului |
Afișează manualul utilizatorului |
u |
actualizează informațiile referitoare la arhiva pachetelor |
+ |
marchează pachetul pentru actualizare sau instalare |
- |
marcați pachetul pentru eliminare (păstrează fișierele de configurare) |
_ |
marchează pachetul pentru ștergere (elimină fișierele de configurare) |
= |
pune pachetul în așteptare |
U |
marchează toate pachetele care pot fi actualizate (funcționează ca full-upgrade) |
g |
începe descărcarea și instalarea pachetelor selectate |
q |
iese din ecranul curent și salvează modificările |
x |
iese din ecranul curent și înlătură modificările |
Enter |
afișează informații despre un pachet |
C |
afișează jurnalul de modificări al unui pachet |
l |
modifică limita pentru pachetele afișate |
/ |
caută prima potrivire |
\ |
repetă ultima căutare |
Specificația numelui fișierului din linia de comandă și promptul meniului
după apăsarea „l” și „//” utilizează
expresia regulată aptitude, așa cum este descrisă mai jos. Expresia
regulată aptitude poate potrivi în mod explicit un nume de pachet utilizând
un șir care începe cu „~n” și este urmat de numele
pachetului.
|
Indicație |
|---|---|
|
Trebuie să apăsați tasta „ |
În modul interactiv pe ecran complet al aptitude(8),
pachetele din lista de pachete sunt afișate conform exemplului următor.
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Aici, această linie înseamnă de la stânga către dreapta, după cum urmează:
Indicatorul „starea curentă” (prima literă)
Indicatorul „acțiunea planificată” (a doua literă)
Indicatorul „automat” (a treia literă)
Numele pachetului
Modificarea utilizării spațiului pe disc atribuită „acțiunii planificate”
Versiunea actuală a pachetului
Versiunea candidată a pachetului
|
Indicație |
|---|---|
|
Lista completă a indicatorilor este afișată în partea de jos a ecranului
Ajutor, care apare apăsând
« |
Versiunea candidată este aleasă în
funcție de preferințele locale curente (vezi
apt_preferences(5) și Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”).
Mai multe tipuri de vizualizări ale pachetelor sunt disponibile în meniul
„Vizualizări”.
Tabel 2.9. Lista vizualizărilor pentru aptitude
| vizualizarea | descrierea vizualizării |
|---|---|
Package View |
vedeți Tabel 2.10, „Clasificarea vizualizărilor standard ale pachetelor” (implicit) |
Audit Recommendations |
lista pachetelor recomandate de unele pachete instalate, dar care nu sunt încă instalate |
Flat Package List |
lista pachetelor fără categorizare (pentru utilizare cu expresii regulate) |
Debtags Browser |
lista pachetelor clasificate în funcție de intrările lor debtags |
Source Package View |
lista pachetelor grupate după pachetele sursă |
|
Notă |
|---|---|
|
Vă rugăm să ne ajutați să îmbunătățim etichetarea pachetelor cu debtags! |
Standardul „Vizualizare pachete” clasifică pachetele
într-un mod similar cu dselect, cu câteva caracteristici
suplimentare.
Tabel 2.10. Clasificarea vizualizărilor standard ale pachetelor
| categoria | descrierea vizualizării |
|---|---|
Upgradable Packages |
lista pachetele organizate ca secțiune →
zonă → pachet |
New Packages |
, , |
Installed Packages |
, , |
Not Installed Packages |
, , |
Obsolete and Locally Created Packages |
, , |
Virtual Packages |
lista pachetelor cu aceeași funcție |
Tasks |
lista pachetelor cu diferite funcții necesare în general pentru o sarcină |
|
Indicație |
|---|---|
|
Vizualizarea |
Aptitude oferă mai multe opțiuni pentru căutarea pachetelor folosind formula de expresie regulată.
Linia de comandă shell:
«aptitude search
'expresie-regulată_aptitude'» pentru a afișa
starea instalării, numele pachetului și o scurtă descriere a pachetelor care
corespund căutării
«aptitude show 'nume_pachet'» pentru
a afișa descrierea detaliată a pachetului
Modul interactiv pe ecran complet:
„l” pentru a limita vizualizarea pachetelor la pachetele
care se potrivesc căutării
„/” pentru căutarea unui pachet care corespunde modelului
de căutare
„\” pentru căutarea înapoi a unui pachet care corespunde
modelului de căutare
„n” pentru căutarea următoarei coincidențe
„N” pentru căutarea următoarei coincidențe (înapoi)
|
Indicație |
|---|---|
|
Șirul pentru nume_pachet este tratat ca fiind exact
identic cu numele pachetului, cu excepția cazului în care începe în mod
explicit cu „ |
Formula expresiei regulate aptitude este similară cu cea extinsă mutt
ERE (a se vedea Secțiune 1.6.2, „Expresii regulate”), iar semnificațiile extensiilor speciale
ale regulilor de potrivire specifice aptitude sunt
următoarele.
Tabel 2.11. Lista formulelor de expresii regulate pentru aptitude
| descrierea regulii extinse de potrivire | formula expresiei regulate |
|---|---|
| potrivire cu numele pachetului | ~nregex_name |
| potrivire cu descrierea | ~dregex_description |
| potrivire cu numele sarcinii | ~tregex_task |
| potrivire cu debtag | ~Gregex_debtag |
| potrivire cu resposabilul pachetului | ~mregex_maintainer |
| potrivire cu secțiunea pachetului | ~sregex_section |
| potrivire cu versiunea pachetului | ~Vregex_version |
| potrivire cu distribuția | ~A{trixie,forky,sid} |
| potrivire cu originea | ~O{debian,…} |
| coincidență prioritate | ~p{extra,important,optional,required,standard} |
| corespunde cu pachete esențiale | ~E |
| corespunde cu pachete virtuale | ~v |
| corespunde cu pachete noi | ~N |
| potrivire cu acțiunea în așteptare | ~a{install,upgrade,downgrade,remove,purge,hold,keep} |
| potrivire cu pachete instalate | ~i |
| corespunde pachetelelor instalate cu marca A (pachete instalate automat) | ~M |
| corespunde pachetelelor instalate fără marca A (pachete selectate de administrator) | ~i!~M |
| potrivire cu pachete instalate și actualizabile | ~U |
| potrivire cu pachete eliminate, dar nu șterse | ~c |
| potrivire cu pachete eliminate, șterse sau care pot fi eliminate | ~g |
| potrivire cu pachete care declară o dependență ruptă | ~b |
| potrivire cu pachete care declară o dependență ruptă de tipul | ~Btype |
| corespunde cu modelul de pachete care declară o dependență de tipul | ~D[type:]pattern |
| corespunde cu modelul de pachete care declară o dependență ruptă de tipul | ~DB[type:]pattern |
| corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență de tipul | ~R[type:]pattern |
| corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență ruptă de tipul | ~RB[type:]pattern |
| corespunde cu pachetele de care depind alte pachete instalate | ~R~i |
| corespunde cu pachetele de care nu depind alte pachete instalate | !~R~i |
| corespunde cu pachetele de care depind sau pe care le recomandă alte pachete instalate | ~R~i|~Rrecommends:~i |
| potrivire cu modelul de pachet filtrat după versiune | ~S filter pattern |
| corespunde cu toate pachetele (adevărat) | ~T |
| nu corespunde cu niciun pachet (fals) | ~F |
Partea expresie-regulată este aceeași ERE
ca cea utilizată în instrumentele text tipice de tip Unix care utilizează
„^”, „.*”, „$”
etc., ca în egrep(1), awk(1) și
perl(1).
tipul de dependență este unul dintre (depends, predepends, recommends, suggests, conflicts, replaces, provides) care specifică interrelația dintre pachete.
Tipul implicit de dependență este „depends”.
|
Indicație |
|---|---|
|
Când modelul_expresie-regulată este un șir nul, plasați
„ |
Iată câteva scurtături.
„~Ptermen” ==
„~Dprovides:termen”
„~Ctermen” ==
„~Dconflicts:termen”
„…~W termen” == „(…|termen)”
Utilizatorii familiarizați cu mutt învață repede,
deoarece mutt a fost sursa de inspirație pentru sintaxa
expresiilor. Consultați „CĂUTARE, LIMITARE ȘI EXPRESII - (SEARCHING,
LIMITING, AND EXPRESSIONS)” în „Manualul utilizatorului”
„/usr/share/doc/aptitude/README”.
|
Notă |
|---|---|
|
Cu versiunea |
Selectarea unui pachet în aptitude nu numai că extrage
pachetele definite în lista „Depends:”, ci și pe cele
definite în lista „Recommends:”, dacă meniul
„F10 → Opțiuni → Preferințe → Gestionarea dependențelor”
este configurat corespunzător. Aceste pachete instalate automat sunt
eliminate automat dacă nu mai sunt necesare în aptitude.
Indicatorul care controlează comportamentul „instalării automate” al
comenzii aptitude poate fi, de asemenea, manipulat
folosind comanda apt-mark(8) din pachetul
apt.
Puteți verifica istoricul activității pachetului în fișierele jurnal.
Tabel 2.12. Fișierele jurnal pentru activitățile pachetului
| fișier | conținut |
|---|---|
/var/log/dpkg.log |
Jurnalul activității la nivel dpkg pentru activitățile
tuturor pachetelor |
/var/log/apt/term.log |
Jurnalul activității APT generice |
/var/log/aptitude |
Jurnalul activității comenzii aptitude |
În realitate, nu este atât de ușor să obții rapid informații relevante din aceste jurnale. Vedeți Secțiune 9.3.9, „Înregistrarea modificărilor din fișierele de configurare” pentru o metodă mai simplă.
Iată câteva exemple de operații cu aptitude(8).
Puteți căuta pachete care să vă satisfacă nevoile cu ajutorul
aptitude din descrierea pachetului sau din lista aflată
sub „Sarcini”.
Următoarea comandă listează pachetele cu potriviri de expresie regulată în numele pachetelor.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Acest lucru este foarte util pentru a găsi numele exact al unui pachet.
Expresia regulată „~dipv6” din vizualizarea „Listă nouă
plană de pachete” cu promptul „l” limitează vizualizarea
la pachetele cu descrierea care coincide cu expresia și vă permite să
răsfoiți informațiile acestora în mod interactiv.
Puteți șterge toate fișierele de configurare rămase ale pachetelor eliminate.
Verificați rezultatele următoarei comenzi.
# aptitude search '~c'
Dacă considerați că pachetele listate pot fi șterse, executați următoarea comandă.
# aptitude purge '~c'
Puteți face același lucru în modul interactiv pentru un control mai precis.
Introduceți expresia regulată „~c” în vizualizarea
«Vizualizare pachet nou» cu promptul „l”. Aceasta
limitează vizualizarea pachetului numai la pachetele care corespund
expresiei regulate, adică „eliminate, dar nu șterse”. Toate aceste pachete
care corespund expresiei regulate pot fi afișate apăsând
„[” în titlurile de nivel superior.
Apoi apăsați „_” în titlurile de nivel superior, cum ar
fi „Pachete neinstalate”. Numai pachetele care corespund expresiei regulate
din titlu sunt marcate pentru a fi șterse. Puteți exclude unele pachete de
la ștergere apăsând „=” în mod interactiv pentru fiecare
dintre ele.
Această tehnică este destul de utilă și funcționează pentru multe alte taste de comandă.
Iată cum ordonez starea instalării automate/manuale pentru pachete (după utilizarea unui program de instalare a pachetelor non-aptitude etc.).
Lansați aptitude în modul interactiv ca root.
Tastați „u”, „U”,
„f” și „g” pentru a actualiza și a
îmbunătăți lista de pachete și pachetele.
Tastați „l” pentru a introduce limita de afișare a
pachetelor ca „~i(~R~i|~Rrecommends:~i)” și tastați
„M” peste „Pachete instalate” ca
instalate automat.
Tastați „l” pentru a introduce limita de afișare a
pachetelor ca „~prequired|~pimportant|~pstandard|~E” și
tastați „m” peste „Pachete instalate”
ca instalate manual.
Tastați „l” pentru a introduce limita de afișare a
pachetelor ca „~i!~M” și eliminați pachetele neutilizate
tastând „-” peste fiecare dintre ele după ce le-ați expus
tastând „[” peste „Pachete instalate”.
Tastați „l” pentru a introduce limita de afișare a
pachetelor ca „~i”; apoi tastați „m”
peste „Sarcini” pentru a marca pachetele respective ca
fiind instalate manual.
Ieșiți din aptitude.
Lansați „apt-get -s autoremove|less” ca root pentru a
verifica ce nu este utilizat.
Reporniți aptitude în modul interactiv și marcați
pachetele necesare ca „m”.
Reporniți „apt-get -s autoremove|less” ca root pentru a
verifica din nou că REMOVED conține numai pachetele așteptate.
Porniți „apt-get autoremove|less” ca root pentru a
elimina automat pachetele neutilizate.
Acțiunea „m” asupra „Tasks” este
opțională, pentru a preveni situații de eliminare în masă a pachetelor în
viitor.
|
Notă |
|---|---|
|
Când treceți la o nouă versiune etc., ar trebui să luați în considerare efectuarea unei instalări curate a noului sistem, chiar dacă Debian poate fi actualizat așa cum este descris mai jos. Acest lucru vă oferă șansa de a elimina fișierele inutile acumulate și vă expune la cea mai bună combinație de pachete recente. Desigur, ar trebui să faceți o copie de rezervă completă a sistemului într-un loc sigur (consultați Secțiune 10.2, „Copia de rezervă și recuperarea”) înainte de a face acest lucru. Vă recomand să configurați un sistem de pornire duală utilizând partiții diferite pentru a avea o tranziție cât mai lină. |
Puteți efectua o actualizare la nivel de sistem la o versiune mai nouă
modificând conținutul listei de surse
pentru a indica o nouă versiune și executând comanda „apt update;
apt dist-upgrade”.
Pentru a actualiza de la stable la
testing sau unstable în timpul
ciclului de lansare
trixie-ca-stable, înlocuiți
„trixie ” din exemplul listei sursă din Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian” cu
„forky” sau „sid”.
În realitate, este posibil să întâmpinați unele complicații din cauza unor
probleme legate de tranziția pachetelor, în principal din cauza
dependențelor pachetelor. Cu cât diferența dintre versiuni este mai mare, cu
atât este mai probabil să întâmpinați probleme mai mari. Pentru tranziția
de la vechiul stable la noul stable
după lansarea acestuia, puteți citi noile Note
de lansare și să urmați procedura exactă descrisă în acestea pentru
a minimiza problemele.
Când decideți să treceți de la stable la
testing înainte de lansarea oficială, nu există Note de lansare care să vă ajute. Diferența
dintre stable și testing ar putea fi
destul de mare după lansarea anterioară a stable, ceea ce
complică situația actualizării.
Ar trebui să luați măsuri de precauție pentru actualizarea completă, în timp ce colectați cele mai recente informații din lista de distribuție și folosiți bunul simț.
Citiți „Notele de lansare” anterioare.
Faceți o copie de rezervă a întregului sistem (în special a datelor și informațiilor de configurare).
Aveți la îndemână un suport de pornire pentru cazul în care se strică încărcătorul de pornire.
Informați utilizatorii cu privire la sistem cu suficient timp înainte.
Înregistrați activitatea de actualizare cu script(1).
Aplicați „unmarkauto” pachetelor necesare, de exemplu, „aptitude
unmarkauto vim”, pentru a preveni eliminarea.
Reduceți la minimum pachetele instalate pentru a diminua riscul de conflicte între pachete, de exemplu, eliminați pachetele de sarcini de medii grafice de birou.
Eliminați fișierul „/etc/apt/preferences” (dezactivați
apt-pinning).
Încercați să faceți actualizarea pas cu pas: oldstable →
stable → testing →
unstable.
Actualizați lista surselor pentru a
indica numai noua arhivă și rulați „aptitude update”.
Instalați, opțional, mai întâi noile pachete de
bază, de exemplu, «aptitude install perl».
Rulați comanda «apt-get -s dist-upgrade» pentru a evalua
impactul.
În cele din urmă, executați comanda «apt-get
dist-upgrade».
|
Atenție |
|---|---|
|
Nu este recomandat să săriți peste versiunile majore Debian atunci când
faceți actualizări între versiunile |
|
Atenție |
|---|---|
|
În „Notele de lansare” anterioare, GCC, Linux Kernel, initrd-tools, Glibc, Perl, lanțul de instrumente APT etc. au necesitat o atenție specială pentru actualizarea la nivel de sistem. |
|
Atenție |
|---|---|
|
„Notele de lansare” pot să nu acopere toate cazurile posibile. Dacă modificați configurațiile de nivel inferior, următoarea actualizare poate eșua grav, generând „... eroare de segmentare după actualizare ...”. |
Pentru actualizări zilnice în unstable, consultați Secțiune 2.4.3, „Protejarea împotriva problemelor legate de pachete”.
Iată o listă cu alte opereții de gestionare a pachetelor pentru care
aptitude este prea complex sau nu dispune de
funcționalitățile necesare.
Tabel 2.13. Lista operațiilor avansate de gestionare a pachetelor
| comandă | acțiunea |
|---|---|
COLUMNS=120 dpkg -l
package_name_pattern |
afişează starea unui pachet instalat pentru raportul de eroare |
dpkg -L package_name |
afișează conținutul unui pachet instalat |
dpkg -L package_name | egrep
'/usr/share/man/man.*/.+' |
listează paginile de manual pentru un pachet instalat |
dpkg -S file_name_pattern |
listează pachetele instalate care au numele de fișier ce coincide cu modelul |
apt-file search file_name_pattern |
listează pachetele din arhivă care au numele de fișier ce coincide cu modelul |
apt-file list package_name_pattern |
listează conținutul pachetelor din arhivă ce coincide cu modelul |
dpkg-reconfigure package_name |
reconfigurează pachetul specificat |
dpkg-reconfigure -plow package_name |
reconfigurează pachetul specificat cu nivelul de chestionare cel mai detaliat (ridicat) |
configure-debian |
reconfigurează pachetele selectate din meniul pe ecran complet |
dpkg --audit |
sistemul de auditare pentru pachete instalate parțial |
dpkg --configure -a |
configurează toate pachetele instalate parțial |
apt-cache policy binary_package_name |
afișează versiunea disponibilă, prioritatea și informațiile de arhivă ale unui pachet binar |
apt-cache madison package_name |
afișează versiunea disponibilă, informații privind arhiva unui pachet |
apt-cache showsrc
binary_package_name |
afișează informațiile despre pachetul sursă al unui pachet binar |
apt-get build-dep package_name |
instalează pachete necesare pentru a construi pachetul |
aptitude build-dep package_name |
instalează pachete necesare pentru a construi pachetul |
apt-get source package_name |
descarcă pachetul sursă (din arhiva standard) |
dget URL for dsc file |
descarcă pachetele sursă (din altă arhivă) |
dpkg-source -x
package_name_version-debian.revision.dsc |
construiește un arbore sursă dintr-un set de pachete sursă
(„*.orig.tar.gz” și
„*.debian.tar.gz”/„*.diff.gz”) |
debuild binary |
construiește pachete dintr-un arbore sursă local |
make-kpkg kernel_image |
construiește un pachet de nucleu dintr-un arbore sursă de nucleu |
make-kpkg --initrd kernel_image |
construiește un pachet de nucleu dintr-un arbore sursă de nucleu cu initramfs activat |
dpkg -i
package_name_version-debian.revision_arch.deb |
instalează un pachet local în sistem |
apt install
/path/to/package_filename.deb |
instalează un pachet local în sistem, încercând în același timp să rezolve automat dependențele |
debi
package_name_version-debian.revision_arch.dsc |
instalează pachetul (pachetele) local(e) în sistem |
dpkg --get-selections '*' >selection.txt |
salvează informații despre starea selecției pachetului la nivel
dpkg |
dpkg --set-selections <selection.txt |
definește informațiile privind starea selecției pachetelor la nivel
dpkg |
echo package_name hold | dpkg
--set-selections |
definește starea de selecție a pachetului la nivel dpkg
pentru un pachet la hold (echivalent cu
„aptitude hold nume_pachet”) |
|
Notă |
|---|---|
|
Pentru un pachet cu caracteristica multi-arch, poate fi necesar să specificați numele
arhitecturii pentru unele comenzi. De exemplu, utilizați « |
|
Atenție |
|---|---|
|
Instrumentele de nivel inferior, precum „ |
Vă rugăm să rețineți următoarele:
Toate comenzile de configurare și instalare a sistemului trebuie rulate din contul root.
Spre deosebire de aptitude, care utilizează expresii
regulate (a se vedea Secțiune 1.6.2, „Expresii regulate”), alte comenzi
de gestionare a pachetelor utilizează modele precum modelele globale de
shell „shell glob” (a se vedea Secțiune 1.5.6, „Facilitatea glob a shell-ului”).
apt-file(1) furnizat de pachetul
apt-file trebuie să execute în prealabil comanda
«apt-file update».
configure-debian(8) furnizat de pachetul
configure-debian rulează
dpkg-reconfigure(8) ca motor.
dpkg-reconfigure(8) rulează scripturi de pachete folosind
debconf(1) ca motor.
Comenzile «apt-get build-dep», «apt-get
source» și «apt-cache showsrc» necesită
introducerea unei intrări „deb-src” în lista surselor.
dget(1), debuild(1) și
debi(1) necesită pachetul devscripts.
Consultați procedura de (re)împachetare folosind «apt-get
source» în Secțiune 2.7.13, „Adaptarea unui pachet la sistemul stabil”.
Comanda make-kpkg necesită pachetul
kernel-package (a se vedea Secțiune 9.10, „Nucleul”).
Consultați Secțiune 12.9, „Crearea pachetului Debian” pentru informații generale despre împachetare.
Instalarea debsums permite verificarea fișierelor
pachetelor instalate în raport cu valorile MD5sum din fișierul
„/var/lib/dpkg/info/*.md5sums” cu
debsums(1). Consultați Secțiune 10.3.5, „Suma de control MD5”
pentru a afla cum funcționează MD5sum.
|
Notă |
|---|---|
|
Deoarece baza de date MD5sum poate fi modificată de către intrus,
|
Mulți utilizatori preferă să urmeze versiunile de testare „testing” (sau instabile „unstable”) ale sistemului Debian pentru noile sale caracteristici și pachete. Acest lucru face ca sistemul să fie mai predispus la erori critice ale pachetelor.
Instalarea pachetului apt-listbugs vă protejează sistemul
împotriva erorilor critice, verificând automat Debian BTS pentru erori
critice atunci când actualizați cu sistemul APT.
Instalarea pachetului apt-listchanges oferă știri
importante din „NEWS.Debian” atunci când se efectuează
actualizarea cu sistemul APT.
Deși vizitarea sitului Debian https://packages.debian.org/ facilitează în prezent căutarea ușoară a metadatelor pachetelor, să analizăm câteva metode mai tradiționale.
Comenzile grep-dctrl(1),
grep-status(1) și grep-available(1)
pot fi utilizate pentru a căuta orice fișier care are formatul general al
unui fișier de control al pachetului Debian.
„dpkg -S model_nume-fișier” poate fi
utilizat pentru a căuta numele pachetelor care conțin fișiere cu numele
corespunzător instalate de dpkg. Dar acest lucru ignoră
fișierele create de scripturile administratorului.
Dacă trebuie să efectuați o căutare mai detaliată în metadatele dpkg,
trebuie să rulați comanda «grep -e model_expresie-regulată
*» în directorul „/var/lib/dpkg/info/”.
Astfel, veți căuta cuvintele menționate în scripturile pachetului și în
textele de interogare ale instalării.
Dacă doriți să căutați recursiv dependențele pachetelor, trebuie să
utilizați apt-rdepends(8).
Să învățăm cum funcționează sistemul de gestionare a pachetelor Debian la nivel intern. Acest lucru ar trebui să vă ajute să creați propria soluție pentru unele probleme legate de pachete.
Fișierele cu metadate pentru fiecare distribuție sunt stocate în
„dist/codename” pe fiecare sit
oglindă Debian, de exemplu
„http://deb.debian.org/debian/”. Structura arhivei poate
fi răsfoită cu ajutorul navigatorului web. Există 6 tipuri de metadate
cheie.
Tabel 2.14. Conținutul metadatelor arhivei Debian
| fișier | locație | conținut |
|---|---|---|
Release |
partea superioară a distribuției | descrierea arhivei și informații privind integritatea |
Release.gpg |
partea superioară a distribuției | fișierul de semnătură pentru fișierul „Release” semnat cu
cheia arhivei |
Contents-architecture |
partea superioară a distribuției | lista tuturor fișierelor pentru toate pachetele din arhiva relevantă |
Release |
partea superioară a fiecărei combinații distribuție/secțiune/arhitectură | descrierea arhivei utilizată pentru regula
apt_preferences(5) |
Packages |
partea superioară a fiecărei combinații distribuție/secțiune/arhitectură binară | debian/control concatenat pentru pachetele binare |
Sources |
partea superioară a fiecărei combinații distribuție/secțiune/sursă | debian/control concatenat pentru pachetele sursă |
În arhiva recentă, aceste metadate sunt stocate sub formă de fișiere comprimate și diferențiale pentru a reduce traficul de rețea.
|
Indicație |
|---|---|
|
Fișierul de nivel superior „ |
Fiecare suită din arhiva Debian are un fișier de nivel superior
„Release”, de exemplu
„http://deb.debian.org/debian/dists/unstable/Release”,
după cum urmează.
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ...
|
Notă |
|---|---|
|
Aici puteți găsi motivele pentru care folosesc termenii „suită” și „nume în cod” în Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian”. Termenul „distribuție” este folosit atunci când se face referire atât la „suită”, cât și la „numele în cod”. Toate numele „secțiunilor” oferite de arhivă sunt listate la „Componente”. |
Integritatea fișierului de nivel superior „Release” este
verificată de infrastructura criptografică numită secure apt (apt securizat), așa cum este descrisă
în apt-secure(8).
Fișierul cu semnătura criptografică „Release.gpg” este
creat din fișierul autentic de nivel superior „Release”
și cheia secretă a arhivei Debian.
Cheile publice ale arhivei Debian sunt instalate local de cel mai recent
pachet debian-archive-keyring.
Sistemul secure APT verifică automat
integritatea fișierului de nivel superior „Release”
descărcat, prin criptare, cu ajutorul fișierului
„Release.gpg” și al cheilor publice ale arhivei Debian
instalate local.
Integritatea tuturor fișierelor „Packages” și
„Sources” este verificată utilizând valorile MD5sum din
fișierul de nivel superior „Release”. Integritatea
tuturor fișierelor pachetului este verificată utilizând valorile MD5sum din
fișierele „Packages” și „Sources”.
Consultați debsums(1) și Secțiune 2.4.2, „Verificarea fișierelor pachetului instalat”.
Deoarece verificarea semnăturii criptografice este un proces mult mai intens
pentru CPU decât calcularea valorii MD5sum, utilizarea valorii MD5sum pentru
fiecare pachet în timp ce se utilizează semnătura criptografică pentru
fișierul de nivel superior „Release” oferă o bună securitate cu
performanță (a se vedea Secțiune 10.3, „Infrastructura de securitate a datelor”).
Dacă intrarea listei sursă specifică
opțiunea „signed-by”, integritatea fișierului
„Release” de nivel superior descărcat este verificată
folosind cheia publică specificată. Acest lucru este util atunci când
lista sursă conține arhive non-Debian.
|
Indicație |
|---|---|
|
Utilizarea comenzii |
De asemenea, puteți verifica manual integritatea fișierului
„Release” cu fișierul „Release.gpg” și
cheia publică a arhivei Debian publicată pe ftp-master.debian.org folosind
gpg.
|
Indicație |
|---|---|
|
Fișierele „ |
Există fișiere „Release” la nivel de arhivă pentru toate
locațiile de arhivă specificate de lista
sursă, cum ar fi
„http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release”
sau
„http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release”,
după cum urmează.
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
|
Atenție |
|---|---|
|
Pentru strofa „ |
Pentru unele arhive, cum ar fi experimental și
trixie -backports, care conțin pachete care nu
trebuie instalate automat, există o linie suplimentară, de exemplu,
„http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release”,
după cum urmează.
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Vă rugăm să rețineți că pentru arhivele normale fără „NotAutomatic:
yes”, valoarea implicită a Pin-Priority este 500, în timp ce
pentru arhivele speciale cu „NotAutomatic: yes”, valoarea
implicită a Pin-Priority este 1 (consultați
apt_preferences(5) și Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”).
Când se utilizează instrumentele APT, cum ar fi aptitude,
apt-get, synaptic,
apt-file, auto-apt, …, trebuie să
actualizăm copiile locale ale metadatelor care conțin informațiile din
arhiva Debian. Aceste copii locale au următoarele nume de fișiere
corespunzătoare numelor specificate distribuție,
secțiune și arhitectură din lista surselor (a se vedea Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian”).
„/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_Release”
„/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_Release.gpg”
„/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_secțiunea_binary-arhitectura_Packages”
„/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_secțiunea_source_Sources”
„/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribuția_Contents-arhitectura.gz"
(pentru apt-file)
Primele 4 tipuri de fișiere sunt comune tuturor comenzilor APT relevante și
sunt actualizate din linia de comandă prin „apt-get
update” sau „aptitude update”. Metadatele
„Packages” sunt actualizate dacă „deb”
este specificat în lista de
surse. Metadatele „Sources” sunt actualizate
dacă „deb-src” este specificat în lista de surse.
Metadatele „Packages” și „Sources”
conțin „Filename:” care indică locația fișierului
pachetelor binare și sursă. În prezent, aceste pachete se află în arborele
de directoare „pool/” pentru o tranziție îmbunătățită
între versiuni.
Copiile locale ale metadatelor „Packages” pot fi căutate
interactiv cu ajutorul aptitude. Comanda de căutare
specializată grep-dctrl(1) poate căuta copii locale ale
metadatelor „Packages” și „Sources”.
Copia locală a metadatelor
„Contents-architecture” poate fi
actualizată cu „apt-file update”, iar locația acesteia
este diferită de celelalte 4. Consultați
apt-file(1). (auto-apt utilizează o
locație diferită pentru copia locală a
„Contents-architecture.gz” ca
locație implicită.)
În plus față de metadatele preluate de la distanță, instrumentul APT după
lenny stochează informațiile despre starea instalării
generate local în „/var/lib/apt/extended_states”, care
este utilizat de toate instrumentele APT pentru a urmări toate pachetele
instalate automat.
În plus față de metadatele preluate de la distanță, comanda
aptitude stochează informațiile despre starea instalării
generate local în „/var/lib/aptitude/pkgstates”, care
este utilizat numai de aceasta.
Toate pachetele descărcate de la distanță prin mecanismul APT sunt stocate
în „/var/cache/apt/archives” până când sunt șterse.
Această politică de curățare a fișierelor cache pentru
aptitude poate fi configurată în
„Opțiuni” → „Preferințe” și poate fi
forțată prin meniul „Curăță cache-ul pachetelor” sau
„Curăță fișierele învechite” din
„Acțiuni”.
Fișierele pachetelor Debian au structuri de nume specifice.
Tabel 2.15. Structura numelor pachetelor Debian
| tipul pachetului | structura numelui |
|---|---|
Pachetul binar (cunoscut și sub numele de deb) |
package-name_upstream-version-debian.revision_architecture.deb |
Pachetul binar pentru debian-installer (cunoscut și sub numele de
udeb) |
package-name_upstream-version-debian.revision_architecture.udeb |
| Pachetul sursă (sursă upstream) | package-name_upstream-version-debian.revision.orig.tar.gz |
Pachetul sursă 1.0 (modificări Debian) |
package-name_upstream-version-debian.revision.diff.gz |
Pachetul sursă 3.0 (quilt) (modificări Debian) |
package-name_upstream-version-debian.revision.debian.tar.gz |
| Pachetul sursă (descrierea) | package-name_upstream-version-debian.revision.dsc |
|
Indicație |
|---|---|
|
Aici sunt descrise doar formatele de bază ale pachetelor sursă. Pentru mai
multe informații, consultați |
Tabel 2.16. Caracterele utilizabile pentru fiecare componentă din numele pachetelor Debian
| numele componentei | caractere utilizabile (expresie regulată ERE) | existență |
|---|---|---|
package-name |
[a-z0-9][-a-z0-9.+]+ |
cerut |
epoch: |
[0-9]+: |
opțional |
upstream-version |
[-a-zA-Z0-9.+:]+ |
cerut |
debian.revision |
[a-zA-Z0-9.+~]+ |
opțional |
|
Notă |
|---|---|
|
Puteți verifica ordinea versiunilor pachetelor cu ajutorul comenzii
|
|
Notă |
|---|---|
|
Programul de instalare Debian
«debian-installer» (d-i) utilizează extensia de fișier
|
dpkg(1) este instrumentul de nivel inferior pentru
gestionarea pachetelor Debian. Acesta este foarte puternic și trebuie
utilizat cu precauție.
În timpul instalării pachetului numit
„nume-pachet”,
dpkg îl procesează în următoarea ordine.
Despachetează fișierul deb (echivalentul „ar -x”)
Execută „nume-pachet.preinst”
folosind debconf(1)
Instalează conținutul pachetului în sistem (echivalentul „tar
-x”)
Execută „nume-pachet.postinst”
folosind debconf(1)
Sistemul debconf oferă interacțiune standardizată cu
utilizatorul, cu suport pentru I18N și L10N (Cap. 8, I18N și L10N).
Tabel 2.17. Fișierele importante create de dpkg
| fișier | descrierea conținutului |
|---|---|
/var/lib/dpkg/info/package_name.conffiles |
lista fișierelor de configurare. (modificabile de utilizator) |
/var/lib/dpkg/info/package_name.list |
lista fișierelor și directoarelor instalate de pachet |
/var/lib/dpkg/info/package_name.md5sums |
lista valorilor sumelor de control MD5 pentru fișierele instalate de pachet |
/var/lib/dpkg/info/package_name.preinst |
scriptul pachetului care trebuie rulat înainte de instalarea pachetului |
/var/lib/dpkg/info/package_name.postinst |
scriptul pachetului care trebuie rulat după instalarea pachetului |
/var/lib/dpkg/info/package_name.prerm |
scriptul pachetului care trebuie rulat înainte de eliminarea pachetului |
/var/lib/dpkg/info/package_name.postrm |
scriptul pachetului care trebuie rulat după eliminarea pachetului |
/var/lib/dpkg/info/package_name.config |
scriptul pachetului pentru sistemul debconf |
/var/lib/dpkg/alternatives/package_name |
informațiile alternative utilizate de comanda
update-alternatives |
/var/lib/dpkg/available |
informațiile privind disponibilitatea tuturor pachetelor |
/var/lib/dpkg/diversions |
informațiile de redirecționare utilizate de dpkg(1) și
stabilite de dpkg-divert(8) |
/var/lib/dpkg/statoverride |
informațiile de suprascriere a stării utilizate de
dpkg(1) și stabilite de
dpkg-statoverride(8) |
/var/lib/dpkg/status |
informațiile privind starea tuturor pachetelor |
/var/lib/dpkg/status-old |
copia de rezervă de prima generație a fișierului
„var/lib/dpkg/status” |
/var/backups/dpkg.status* |
copia de rezervă de a doua generație și cele mai vechi ale fișierului
„var/lib/dpkg/status” |
Fișierul „status” este utilizat și de instrumente precum
dpkg(1), „dselect update” și
„apt-get -u dselect-upgrade”.
Comanda de căutare specializată grep-dctrl(1) poate căuta
în copiile locale ale metadatelor „status” și
„available”.
|
Indicație |
|---|---|
|
În mediul debian-installer,
comanda |
Sistemul Debian dispune de un mecanism care permite instalarea fără probleme
a programelor care se suprapun într-o oarecare măsură, folosind
update-alternatives(1). De exemplu, puteți face ca
comanda vi să selecteze rularea vim în
timp ce instalați atât pachetul vim, cât și pachetul
nvi.
$ ls -l $(type -p vi)
lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi
$ sudo update-alternatives --display vi
...
$ sudo update-alternatives --config vi
Selection Command
----------------------------------------------
1 /usr/bin/vim
*+ 2 /usr/bin/nvi
Enter to keep the default[*], or type selection number: 1
Sistemul Debian alternatives păstrează selecția sa sub formă de legături
simbolice în „/etc/alternatives/”. Procesul de selecție
utilizează fișierul corespunzător din
„/var/lib/dpkg/alternatives/”.
Suprascrierile de stare furnizate de
comanda dpkg-statoverride(8) sunt o modalitate de a
indica dpkg(1) să utilizeze un proprietar sau un mod
diferit pentru un fișier atunci când un
pachet este instalat. Dacă se specifică „--update” și
fișierul există, acesta este configurat imediat cu noul proprietar și mod.
|
Atenție |
|---|---|
|
Modificarea directă a proprietarului sau a modului pentru un fișier deținut de pachet folosind comenzile
|
|
Notă |
|---|---|
|
Folosesc aici cuvântul fișier, dar în
realitate acesta poate fi orice obiect al sistemului de fișiere pe care
|
Redirecționările de fișiere furnizate de
comanda dpkg-divert(8) sunt o modalitate de a forța
dpkg(1) să nu instaleze un fișier în locația sa
implicită, ci într-o locație redirecționată. Utilizarea
dpkg-divert este destinată scripturilor de întreținere a
pachetelor. Utilizarea sa ocazională de către administratorul de sistem
este depreciată.
Când rulează un sistem de testare sau
instabil, administratorul trebuie să remedieze situația
de gestionare defectuoasă a pachetelor.
|
Atenție |
|---|---|
|
Unele metode descrise aici sunt acțiuni cu risc ridicat. Ați fost avertizați! |
Dacă un program cu interfață grafică pentru mediul grafic de birou a prezentat instabilitate după o actualizare semnificativă a versiunii din amonte, ar trebui să suspectați o interferență cu fișierele de configurare locale vechi create de acesta. Dacă este stabil sub un cont de utilizator nou creat, această ipoteză este confirmată; (aceasta este o eroare de împachetare și, de obicei, este evitată de către responsabilul Debian al pachetului).
Pentru a restabili stabilitatea, trebuie să mutați fișierele de configurare locale corespunzătoare și să reporniți programul cu interfață grafică. Este posibil să fie necesar să citiți conținutul fișierelor de configurare vechi pentru a recupera informațiile de configurare ulterior. (Nu le ștergeți prea repede.)
Erorile de stocare în cache a datelor pachetului provoacă erori intrigante, cum ar fi „GPG error: ... invalid: BADSIG ..” cu APT.
Trebuie să ștergeți toate datele din cache cu comanda „sudo rm -rf
/var/lib/apt/* ” și să încercați din nou. (Dacă se utilizează
apt-cacher-ng, trebuie să executați și comanda
„sudo rm -rf /var/cache/apt-cacher-ng/* ”.)
Deoarece dpkg este un instrument de pachete de nivel
foarte scăzut, acesta poate funcționa fără conexiune la rețea.
Să presupunem că pachetul foo era deteriorat și trebuie
reparat.
Este posibil să găsiți încă copii cache ale versiunii mai vechi, fără erori,
a pachetului foo în directorul cache al pachetului:
„/var/cache/apt/archives/”. (Dacă nu, îl puteți descărca
din arhiva https://snapshot.debian.org/ sau îl
puteți copia din cache-ul pachetelor unei mașini funcționale.)
Dacă puteți porni sistemul, îl puteți instala folosind următoarea comandă:
# dpkg -i /path/to/foo_old_version_arch.deb
Dacă încercarea de a instala un pachet în acest mod eșuează din cauza unor
încălcări ale dependențelor și trebuie neapărat să faceți acest lucru ca
ultimă soluție, puteți ignora dependențele folosind opțiunile
„--ignore-depends”, „--force-depends”
și alte opțiuni ale dpkg. Dacă faceți acest lucru,
trebuie să depuneți eforturi serioase pentru a restabili dependența
corespunzătoare ulterior. Consultați dpkg(8) pentru
detalii.
|
Notă |
|---|---|
|
Dacă sistemul dvs. este grav defect, ar trebui să faceți o copie de rezervă completă a sistemului într-un loc sigur (consultați Secțiune 10.2, „Copia de rezervă și recuperarea”) și să efectuați o instalare curată. Aceasta consumă mai puțin timp și produce rezultate mai bune în final. |
|
Indicație |
|---|---|
|
Dacă defecțiunea sistemului este minoră, puteți alternativ să faceți retrogradarea întregului sistem ca în Secțiune 2.7.11, „Retrogradarea de urgență” folosind sistemul APT de nivel superior. |
Dacă forțați instalarea unui pachet prin „sudo dpkg -i
...” într-un sistem în care nu sunt instalate toate pachetele
dependente, instalarea pachetului va eșua, fiind instalat parțial.
Trebuie să instalați toate pachetele dependente utilizând în mod repetat
«sudo dpkg -i ...» sau utilizând:
# apt --fix-broken install
Apoi, configurați toate pachetele instalate parțial cu următoarea comandă.
# dpkg --configure -a
Sistemele de gestionare a pachetelor la nivel de arhivă, precum
aptitude(8) sau apt-get(1), nici măcar
nu încearcă să instaleze pachete cu fișiere suprapuse utilizând dependențele
pachetelor (a se vedea Secțiune 2.1.7, „Dependențele pachetelor”).
Erorile comise de responsabilul cu întreținerea pachetului sau implementarea
unor surse de arhive mixte inconsistente (a se vedea Secțiune 2.7.6, „Pachete din surse mixte de arhive fără apt-pinning”) de către
administratorul de sistem pot crea o situație în care dependențele
pachetului sunt definite incorect. Când instalați un pachet cu fișiere
suprapuse folosind aptitude(8) sau
apt-get(1) într-o astfel de situație,
dpkg(1), care despachetează pachetul, se asigură că
returnează o eroare programului care l-a apelat, fără a suprascrie fișierele
existente.
|
Atenție |
|---|---|
|
Utilizarea pachetelor terțe introduce riscuri semnificative pentru sistem
prin intermediul scripturilor responsabilului cu întreținerea pachetului
care sunt rulate cu privilegii de root și pot face orice în sistemul
dvs. Comanda |
Puteți remedia o astfel de instalare defectuoasă eliminând mai întâi
pachetul vechi care cauzează problema,
pachetul-vechi.
$ sudo dpkg -P old-package
Când o comandă din scriptul pachetului returnează o eroare din anumite motive și scriptul se închide cu o eroare, sistemul de gestionare a pachetelor întrerupe acțiunea și pachetele rămân parțial instalate. Când un pachet conține erori în scripturile sale de eliminare, pachetul poate deveni imposibil de eliminat și destul de neplăcut.
Pentru problema scriptului pachetului
„nume-pachet”, ar trebui să
consultați următoarele scripturi ale pachetului.
„/var/lib/dpkg/info/nume-pachet.preinst”
„/var/lib/dpkg/info/nume-pachet.postinst”
„/var/lib/dpkg/info/nume-pachet.prerm”
„/var/lib/dpkg/info/nume-pachet.postrm”
Editați scriptul pachetului problematic din directorul rădăcină folosind următoarele tehnici:
dezactivați linia problematică precedând-o cu „#”
forțați returnarea succesului prin adăugarea la linia problematică a
„|| true”
Apoi, configurați toate pachetele instalate parțial cu următoarea comandă.
# dpkg --configure -a
Dacă „/var/lib/dpkg/status” se corupe din orice motiv,
sistemul Debian pierde datele de selecție a pachetelor și suferă grav.
Căutați vechiul fișier „/var/lib/dpkg/status” în
„/var/lib/dpkg/status-old” sau
„/var/backups/dpkg.status.*”.
Păstrarea „/var/backups/” într-o partiție separată poate
fi o idee bună, deoarece acest director conține multe date importante ale
sistemului.
În cazul unei defecțiuni grave, recomand să reinstalați sistemul după ce ați
făcut o copie de rezervă a acestuia. Chiar dacă totul din
„/var/” a dispărut, puteți recupera unele informații din
directoarele din „/usr/share/doc/” pentru a vă ghida în
noua instalare.
Reinstalați sistemul minimal (mediul de birou).
# mkdir -p /path/to/old/system
Montați sistemul vechi la „/path/to/old/system/ -
(/ruta/către/sistemul/vechi/)”.
# cd /path/to/old/system/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
Apoi vi se prezintă numele pachetelor care trebuie instalate. (Pot exista
și unele nume care nu sunt ale pachetelor, cum ar fi
„texmf”.)
Pentru simplitate, exemplele listei
surselor din această secțiune sunt prezentate ca
„/etc/apt/sources.list” într-un stil pe o singură linie
după versiunea trixie.
Deși numele responsabilului cu întreținerea pachetului listat în
„/var/lib/dpkg/available” și
„/usr/share/doc/package_name/changelog” oferă unele
informații despre „cine se află în spatele activității de împachetare”,
persoana care a încărcat efectiv pachetul este oarecum necunoscută.
who-uploads(1) din pachetul devscripts
identifică persoana care a încărcat efectiv pachetele sursă Debian.
Dacă doriți să limitați lățimea de bandă de descărcare pentru APT la, de exemplu, 800 Kio/sec (=100 kio/sec), trebuie să configurați APT cu parametrul său de configurare după cum urmează.
APT::Acquire::http::Dl-Limit "800";
Pachetul apt vine cu propriul script cron
„/etc/cron.daily/apt” pentru a sprijini descărcarea
automată a pachetelor. Acest script poate fi îmbunătățit pentru a efectua
actualizarea automată a pachetelor prin instalarea pachetului
unattended-upgrades. Acestea pot fi personalizate prin
parametrii din „/etc/apt/apt.conf.d/02backup” și
„/etc/apt/apt.conf.d/50unattended-upgrades”, așa cum este
descris în „/usr/share/doc/unattended-upgrades/README”.
Pachetul unattended-upgrades este destinat în principal
actualizării de securitate pentru sistemul stabil. Dacă
riscul de a afecta un sistem stabil existent prin
actualizarea automată este mai mic decât riscul ca sistemul să fie afectat
de un intrus care utilizează o breșă de securitate care a fost remediată
prin actualizarea de securitate, ar trebui să luați în considerare
utilizarea acestei actualizări automate cu parametrii de configurare
următori.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
Dacă utilizați un sistem testing sau
unstable, nu este recomandat să utilizați actualizarea
automată, deoarece aceasta va duce cu siguranță la defectarea sistemului
într-o zi. Chiar și în cazul unui astfel de sistem
testing sau unstable, este posibil să
doriți să descărcați pachetele în avans pentru a economisi timp pentru
actualizarea interactivă cu parametrii de configurare, după cum urmează.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
Există actualizări stabile
(„trixie-updates” în timpul ciclului de
lansare trixie -ca-stable)
și arhive backports.debian.org
care oferă pachete de actualizare pentru stable.
Pentru a utiliza aceste arhive, listați toate arhivele necesare în fișierul
„/etc/apt/sources.list” după cum urmează.
deb http://deb.debian.org/debian/ trixie main non-free-firmware contrib non-free deb http://security.debian.org/debian-security trixie-security main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ trixie-backports main non-free-firmware contrib non-free
Nu este necesar să stabiliți explicit valoarea Pin-Priority în fișierul
„/etc/apt/preferences”. Când apar pachete mai noi,
configurația implicită oferă cele mai rezonabile actualizări (consultați
Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”).
Toate pachetele vechi instalate sunt actualizate la versiuni mai noi din
trixie-updates.
Numai pachetele mai vechi instalate manual din
trixie-backports sunt actualizate la versiuni
mai noi din trixie-backports.
Ori de câte ori doriți să instalați manual un pachet numit
„nume-pachet” cu dependența sa din
arhiva trixie-backports, utilizați următoarea
comandă în timp ce comutați versiunea țintă cu opțiunea
„-t”.
$ sudo apt-get install -t trixie-backports package-name
|
Avertisment |
|---|---|
|
Nu instalați prea multe pachete din arhivele backports.debian.org. Acest lucru poate cauza complicații legate de dependențele pachetelor. Consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii” pentru soluții alternative. |
|
Avertisment |
|---|---|
|
Trebuie să știți că pachetul extern obține privilegii de root asupra sistemului dvs. Trebuie să utilizați numai arhiva de pachete externe de încredere. Consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii” pentru soluții alternative. |
Puteți utiliza APT securizat cu arhiva de pachete externe compatibilă cu
Debian adăugând-o la lista de surse și
fișierul cheie al arhivei în directorul
„/etc/apt/trusted.gpg.d/”. Consultați
sources.list(5), apt-secure(8) și
apt-key(8).
|
Atenție |
|---|---|
|
Instalarea pachetelor din surse mixte de arhive nu este acceptată de
distribuția oficială Debian, cu excepția combinațiilor de arhive acceptate
oficial, cum ar fi |
Iată un exemplu de operații pentru a include pachete specifice din versiuni
upstream mai noi găsite în unstable în timp ce se
urmărește testing pentru o singură ocazie.
Modificați temporar fișierul „/etc/apt/sources.list”
pentru a include o singură intrare „unstable”.
Rulați „aptitude update”.
Rulați „aptitude install
nume-pachet”.
Recuperați fișierul original „/etc/apt/sources.list”
pentru testing .
Rulați „aptitude update”.
Nu creați fișierul „/etc/apt/preferences” și nici nu
trebuie să vă faceți griji cu privire la apt-pinning cu această abordare manuală. Dar acest
lucru este foarte greoi.
|
Atenție |
|---|---|
|
Când utilizați surse mixte de arhive, trebuie să vă asigurați singuri de compatibilitatea pachetelor, deoarece Debian nu o garantează. Dacă există incompatibilități între pachete, puteți deteriora sistemul. Trebuie să fiți capabili să evaluați aceste cerințe tehnice. Utilizarea surselor mixte de arhive aleatorii este o operație complet opțională și nu vă încurajez să o utilizați. |
Regulile generale pentru instalarea pachetelor din diferite arhive sunt următoarele.
Pachetele non-binare („Architecture: all”) sunt mai sigure de instalat.
pachete de documentație: fără cerințe speciale
pachete de programe interpret: trebuie să fie disponibil un interpret compatibil
Pachetele binare (care nu sunt „Architecture: all”) se
confruntă de obicei cu multe obstacole și sunt nesigure de instalat.
|
Notă |
|---|---|
|
Pentru a face un pachet mai sigur de instalat, unele pachete comerciale de programe binare ne-libere pot fi furnizate cu biblioteci complet legate static. Ar trebui totuși să verificați problemele de compatibilitate ABI etc. pentru acestea. |
|
Notă |
|---|---|
|
Cu excepția cazului în care doriți să evitați deteriorarea pachetului pe termen scurt, instalarea pachetelor binare din arhive non-Debian este, în general, o idee proastă. Ar trebui să căutați toate soluțiile tehnice alternative mai sigure disponibile, care sunt compatibile cu sistemul Debian actual (consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii”). |
|
Avertisment |
|---|---|
|
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar. |
Fără fișierul „/etc/apt/preferences”, sistemul APT alege
cea mai recentă versiune disponibilă ca versiune
candidată utilizând șirul de versiune. Aceasta este starea
normală și utilizarea cea mai recomandată a sistemului APT. Toate
combinațiile de arhive acceptate oficial nu necesită fișierul
„/etc/apt/preferences”, deoarece unele arhive care nu ar
trebui utilizate ca sursă automată de actualizări sunt marcate ca NotAutomatic și tratate corespunzător.
|
Indicație |
|---|---|
|
Regula de comparare a șirurilor de versiuni poate fi verificată, de exemplu,
cu „ |
Când instalați regulat pachete din surse mixte de arhive (a se vedea Secțiune 2.7.6, „Pachete din surse mixte de arhive fără apt-pinning”), puteți automatiza
aceste opereții complicate creând fișierul
„/etc/apt/preferences” cu intrările corespunzătoare și
modificând regula de selecție a pachetelor pentru versiunea candidată, așa cum este descris în
apt_preferences(5). Aceasta se numește apt-pinning.
Când utilizați apt-pinning, trebuie să vă asigurați singuri de compatibilitatea pachetelor, deoarece Debian nu o garantează. apt-pinning este o operație complet opțională și nu vă încurajez să o utilizați.
Fișierele Release la nivel de arhivă (vedeți Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”) sunt utilizate pentru regula
apt_preferences(5). Astfel, apt-pinning funcționează numai cu numele „suitei”
pentru arhivele Debian normale
și arhivele Debian de
securitate. (Acest lucru este diferit de arhivele Ubuntu.) De exemplu, puteți face „Pin:
release a=unstable”, dar nu puteți face „Pin: release
a=sid” în fișierul „/etc/apt/preferences”.
Când utilizați arhive non-Debian ca parte a apt-pinning, trebuie să verificați pentru ce sunt destinate și să verificați credibilitatea acestora. De exemplu, Ubuntu și Debian nu sunt destinate a fi combinate.
|
Notă |
|---|---|
|
Chiar dacă nu creați fișierul „ |
Iată o explicație simplificată a tehnicii apt-pinning.
Sistemul APT alege pachetul cu cea mai mare prioritate Pin upgrading din sursele de pachete disponibile
definite în fișierul „/etc/apt/sources.list” ca pachet
candidat. Dacă prioritatea Pin a
pachetului este mai mare de 1000, această restricție de versiune pentru
actualizare este eliminată pentru a
permite retrogradarea (vedeți Secțiune 2.7.11, „Retrogradarea de urgență”).
Valoarea „Pin-Priority” a fiecărui pachet este definită de intrările
„Pin-Priority” din fișierul „/etc/apt/preferences” sau se
utilizează valoarea implicită a acestuia.
Tabel 2.18. Lista valorilor notabile (celor mai importante) ale priorității Pin pentru tehnica apt-pinning.
| Pin-Priority | efectele apt-pinning asupra pachetului |
|---|---|
| 1001 | instalează pachetul, chiar dacă acest lucru constituie o retrogradare a pachetului |
| 990 | utilizată ca valoare implicită pentru arhiva versiunii țintă |
| 500 | utilizată ca valoare implicită pentru arhiva normală |
| 100 | utilizată ca valoare implicită pentru arhiva NotAutomatic și ButAutomaticUpgrades |
| 100 | utilizată pentru pachetul instalat |
| 1 | utilizată ca valoare implicită pentru arhiva NotAutomatic |
| -1 | nu instalează niciodată pachetul, chiar dacă este recomandat |
Arhiva versiune țintă poate fi definită
prin opțiunea liniei de comandă, de exemplu, „apt-get install -t
testing anumit-pachet”
Arhiva NotAutomatic și ButAutomaticUpgrades este definită de serverul
arhivei care are fișierul Release al nivelului arhivei (a se vedea Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”) conținând atât
„NotAutomatic: yes” și „ButAutomaticUpgrades:
yes”. Arhiva NotAutomatic este
definită de serverul de arhivă care are fișierul Release la nivel de arhivă
conținând doar „NotAutomatic: yes”.
Situația apt-pinning a
pachetului din mai multe surse de arhivă este afișată
prin „apt-cache policy pachet”.
O linie care începe cu „Package pin:” listează versiunea
pachetului pin dacă este definită doar
asocierea cu un pachet, de exemplu „Package
pin: 0.190”.
Nu există nicio linie cu „Package pin:” dacă nu este
definită nicio asociere doar cu un pachet.
Valoarea Pin-Priority asociată doar cu pachetul este
listată în partea dreaptă a tuturor șirurilor de versiune, de exemplu,
„0.181 700”.
„0” este afișat în partea dreaptă a tuturor șirurilor de
versiune dacă nu este definită nicio asociere doar cu
pachetul, de exemplu, „0.181 0”.
Valorile Pin-Priority ale arhivelor (definite ca „Package:
*” în fișierul „/etc/apt/preferences”) sunt
listate în partea stângă a tuturor rutelor de arhivă, de exemplu,
„100 http://deb.debian.org/debian/ trixie-backports/main
Packages”.
|
Avertisment |
|---|---|
|
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar. |
Dacă nu doriți să descărcați automat anumite pachete recomandate, trebuie să
creați fișierul „/etc/apt/preferences” și să listați în
mod explicit toate aceste pachete în partea de sus a acestuia, după cum
urmează.
Package: package-1 Pin: version * Pin-Priority: -1 Package: package-2 Pin: version * Pin-Priority: -1
|
Avertisment |
|---|---|
|
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar. |
Iată un exemplu de tehnică apt-pinning
pentru a include pachete specifice mai noi din versiunea upstream găsite în
unstable actualizate regulat în timp ce se urmărește
testing. Enumerați toate arhivele necesare în fișierul
„/etc/apt/sources.list” după cum urmează.
deb http://deb.debian.org/debian/ testing main contrib non-free deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/debian-security testing-security main contrib
Configurați fișierul „/etc/apt/preferences” după cum
urmează.
Package: * Pin: release a=unstable Pin-Priority: 100
Când doriți să instalați un pachet numit
„nume-pachet” cu dependențele sale
din arhiva unstable în această configurație, executați
următoarea comandă care comută versiunea țintă cu opțiunea
„-t” (prioritatea Pin a unstable
devine 990).
$ sudo apt-get install -t unstable package-name
Cu această configurație, executarea obișnuită a „apt-get
upgrade” și „apt-get dist-upgrade” (sau
„aptitude safe-upgrade” și „aptitude
full-upgrade”) actualizează pachetele care au fost instalate din
arhiva testing utilizând arhiva
testing curentă și pachetele care au fost instalate din
arhiva unstable utilizând arhiva
unstable curentă.
|
Atenție |
|---|---|
|
Aveți grijă să nu ștergeți intrarea „ |
|
Indicație |
|---|---|
|
De obicei, editez fișierul „ |
|
Indicație |
|---|---|
|
Dacă se utilizează „ |
Dacă doriți să urmăriți automat anumite pachete din
unstable fără instalarea inițială „-t
unstable”, trebuie să creați fișierul
„/etc/apt/preferences” și să enumerați în mod explicit
toate aceste pachete în partea de sus a acestuia, după cum urmează.
Package: package-1 Pin: release a=unstable Pin-Priority: 700 Package: package-2 Pin: release a=unstable Pin-Priority: 700
Acestea stabilesc valoarea Pin-Priority pentru fiecare pachet specific. De
exemplu, pentru a urmări cea mai recentă versiune
unstable a acestei „Referințe Debian” în limba engleză,
ar trebui să aveți următoarele intrări în fișierul
„/etc/apt/preferences”.
Package: debian-reference-en Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700
|
Indicație |
|---|---|
|
Această tehnică apt-pinning este valabilă
chiar și atunci când urmăriți arhiva |
|
Avertisment |
|---|---|
|
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar. |
Iată un alt exemplu de tehnică apt-pinning pentru a include pachete specifice mai
noi din versiunea upstream găsite în experimental în timp
ce se urmărește unstable. Enumerați toate arhivele
necesare în fișierul „/etc/apt/sources.list” după cum
urmează.
deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://deb.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing-security main contrib
Valoarea implicită a Pin-Priority pentru arhiva
experimental este întotdeauna 1 (<<100), deoarece
este o arhivă NotAutomatic (a se vedea
Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”). Nu este necesar să
stabiliți explicit valoarea Pin-Priority în fișierul
„/etc/apt/preferences” doar pentru a utiliza arhiva
experimental, cu excepția cazului în care doriți să
urmăriți automat anumite pachete din aceasta pentru următoarea actualizare.
|
Avertisment |
|---|---|
|
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar. |
|
Atenție |
|---|---|
|
Retrogradarea nu este acceptată oficial de Debian. Ar trebui să fie făcută doar ca parte a procesului de recuperare de urgență. În ciuda acestei situații, se știe că funcționează bine în multe cazuri. Pentru sistemele critice, ar trebui să faceți o copie de rezervă a tuturor datelor importante din sistem după operația de recuperare și să reinstalați sistemul nou de la zero. |
Puteți avea norocul să faceți retrogradarea de la arhiva mai nouă la arhiva
mai veche pentru a recupera din actualizarea defectuoasă a sistemului prin
manipularea versiunii candidate (vezi
Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”). Aceasta este o alternativă
mai ușoară la acțiunile obositoare ale multor comenzi „dpkg -i
pachet-defect_versiune-veche.deb”
(a se vedea Secțiune 2.6.3, „Recuperarea cu comanda dpkg”).
Căutați în fișierul „/etc/apt/sources.list” liniile care
conțin unstable, după cum urmează.
deb http://deb.debian.org/debian/ sid main contrib non-free
Înlocuiți-le cu următorul text pentru a urmări suita
testing (de testare).
deb http://deb.debian.org/debian/ forky main contrib non-free
Configurați fișierul „/etc/apt/preferences” după cum
urmează.
Package: * Pin: release a=testing Pin-Priority: 1010
Rulați „apt-get update; apt-get dist-upgrade” pentru a
forța retrogradarea pachetelor din întregul sistem.
Eliminați acest fișier special „/etc/apt/preferences”
după această retrogradare de urgență.
|
Indicație |
|---|---|
|
Este o idee bună să eliminați (nu să ștergeți!) cât mai multe pachete pentru a minimiza problemele de dependență. Este posibil să fie necesar să eliminați și să instalați manual unele pachete pentru a retrograda sistemul. Nucleul Linux, încărcătorul de pornire, udev, PAM, APT și pachetele legate de rețea, precum și fișierele lor de configurare necesită o atenție specială. |
Dacă doriți să compilați un program din sursă pentru a înlocui pachetul
Debian, cel mai bine este să îl transformați într-un pachet „debianizat”
local real (*.deb) și să utilizați arhiva privată.
Dacă ați ales să compilați un program din sursă și să îl instalați în
„/usr/local”, este posibil să fie necesar să utilizați
equivs ca ultimă soluție pentru a satisface dependența
pachetului lipsă.
Package: equivs Priority: optional Section: admin Description: Circumventing Debian package dependencies This package provides a tool to create trivial Debian packages. Typically these packages contain only dependency information, but they can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . Another use is to circumvent dependency checking: by letting dpkg think a particular package name and version is installed when it isn't, you can work around bugs in other packages' dependencies. (Please do still file such bugs, though.)
|
Atenție |
|---|---|
|
Nu există nicio garanție că procedura descrisă aici va funcționa fără eforturi manuale suplimentare din cauza diferențelor dintre sisteme. |
Pentru actualizări parțiale ale sistemului stabil, este
recomandabil să se reconstruiască un pachet în mediul său utilizând pachetul
sursă. Astfel se evită actualizări masive ale pachetelor din cauza
dependențelor acestora.
Adăugați următoarele intrări în „/etc/apt/sources.list”
al unui sistem stabil.
deb-src http://deb.debian.org/debian unstable main contrib non-free
Instalați pachetele necesare pentru compilare și descărcați pachetul sursă după cum urmează.
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential # apt-get build-dep foo $ apt-get source foo $ cd foo*
Actualizați unele pachete din lanțul de instrumente, cum ar fi
dpkg și debhelper din pachetele
retro-adaptate „backport”, dacă acestea sunt necesare pentru retro-adatare
„backporting”.
Executați următoarele.
$ dch -i
Incrementați versiunea pachetului, de exemplu, adăugând
„+bp1” în „debian/changelog”
Construiți pachetele și instalați-le în sistem după cum urmează.
$ debuild $ cd .. # debi foo*.changes
Deoarece oglindirea întregii subsecțiuni a arhivei Debian consumă spațiu pe
disc și lățime de bandă de rețea, implementarea unui server proxy local
pentru APT este de dorit atunci când administrați mai multe sisteme într-o
rețea locală LAN. APT poate fi configurat pentru
a utiliza servere proxy web (http) generice, cum ar fi
squid (consultați Secțiune 6.5, „Alte servere de aplicații de rețea”), așa cum este descris în
apt.conf(5) și în
„/usr/share/doc/apt/examples/configure-index.gz”.
Variabila de mediu „$http_proxy” poate fi utilizată
pentru a suprascrie configurația serverului proxy din fișierul
„/etc/apt/apt.conf”.
Există instrumente proxy special pentru arhiva Debian. Ar trebui să verificați BTS înainte de a le utiliza.
Tabel 2.19. Lista instrumentelor proxy special pentru arhiva Debian
| pachet | popcon(popularitate) | dimensiune | descriere |
|---|---|---|---|
apt-cacher
|
V:0.36, I:0.43 | 267 | proxy cache pentru pachetele Debian și fișierele sursă (program Perl) |
apt-cacher-ng
|
V:4.1, I:4.3 | 1968 | proxy cache pentru distribuirea pachetelor software (program compilat în C++) |
|
Atenție |
|---|---|
|
Când Debian își reorganizează structura arhivei, aceste instrumente proxy specializate tind să necesite rescrierea codului de către administratorul pachetului și pot să nu funcționeze pentru o perioadă. Pe de altă parte, serverele proxy web (http) generice sunt mai robuste și mai ușor de adaptat la astfel de schimbări. |
Puteți afla mai multe despre gestionarea pachetelor din următoarele documentații.
Documentație primară privind gestionarea pachetelor:
aptitude(8), dpkg(1),
tasksel(8), apt(8),
apt-get(8), apt-config(8),
apt-secure(8), sources.list(5),
apt.conf(5), și apt_preferences(5);
„/usr/share/doc/apt-doc/guide.html/index.html” și
„/usr/share/doc/apt-doc/offline.html/index.html” din
pachetul apt-doc; și
„/usr/share/doc/aptitude/html/en/index.html” din pachetul
aptitude-doc-en.
Documentație oficială și detaliată despre arhiva Debian:
Tutorial pentru crearea unui pachet Debian pentru utilizatorii Debian: