Pre Debian GNU / Linux to znamená nástroje apt, apt-get, aptitude, apt-cache, apt-depends, apt-rdepends, dpkg-deb a apt-mark.
Dostupnosť softvérových balíkov
Ako už bolo povedané vyššie, distribúcia Linuxu pozostáva z množstva rôznych softvérových balíkov. Softvér je dnes pomerne zložitý, a preto je bežné softvér rozdeliť do niekoľkých samostatných balíkov. Tieto balíčky možno kategorizovať podľa funkčnosti alebo podľa role, ako sú binárne balíčky, knižnice, dokumentácia, príklady použitia, ako aj jazykovo špecifické zbierky, a poskytujú vybranú časť softvéru, iba. Neexistuje pre ňu žiadne pevné pravidlo a rozdelenie vykonáva buď vývojový tím nástroja, alebo správca balíkov, ktorý sa stará o softvérový balík pre vašu distribúciu Linuxu. Pomocou aptitude, obrázok 1, zobrazuje zoznam balíkov, ktoré obsahujú preklady do rôznych jazykov webového prehliadača Mozilla Firefox.
Obrázok 1: aptitude-firefox.png
Tento spôsob práce umožňuje, aby každý balík mohol udržiavať iný vývojár alebo ako celý tím. Ďalej rozdelenie na jednotlivé komponenty umožňuje ďalším softvérovým balíkom, aby ich využívali aj na svoje vlastné účely. Je možné použiť požadovanú funkčnosť a nie je potrebné ju znova objavovať.
Organizácia balíkov
Nástroje na správu balíkov v distribúcii Debian GNU / Linux sa neustále starajú o úplné splnenie závislostí nainštalovaných balíkov. To platí najmä v prípade, ak je softvérový balík určený na inštaláciu, aktualizáciu alebo odstránenie vo vašom systéme alebo z neho. Chýbajúce balíčky sa pridajú do systému alebo nainštalované balíčky sa zo systému odstránia, ak už nie sú potrebné. Obrázok 2 to ukazuje na odstránenie balíka „mc-data“ pomocou „apt-get“. Balík „mc-data“ odporúča automaticky odstrániť aj balík „mc“, pretože už nemá zmysel inštalovať ho bez „mc-data“.
Obrázok 2: apt-get-remove-mc.png
Značky a vlajky na obale
Počas svojej práce nástroje na správu balíkov rešpektujú nastavené vlajky a značky. Nastavujú sa buď automaticky, alebo ich nastavuje manuálne správca systému. Najmä toto správanie sa týka príznaku „zásadný balík“, ktorý je nastavený pre balíky, ktoré by sa nemali odstraňovať. Predtým, ako to urobíte, bude vydané jasné varovanie (pozri obrázok 3).
Obrázok 3: apt-get-remove.png
Zohľadňujú sa tiež tri označenia „automatický“, „manuálny“ a „podržať“. Označia balík ako automaticky nainštalovaný, ručne nainštalovaný alebo sa nemusí aktualizovať (podržať aktuálnu verziu). Softvérový balík je označený ako „automatický“ alebo „manuálny“, ale nie obidva.
Príkaz 'apt-mark' okrem iného spracováva značky a vlajky pomocou nasledujúcich čiastkových príkazov:
- auto: nastaviť balík ako automaticky nainštalovaný
- pozdržať: pozastaví aktuálnu verziu balíka
- manual: nastavenie balíka ako ručne nainštalovaného
- showauto: zobrazí automaticky nainštalované balíčky
- showmanual: zobrazí ručne nainštalované balíčky
- showhold: zoznam balíkov, ktoré sú pozastavené
- unhold: odstráni príznak pozastavenia pre daný balík
Ak chcete zobraziť zoznam všetkých ručne nainštalovaných balíkov, zadajte tento príkaz:
$ apt-mark showmanualabiword
abs-sprievodca
ack-grep
acl
acpi
…
$
Na uchovanie verzie balíka použite čiastkový príkaz 'pozdržať'. Nasledujúci príklad to ukazuje pre balík „mc“.
# apt-mark hold mcmc pozastavené
#
Podpríkaz 'showhold' zobrazuje zoznam pozastavených balíkov (v našom prípade je to iba balík 'mc'):
# apt-mark showholdmc
#
Použitím alternatívnej metódy s názvom 'apt pinning' sú balíčky klasifikované podľa priorít. Spoločnosť Apt ich uplatňuje pri rozhodovaní o tom, ako naložiť s týmto softvérovým balíkom a verziami, ktoré sú k dispozícii v softvérovom úložisku.
Popis balenia
Použitím alternatívnej metódy s názvom 'apt pinning' sú balíčky klasifikované podľa priorít. Spoločnosť Apt ich uplatňuje pri rozhodovaní, ako naložiť s týmto softvérovým balíkom a verziami, ktoré sú k dispozícii v softvérovom úložisku.
Každý softvérový balík má svoj vlastný štandardizovaný popis balíka. V ďalších poliach tento popis výslovne špecifikuje, na ktorých ďalších balíkoch závisí. Nástroje špecifické pre distribúciu extrahujú tieto informácie z popisu balíka a potom pre vás vypočítajú a vizualizujú závislosti. Nasledujúci príklad používa príkaz 'apt-cache show' na zobrazenie popisu balíka balíka 'poppler-utils' (pozri obrázok 4).
Obrázok 4: package-description-poppler-utils.png
Popis balíka obsahuje časť s názvom „Závisí“. Táto časť obsahuje zoznam ďalších softvérových balíkov a číslo verzie, od ktorých závisí aktuálny balík. Na obrázku 4 je táto časť orámovaná červenou farbou a ukazuje, že program „poppler-utils“ závisí od balíkov „libpoppler64“, „libc6“, „libcairo2“, „libfreetype6“, „liblcms2-2“, „libstdc ++ 6“ a „zlib1g“.
Zobraziť závislosti balíka
Čítanie popisu balíka je ťažký spôsob, ako zistiť závislosti na balíku. Ďalej si ukážeme, ako to zjednodušiť.
Existuje niekoľko spôsobov, ako zobraziť závislosti balíkov na príkazovom riadku. Pre deb balík ako lokálny súbor použite príkaz 'dpkg-deb' s dvoma parametrami - názvom súboru balíka a kľúčovým slovom 'Depends'. Nasledujúci príklad to ukazuje na balík 'skypeforlinux-64.deb ':
$ dpkg-deb -f Stiahnutie / skypeforlinux-64.deb Závisí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)
$
Aby ste to isté urobili aj pre nainštalovaný balík, použite 'apt-cache'. Prvý príklad kombinuje čiastkový príkaz 'show', za ktorým nasleduje názov balíka. Výstup sa odošle do príkazu „grep“, ktorý filtruje riadok „Závisí“:
$ apt-cache show xpdf | grep ZávisíZávisí: libc6 (> = 2.4), libgcc1 (> = 1: 4).1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$
Príkaz 'grep-status -F package -s Depends xpdf' oznámi rovnaké informácie.
Konkrétnejšie, druhý príklad opäť používa „apt-cache“, ale s čiastkovým príkazom „závisí“. Za čiastkovým príkazom nasleduje názov balíka:
$ apt-cache závisí xpdfxpdf
Závisí: libc6
Závisí to: libgcc1
Závisí to: libpoppler46
Závisí: libstdc ++ 6
Závisí to: libx11-6
Závisí: libxm4
Závisí to: libxt6
Odporúča: poppler-utils
poppler-utils: i386
Odporúča: poppler-data
Odporúča: gsfonts-x11
Odporúča: poháre-bsd
cup-bsd: i386
Zrazí sa s:
Zrazí sa s:
Zrazí sa s:
Zrazí sa s:
Nahrádza:
Nahrádza:
Nahrádza:
Nahrádza:
Zrazí sa s: xpdf: i386
$
Zoznam vyššie je dosť dlhý a dá sa skrátiť pomocou prepínača „-i“ (skratka pre „-dôležité“):
$ apt-cache závisí -i xpdfxpdf
Závisí: libc6
Závisí to: libgcc1
Závisí to: libpoppler46
Závisí: libstdc ++ 6
Závisí to: libx11-6
Závisí: libxm4
Závisí to: libxt6
$
Príkaz 'apt-rdepends' robí to isté, ale s informáciami o verzii, ak je to uvedené v popise:
$ apt-rdepends xpdfČítajú sa zoznamy balíkov ... Hotovo
Budovanie stromu závislostí
Čítajú sa informácie o stave ... Hotovo
xpdf
Závisí: libc6 (> = 2.4)
Závisí: libgcc1 (> = 1: 4.1.1)
Závisí: libpoppler46 (> = 0.26.2)
Závisí: libstdc ++ 6 (> = 4.1.1)
Závisí to: libx11-6
Závisí: libxm4 (> = 2.3.4)
Závisí to: libxt6
libc6
Závisí to: libgcc1
…
$
Príkaz 'aptitude' funguje aj s prepínačmi. Pre závislosti použite prepínač '~ R', za ktorým nasleduje názov balíka. Obrázok 5 to ukazuje pre balík 'xpdf'. Písmeno „A“ v druhom stĺpci výstupu programu „aptitude“ označuje balík, ktorý sa inštaluje automaticky.
Obrázok 5: aptitude-rdepends.png
Závislosti balíkov môžu byť trochu zložité. Môže to pomôcť graficky zobraziť závislosti balíkov. Na vytvorenie grafického znázornenia závislostí balíka použite príkaz „deblord“, za ktorým nasleduje názov balíka. Nástroj „bodka“ z balíka Graphviz transformuje popis na obrázok nasledovne:
$ dlhový xpdf | bodka -Tpng> graf.pngNa obrázku 6 vidíte vytvorený obrázok PNG, ktorý obsahuje graf závislostí.
Obrázok 6: bodka.png
Zobraziť opačné závislosti
Doteraz sme zobrazovali, že sme odpovedali na otázku, ktoré balíčky sú pre balíček potrebné. Existuje aj opačná strana - takzvané reverzné závislosti. Nasledujúce príklady sa zaoberajú balíkom aj balíkmi, ktoré na ňom závisia. Prvý príklad používa „apt-cache“ s čiastkovým príkazom „rdepends“ nasledovne:
$ apt-cache rdepends xpdfxpdf
Reverzné závislosti:
| oktáva-doc
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-latexsuite
python-scapy
| ruby-tioga
| python-tables-doc
| krízová stránka
| oktáva-doc
| muttprint-manual
mozplugger
mlpost
libmlpost-ocaml-dev
…
$
Balíky, ktoré závisia od iných balíkov, sú označené symbolom fajky. Tieto balíčky nie je potrebné inštalovať do vášho systému, musia byť uvedené v databáze balíkov.
Nasledujúci príklad používa 'aptitude' na zoznam balíkov, ktoré majú pevný odkaz na balík 'xpdf' (pozri obrázok 7).
Obrázok 7: aptitude-search.png
Overte inštaláciu chýbajúcich balíkov
'Apt-get' ponúka čiastkový príkaz 'check', ktorý umožňuje overiť inštaláciu. Ak uvidíte nasledujúci výstup, nechýbajú žiadne balíčky:
# apt-get checkČítajú sa zoznamy balíkov ... Hotovo
Budovanie stromu závislostí
Čítajú sa informácie o stave ... Hotovo
#
Záver
Hľadanie závislostí balíkov funguje dobre so správnymi nástrojmi. Ich správne použitie vám pomôže pochopiť, prečo sú balíčky nainštalované a ktoré môžu chýbať.
Odkazy a referencie
- Axel Beckert, Frank Hofmann: Das Debian-Paketmanagement-Buch, https: // www.dpmb.org /