Debian

Odvisnosti paketa Debian

Odvisnosti paketa Debian
Za distribucije Linuxa, kot je Debian GNU / Linux, obstaja več kot 60.000 različnih programskih paketov. Vsi imajo posebno vlogo. V tem članku pojasnjujemo, kako upravljanje paketov zanesljivo upravlja s tem velikim številom programskih paketov med namestitvijo, posodobitvijo ali odstranitvijo, da bo vaš sistem deloval in bil popolnoma stabilen.

Za Debian GNU / Linux se to nanaša na orodja apt, apt-get, aptitude, apt-cache, apt-odvisni, apt-rdepends, dpkg-deb in apt-mark.

Razpoložljivost programskih paketov

Kot že rečeno, distribucijo Linuxa sestavljajo številni različni programski paketi. Danes je programska oprema precej zapletena in zato je običajno deliti programsko opremo na več posameznih paketov. Te pakete je mogoče razvrstiti po funkcionalnosti ali vlogi, kot so binarni paketi, knjižnice, dokumentacija, primeri uporabe, kot tudi zbirke, specifične za jezik, in zagotavljajo samo izbrani del programske opreme. Zanj ni določenega pravila, delitev pa opravi bodisi razvojna skupina orodja bodisi vzdrževalec paketov, ki skrbi za programski paket za vašo distribucijo Linuxa. Na sliki 1 so z uporabo aptitude navedeni paketi, ki vsebujejo prevode za različne jezike spletnega brskalnika Mozilla Firefox.

Slika 1: aptitude-firefox.png

Takšen način dela omogoča, da lahko vsak paket vzdržuje drug razvijalec ali celotna ekipa. Poleg tega delitev na posamezne komponente omogoča, da jo drugi programski paketi uporabljajo tudi za svoje namene. Zahtevano funkcionalnost je mogoče uporabiti in je ni treba znova izumiti.

Organizacija paketov

Orodja za upravljanje paketov v distribuciji Debian GNU / Linux nenehno skrbijo za popolno izpolnitev odvisnosti nameščenih paketov. To še posebej velja, če naj bi bil programski paket nameščen, posodobljen ali izbrisan v vašem sistemu ali iz njega. Manjkajoči paketi se dodajo v sistem ali pa se nameščeni paketi odstranijo iz sistema, če niso več potrebni. Slika 2 to prikazuje za odstranitev paketa 'mc-data' z uporabo 'apt-get'. Paket 'mc-data' priporoča, da se samodejno odstrani tudi paket 'mc', ker ni več smiselno, da se namesti brez 'mc-data'.

Slika 2: apt-get-remove-mc.png

Oznake in zastave na paketu

Pri svojem delu orodja za upravljanje paketov spoštujejo zastave in oznake paketa, ki so nastavljene. Nastavijo se samodejno ali pa jih sistemski skrbnik nastavi ročno. Še posebej se to vedenje nanaša na zastavico "bistveni paket", ki je nastavljena za pakete, ki jih ne bi smeli odstraniti. Preden izdate jasno opozorilo (glejte sliko 3).

Slika 3: apt-get-remove.png

Upoštevane so tudi tri oznake "samodejno", "ročno" in "zadrži". Paket označijo kot samodejno nameščen, ročno nameščen ali se ga ne sme posodabljati (zadrži trenutno različico). Programski paket je označen z "samodejno" ali "ročno", ne pa oboje.

Med drugim ukaz 'apt-mark' obdeluje oznake in zastave z uporabo naslednjih podkomand:

Če želite seznam vseh ročno nameščenih paketov, izdajte ta ukaz:

$ apt-mark showmanual
abiword
abs-vodnik
ack-grep
acl
acpi
..
$

Če želite obdržati različico paketa, uporabite podkomando 'zadrži'. Spodnji primer to prikazuje za paket 'mc'.

# apt-mark hold mc
mc nastavljen na čakanje
#

V podkomandi 'showhold' so navedeni paketi, ki so na čakanju (v našem primeru je to samo paket 'mc'):

# apt-mark showhold
mc
#

Z alternativno metodo z naslovom "apt pinning" so paketi razvrščeni po prednostnih nalogah. Apt jih uporablja, da se odloči, kako ravnati s tem programskim paketom in različicami, ki so na voljo v repozitoriju programske opreme.

Opis paketa

Z alternativno metodo z naslovom "apt pinning" so paketi razvrščeni po prednostnih nalogah. Apt jih uporablja, da se odloči, kako ravnati s tem programskim paketom in različicami, ki so na voljo v repozitoriju programske opreme.

Vsak programski paket ima svoj opis paketa, ki je standardiziran. Med drugimi polji ta opis izrecno določa, od katerega nadaljnjega paketa je odvisen. Orodja za distribucijo te podatke izvlečejo iz opisa paketa ter nato izračunajo in vizualizirajo odvisnosti. Naslednji primer uporablja ukaz 'apt-cache show', da prikaže opis paketa 'poppler-utils' (glej sliko 4).

Slika 4: opis-paketa-poppler-utils.png

Opis paketa vsebuje odsek z naslovom "Odvisno". V tem razdelku so navedeni drugi programski paketi in številka različice, od katerih je odvisen trenutni paket. Na sliki 4 je ta odsek uokvirjen z rdečo in prikazuje, da je "poppler-utils" odvisen od paketov "libpoppler64", "libc6", "libcairo2", "libfreetype6", "liblcms2-2", "libstdc ++ 6" in 'zlib1g'.

Pokaži odvisnosti paketa

Branje opisa paketa je težji način za ugotovitev odvisnosti paketa. Nato vam bomo pokazali, kako to poenostaviti.

Obstaja več načinov za prikaz odvisnosti paketa v ukazni vrstici. Za paket deb kot lokalno datoteko uporabite ukaz 'dpkg-deb' z dvema parametroma - imenom datoteke paketa in ključno besedo 'Odvisno'. Spodnji primer to dokazuje za paket 'skypeforlinux-64.deb ':

$ dpkg-deb -f Prenosi / skypeforlinux-64.deb Odvisno
gconf-service, libasound2 (> = 1.0.16), libatk1.0-0 (> = 1.12.4), libc6 (> = 2.17),
libcairo2 (> = 1.2.4), libcups2 (> = 1.4.0), libexpat1 (> = 2.0.1),
libfreetype6 (> = 2.4.2), libgcc1 (> = 1: 4.1.1), libgconf-2-4 (> = 3.2.5),
libgdk-pixbuf2.0-0 (> = 2.22.0), libglib2.0-0 (> = 2.31.8), libgtk2.0-0 (> = 2.24.0),
libnspr4 (> = 2: 4.9-2 ~), libnss3 (> = 2: 3.13.4-2 ~), libpango-1.0-0 (> = 1.14.0),
libpangocairo-1.0-0 (> = 1.14.0), libsecret-1-0 (> = 0.7), libv4l-0 (> = 0.5.0),
libx11-6 (> = 2: 1.4.99.1), libx11-xcb1, libxcb1 (> = 1.6), libxcomposite1 (> = 1: 0.3-1),
libxcursor1 (>> 1.1.2), libxdamage1 (> = 1: 1.1), libxext6, libxfixes3,
libxi6 (> = 2: 1.2.99.4), libxrandr2 (> = 2: 1.2.99.3), libxrender1, libxss1,
libxtst6, apt-transport-https, libfontconfig1 (> = 2.11.0), libdbus-1-3 (> = 1.6.18),
libstdc ++ 6 (> = 4.8.1)
$

Če želite storiti enako za nameščeni paket, uporabite 'apt-cache'. Prvi primer združuje podkomando 'show', ki ji sledi ime paketa. Izhod se pošlje ukazu 'grep', ki filtrira vrstico 'Odvisno':

$ apt-cache show xpdf | grep Odvisno
Odvisno: libc6 (> = 2.4), libgcc1 (> = 1: 4.1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$

Ukaz 'grep-status -F package -s Depends xpdf' bo sporočil iste informacije.

Natančneje, drugi primer namesto tega znova uporablja 'apt-cache', vendar s podkomando 'odvisen'. Podkomandi sledi ime paketa:

$ apt-cache je odvisen od xpdf
xpdf
Odvisno: libc6
Odvisno: libgcc1
Odvisno: libpoppler46
Odvisno: libstdc ++ 6
Odvisno: libx11-6
Odvisno: libxm4
Odvisno: libxt6
Priporoča: poppler-utils
poppler-utils: i386
Priporoča: poppler-data
Priporoča: gsfonts-x11
Priporoča: cups-bsd
cups-bsd: i386
Trči z:
Trči z:
Trči z:
Trči z:
Nadomešča:
Nadomešča:
Nadomešča:
Nadomešča:
Trči z: xpdf: i386
$

Zgornji seznam je precej dolg in ga je mogoče skrajšati s stikalom '-i' (okrajšava za '-pomembno'):

$ apt-cache je odvisen -i xpdf
xpdf
Odvisno: libc6
Odvisno: libgcc1
Odvisno: libpoppler46
Odvisno: libstdc ++ 6
Odvisno: libx11-6
Odvisno: libxm4
Odvisno: libxt6
$

Ukaz 'apt-rdepends' naredi enako, vendar z informacijami o različici, če je navedeno v opisu:

$ apt-rdepends xpdf
Branje seznamov paketov ... Končano
Izdelava drevesa odvisnosti
Branje informacij o stanju ... Končano
xpdf
Odvisno: libc6 (> = 2.4)
Odvisno: libgcc1 (> = 1: 4.1.1)
Odvisno: libpoppler46 (> = 0.26.2)
Odvisno: libstdc ++ 6 (> = 4.1.1)
Odvisno: libx11-6
Odvisno: libxm4 (> = 2.3.4)
Odvisno: libxt6
libc6
Odvisno: libgcc1
..
$

Ukaz 'aptitude' deluje tudi s stikali. Za odvisnosti uporabite stikalo '~ R', ki mu sledi ime paketa. Slika 5 prikazuje to za paket 'xpdf'. Črka 'A' v drugem stolpcu izhoda 'aptitude' označuje, da je paket samodejno nameščen.

Slika 5: aptitude-rdepends.png

Odvisnosti paketov so lahko nekoliko zapletene. Morda bo pomagalo prikazati odvisnosti paketov grafično. Uporabite ukaz 'debtree', ki mu sledi ime paketa, da ustvarite grafični prikaz odvisnosti paketa. Orodje 'pika' iz paketa Graphviz opis spremeni na naslednji način:

$ debtree xpdf | dot -Tpng> graf.png

Na sliki 6 vidite ustvarjeno sliko PNG, ki vsebuje graf odvisnosti.

Slika 6: pika.png

Pokažite obratne odvisnosti

Do zdaj smo prikazali, da smo odgovarjali na vprašanje, kateri paketi so potrebni za paket. Obstaja tudi obratno - tako imenovane povratne odvisnosti. Naslednji primeri obravnavajo paket in pakete, ki so od njega odvisni. Primer številka ena uporablja 'apt-cache' s podkomando 'rdepends', kot sledi:

$ apt-cache rdepends xpdf
xpdf
Povratno odvisno:
| oktava-dok
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-lateks
python-scapy
| rubin-tioga
| python-tabele-doc
| strganje strani
| oktava-dok
| muttprint-priročnik
mozplugger
mlpost
libmlpost-ocaml-dev
..
$

Paketi, ki so odvisni od drugih paketov, so označeni s simbolom cevi. Tega paketa ni treba namestiti v sistem, ampak morajo biti navedeni v zbirki podatkov o paketih.

Naslednji primer uporablja 'aptitude' za navajanje paketov, ki se težko sklicujejo na paket 'xpdf' (glej sliko 7).

Slika 7: iskanje sposobnosti.png

Preverite namestitev za manjkajoče pakete

'Apt-get' ponuja podkomando 'check', ki omogoča preverjanje namestitve. Če vidite naslednji izhod, ne manjka noben paket:

# apt-get check
Branje seznamov paketov ... Končano
Izdelava drevesa odvisnosti
Branje informacij o stanju ... Končano
#

Zaključek

Iskanje odvisnosti paketov dobro deluje s pravimi orodji. Pravilna uporaba vam pomaga razumeti, zakaj so nameščeni paketi in kateri morda manjkajo.

Povezave in reference

Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...
Kako zajeti in pretakati svojo igralno sejo v Linuxu
V preteklosti je bilo igranje iger le hobi, sčasoma pa je igralniška industrija zabeležila veliko rast glede tehnologije in števila igralcev. Občinstv...
Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...