Za Debian GNU / Linux ovo se odnosi na alate apt, apt-get, aptitude, apt-cache, apt-ovisi, apt-rdepends, dpkg-deb i apt-mark.
Dostupnost softverskih paketa
Kao što je već gore rečeno, Linux distribucija sastoji se od tona različitih softverskih paketa. Od danas je softver prilično složen i zato je uobičajeno dijeliti softver u nekoliko pojedinačnih paketa. Ti se paketi mogu kategorizirati prema funkcionalnosti ili po ulogama kao što su binarni paketi, knjižnice, dokumentacija, primjeri korištenja kao i zbirke specifične za jezik te pružaju odabrani dio softvera, samo. Za to ne postoji fiksno pravilo, a podjelu vrši ili razvojni tim alata ili održavatelj paketa koji se brine o softverskom paketu za vašu Linux distribuciju. Korištenjem aptitude, slika 1 navodi pakete koji sadrže prijevode za različite jezike web preglednika Mozilla Firefox.
Slika 1: aptitude-firefox.png
Ovakav način rada omogućuje da svaki paket može održavati drugi programer ili cijeli tim. Nadalje, podjela na pojedinačne komponente omogućuje i ostalim softverskim paketima da ga koriste u svoje svrhe. Potrebna funkcionalnost može se primijeniti i ne treba je ponovno izmišljati.
Organizacija paketa
Alati za upravljanje paketima na distribuciji Debian GNU / Linux neprestano vode računa da se u potpunosti zadovolje ovisnosti instaliranih paketa. To je posebno slučaj ako je softverski paket namijenjen instaliranju, ažuriranju ili brisanju na vašem sustavu ili iz njega. Nedostajući paketi dodaju se u sustav ili se instalirani paketi uklanjaju iz sustava u slučaju da više nisu potrebni. Slika 2 to pokazuje za uklanjanje paketa 'mc-data' pomoću 'apt-get'. Paket 'mc-data' preporučuje da se automatski ukloni i paket 'mc', jer više nema smisla instalirati se bez 'mc-data'.
Slika 2: apt-get-remove-mc.png
Oznake paketa i zastave
Tijekom svog rada alati za upravljanje paketima poštuju postavljene zastavice i oznake paketa. Oni se postavljaju automatski ili ih administrator sustava postavlja ručno. Posebno se ovo ponašanje odnosi na zastavicu 'bitni paket' koja je postavljena za pakete koji se ne smiju uklanjati. Jasno upozorenje izdaje se prije nego što to učinite (vidi sliku 3).
Slika 3: apt-get-remove.png
Također se uzimaju u obzir tri oznake „automatski“, „ručno“ i „zadržavanje“. Označavaju paket kao automatski instaliran, ručno instaliran ili se ne smije ažurirati (zadržati trenutnu verziju). Softverski paket označen je ili „automatski“ ili „ručno“, ali ne oboje.
Između ostalih, naredba 'apt-mark' rukuje oznakama i zastavicama pomoću sljedećih podnaredbi:
- auto: postavi paket kao automatski instaliran
- hold: zadrži trenutnu verziju paketa
- manual: postavite paket kao ručno instaliran
- showauto: prikaži automatski instalirane pakete
- showmanual: prikaži ručno instalirane pakete
- showhold: navedite pakete koji su na čekanju
- unhold: uklonite zastavicu zadržavanja za zadani paket
Da biste popisali sve ručno instalirane pakete, izdajte ovu naredbu:
$ apt-mark showmanualabiword
abs-vodič
ack-grep
akl
acpi
..
$
Da biste zadržali verziju paketa, upotrijebite potkomandu 'čekanje'. Primjer u nastavku to pokazuje za paket 'mc'.
# apt-oznaka zadrži mcmc postavljen na čekanje
#
Potkomanda 'showhold' navodi pakete koji su na čekanju (u našem slučaju to je samo paket 'mc'):
# apt-mark showholdmc
#
Koristeći alternativnu metodu pod nazivom "apt pinning", paketi se klasificiraju prema prioritetima. Apt ih primjenjuje kako bi odlučio kako postupati s ovim softverskim paketom i verzijama koje su dostupne iz spremišta softvera.
Opis paketa
Koristeći alternativnu metodu pod nazivom "apt pinning", paketi se klasificiraju prema prioritetima. Apt ih primjenjuje kako bi odlučio kako postupati s ovim softverskim paketom i verzijama koje su dostupne iz spremišta softvera.
Svaki softverski paket dolazi sa svojim opisom paketa koji je standardiziran. Između ostalih polja ovaj opis izričito navodi o kojem daljnjem paketu ovisi. Alati specifični za distribuciju izdvajaju ove podatke iz opisa paketa, a zatim izračunavaju i vizualiziraju ovisnosti za vas. Sljedeći primjer koristi naredbu 'apt-cache show' kako bi se prikazao opis paketa 'poppler-utils' (vidi sliku 4).
Slika 4: opis-paketa-poppler-utils.png
Opis paketa sadrži odjeljak pod nazivom "Ovisi". Ovaj odjeljak navodi ostale softverske pakete i broj verzije o kojima ovisi trenutni paket. Na slici 4. ovaj je odjeljak uokviren crvenom bojom i pokazuje da 'poppler-utils' ovisi o paketima 'libpoppler64', 'libc6', 'libcairo2', 'libfreetype6', 'liblcms2-2', 'libstdc ++ 6' i 'zlib1g'.
Prikažite ovisnosti paketa
Čitanje opisa paketa težak je način za utvrđivanje ovisnosti paketa. Zatim ćemo vam pokazati kako to pojednostaviti.
Postoji nekoliko načina za prikaz ovisnosti paketa na naredbenom retku. Za deb paket kao lokalnu datoteku koristite naredbu 'dpkg-deb' s dva parametra - nazivom datoteke paketa i ključnom riječi 'Ovisi'. Primjer u nastavku to pokazuje za paket 'skypeforlinux-64.deb ':
$ dpkg-deb -f Preuzimanja / skypeforlinux-64.deb Ovisigconf-usluga, 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)
$
Da biste učinili isto za instalirani paket, koristite 'apt-cache'. Prvi primjer kombinira podnaredbu 'show' nakon čega slijedi naziv paketa. Izlaz se šalje naredbi 'grep' koja filtrira redak 'Ovisi':
$ apt-cache emisija xpdf | grep OvisiOvisi: libc6 (> = 2.4), libgcc1 (> = 1: 4.1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$
Naredba 'grep-status -F paket -s ovisi o xpdf' prijavit će iste podatke.
Točnije, drugi primjer opet koristi 'apt-cache', ali s podnaredbom 'ovisi'. Podkomandu slijedi naziv paketa:
$ apt-cache ovisi o xpdf-uxpdf
Ovisi: libc6
Ovisi: libgcc1
Ovisi: libpoppler46
Ovisi: libstdc ++ 6
Ovisi: libx11-6
Ovisi: libxm4
Ovisi: libxt6
Preporučuje: poppler-utils
poppler-utils: i386
Preporučuje: poppler-data
Preporučuje: gsfonts-x11
Preporučuje: cups-bsd
čaše-bsd: i386
Sudari se sa:
Sudari se sa:
Sudari se sa:
Sudari se sa:
Zamjenjuje:
Zamjenjuje:
Zamjenjuje:
Zamjenjuje:
Sudari se s: xpdf: i386
$
Gornji je popis prilično dugačak i može se skratiti pomoću prekidača '-i' (skraćeno od '-važno'):
$ apt-cache ovisi -i xpdfxpdf
Ovisi: libc6
Ovisi: libgcc1
Ovisi: libpoppler46
Ovisi: libstdc ++ 6
Ovisi: libx11-6
Ovisi: libxm4
Ovisi: libxt6
$
Naredba 'apt-rdepends' čini isto, ali s informacijama o verziji ako je navedena u opisu:
$ apt-rdepends xpdfČitanje popisa paketa ... Gotovo
Izgradnja stabla ovisnosti
Čitanje podataka o stanju ... Gotovo
xpdf
Ovisi: libc6 (> = 2.4)
Ovisi: libgcc1 (> = 1: 4.1.1)
Ovisi: libpoppler46 (> = 0.26.2)
Ovisi: libstdc ++ 6 (> = 4.1.1)
Ovisi: libx11-6
Ovisi: libxm4 (> = 2.3.4)
Ovisi: libxt6
libc6
Ovisi: libgcc1
..
$
Naredba 'aptitude' radi i s prekidačima. Za ovisnosti upotrijebite prekidač '~ R' iza kojeg slijedi naziv paketa. Slika 5 prikazuje ovo za paket 'xpdf'. Slovo "A" u drugom stupcu rezultata "aptitude" identificira paket koji se automatski instalira.
Slika 5: aptitude-rdepends.png
Ovisnosti o paketima mogu biti pomalo nezgodne. Možda će vam pomoći grafički prikazati ovisnosti o paketu. Upotrijebite naredbu 'debtree' iza koje slijedi ime paketa kako biste stvorili grafički prikaz ovisnosti paketa. Alat "točka" iz paketa Graphviz opis pretvara u sliku kako slijedi:
$ debtree xpdf | dot -Tpng> graf.pngNa slici 6 vidite stvorenu PNG sliku koja sadrži graf ovisnosti.
Slika 6: točka.png
Prikažite obrnute ovisnosti
Do sada smo prikazali da smo odgovarali na pitanje koji su paketi potrebni za paket. Postoji i obrnuto - takozvane obrnute ovisnosti. Sljedeći se primjeri bave paketom kao i paketima koji o njemu ovise. Primjer broj jedan koristi 'apt-cache' s podnaredbom 'rdepends' kako slijedi:
$ apt-cache crveni se xpdfxpdf
Obrnuto ovisi:
| oktava-dok
xpdf: i386
libfontconfig1: i386
| xmds-dok
xfe
wiipdf
| vim-lateks
python-scapy
| rubin-tioga
| python-table-doc
| krcanje stranice
| oktava-dok
| muttprint-priručnik
mozplugger
mlpost
libmlpost-ocaml-dev
..
$
Paketi koji ovise o ostalim paketima označeni su simbolom cijevi. Ovi paketi ne trebaju biti instalirani na vašem sustavu, već moraju biti navedeni u bazi podataka paketa.
Sljedeći primjer koristi 'aptitude' za popis paketa koji imaju čvrstu referencu na paket 'xpdf' (vidi sliku 7).
Slika 7: traženje sposobnosti.png
Potvrdite instalaciju za nedostajuće pakete
'Apt-get' nudi potkomandu 'check' koja omogućuje provjeru valjanosti instalacije. Ako vidite sljedeći izlaz, ne nedostaju paketi:
# apt-get čekČitanje popisa paketa ... Gotovo
Izgradnja stabla ovisnosti
Čitanje podataka o stanju ... Gotovo
#
Zaključak
Pronalaženje ovisnosti paketa dobro funkcionira s pravim alatima. Ako ih pravilno upotrebljavate, razumijete zašto su paketi instalirani i koji možda nedostaju.
Poveznice i reference
- Axel Beckert, Frank Hofmann: Das Debian-Paketmanagement-Buch, https: // www.dpmb.org /