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:
- samodejno: nastavi paket kot samodejno nameščen
- zadrži: zadrži trenutno različico paketa
- manual: nastavite paket kot ročno nameščen
- showauto: prikaže samodejno nameščene pakete
- showmanual: prikaže ročno nameščene pakete
- showhold: navedite pakete, ki so na čakanju
- unhold: odstranite zastavico zadrževanja za dani paket
Če želite seznam vseh ročno nameščenih paketov, izdajte ta ukaz:
$ apt-mark showmanualabiword
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 mcmc nastavljen na čakanje
#
V podkomandi 'showhold' so navedeni paketi, ki so na čakanju (v našem primeru je to samo paket 'mc'):
# apt-mark showholdmc
#
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 Odvisnogconf-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 OdvisnoOdvisno: 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 xpdfxpdf
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 xpdfxpdf
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 xpdfBranje 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.pngNa 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 xpdfxpdf
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 checkBranje 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
- Axel Beckert, Frank Hofmann: Das Debian-Paketmanagement-Buch, https: // www.dpmb.org /