Debian GNU / Linux tas attiecas uz rīkiem apt, apt-get, aptitude, apt-cache, apt-depend, apt-rdepends, dpkg-deb un apt-mark.
Programmatūras pakotņu pieejamība
Kā jau minēts iepriekš, Linux izplatīšana sastāv no tonnām dažādu programmatūras pakotņu. Mūsdienās programmatūra ir diezgan sarežģīta, un tāpēc programmatūru parasti sadala vairākās atsevišķās paketēs. Šīs paketes var klasificēt pēc funkcionalitātes vai lomas, piemēram, binārām pakotnēm, bibliotēkām, dokumentācijām, lietošanas piemēriem, kā arī valodām specifiskām kolekcijām, un tās nodrošina tikai izvēlēto programmatūras daļu. Tam nav noteikta noteikuma, un sadalījumu veic vai nu rīka izstrādes komanda, vai pakotņu uzturētājs, kurš rūpējas par programmatūru Linux izplatīšanai. Izmantojot piemērotību, 1. attēlā ir uzskaitītas paketes, kurās ir dažādu pārlūkprogrammas Mozilla Firefox valodu tulkojumi.
1. attēls: spēja-Firefox.png
Šis darba veids ļauj, ka katru paketi var uzturēt cits izstrādātājs vai visa komanda. Turklāt sadalīšana atsevišķos komponentos ļauj citām programmatūras pakotnēm to izmantot arī saviem mērķiem. Var izmantot nepieciešamo funkcionalitāti, un tā nav jāizgudro no jauna.
Iepakojuma organizācija
Debian GNU / Linux izplatīšanas pakotņu pārvaldības rīki pastāvīgi rūpējas par to, lai instalēto pakotņu atkarības tiktu pilnībā izpildītas. Tas jo īpaši notiek, ja programmatūras pakotne ir paredzēta instalēšanai, atjaunināšanai vai dzēšanai sistēmā vai no tās. Trūkstošās paketes tiek pievienotas sistēmai vai instalētās pakotnes tiek noņemtas no sistēmas, ja tās vairs nav nepieciešamas. 2. attēls to parāda pakotnes “mc-data” noņemšanai, izmantojot “apt-get”. Pakete “mc-data” iesaka automātiski noņemt arī pakotni “mc”, jo vairs nav jēgas instalēt bez “mc-data”.
2. attēls: apt-get-remove-mc.png
Iepakojuma zīmes un karodziņi
Darba laikā pakešu pārvaldības rīki ievēro iestatītos paketes karodziņus un atzīmes. Tos vai nu automātiski iestata, vai arī sistēmas administrators iestata manuāli. Īpaši šī darbība attiecas uz karodziņu “būtiska pakete”, kas ir iestatīts paketēm, kuras nevajadzētu noņemt. Pirms jūs to izdarāt, tiek izteikts skaidrs brīdinājums (skat. 3. attēlu).
3. attēls: apt-get-remove.png
Tiek ņemtas vērā arī trīs atzīmes “automātisks”, “manuāls” un “turēt”. Viņi atzīmē paketi kā automātiski instalētu, manuāli instalētu vai to nedrīkst atjaunināt (turiet pašreizējo versiju). Programmatūras pakotne ir apzīmēta kā “automātiska” vai “manuāla”, bet ne abas.
Cita starpā komanda “apt-mark” apstrādā zīmes un karodziņus, izmantojot šādas apakškomandas:
- auto: iestatiet pakotni kā automātiski instalētu
- turēt: turēt paketes pašreizējo versiju
- rokasgrāmata: iestatiet paketi kā manuāli instalētu
- showauto: parādīt automātiski instalētās paketes
- showmanual: parādīt manuāli instalētās paketes
- showhold: norādiet aizturētos iepakojumus
- unhold: noņemiet aizturēšanas karogu dotajai paketei
Lai uzskaitītu visas manuāli instalētās pakotnes, izsniedziet šo komandu:
$ apt-mark showmanualabiword
abs-ceļvedis
ack-grep
acl
acpi
…
$
Lai turētu pakotnes versiju, izmantojiet apakškomandu “turēt”. Zemāk esošajā piemērā tas parādīts pakotnei “mc”.
# apt-mark hold mcmc ir aizturēts
#
Apakškomanda “showhold” uzskaita aizturētos paketes (mūsu gadījumā tā ir tikai pakete “mc”):
# apt-mark showholdmc
#
Izmantojot alternatīvu metodi ar nosaukumu “apt pinning”, paketes tiek klasificētas pēc prioritātēm. Apt tos lieto, lai izlemtu, kā rīkoties ar šo programmatūras pakotni un versijām, kas pieejamas programmatūras krātuvē.
Iepakojuma apraksts
Izmantojot alternatīvu metodi ar nosaukumu “apt pinning”, paketes tiek klasificētas pēc prioritātēm. Apt tos lieto, lai izlemtu, kā rīkoties ar šo programmatūras pakotni un versijām, kas pieejamas programmatūras krātuvē.
Katrai programmatūras pakotnei ir savs paketes apraksts, kas ir standartizēts. Starp citiem laukiem šajā aprakstā ir skaidri norādīts, no kura (-ām) paketes (-ēm) tā ir atkarīga. Īpaši izplatīšanas rīki iegūst šo informāciju no pakotnes apraksta un pēc tam aprēķina un vizualizē atkarības. Nākamajā piemērā tiek izmantota komanda 'apt-cache show', lai parādītu pakotnes 'poppler-utils' pakotnes aprakstu (sk. 4. attēlu).
4. attēls: package-description-poppler-utils.png
Iepakojuma aprakstā ir sadaļa ar nosaukumu “Atkarīgs”. Šajā sadaļā ir uzskaitītas citas programmatūras pakotnes un versijas numurs, no kuriem atkarīgs pašreizējais pakotne. 4. attēlā šī sadaļa ir izveidota sarkanā krāsā un parāda, ka 'poppler-utils' ir atkarīgs no pakotnēm 'libpoppler64', 'libc6', 'libcairo2', 'libfreetype6', 'liblcms2-2', 'libstdc ++ 6' un 'zlib1g'.
Parādiet pakotnes atkarības
Pakas apraksta lasīšana ir sarežģīts veids, kā noskaidrot paketes atkarības. Tālāk mēs parādīsim, kā to vienkāršot.
Ir vairāki veidi, kā parādīt pakotnes atkarības no komandrindas. Deb pakotnei kā lokālam failam izmantojiet komandu “dpkg-deb” ar diviem parametriem - paketes faila nosaukumu un atslēgvārdu “Atkarīgs”. Zemāk redzamais piemērs to parāda pakotnei 'skypeforlinux-64.deb ':
$ dpkg-deb -f Lejupielādes / skypeforlinux-64.deb Atkarīgsgconf-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)
$
Lai to izdarītu instalētai pakotnei, izmantojiet 'apt-cache'. Pirmajā piemērā ir apvienota apakškomanda “show”, kam seko pakotnes nosaukums. Izeja tiek nosūtīta komandai 'grep', kas filtrē līniju 'Atkarīgs':
$ apt-cache parādīt xpdf | grep AtkarīgsAtkarīgs no: libc6 (> = 2.4), libgcc1 (> = 1: 4.1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$
Komanda 'grep-status -F package -s Depends xpdf' ziņos to pašu informāciju.
Konkrētāk, otrajā piemērā atkal tiek izmantots “apt-cache”, bet tā vietā ar apakškomandu “atkarīgs”. Apakškomandai seko pakotnes nosaukums:
$ apt-cache ir atkarīgs no xpdfxpdf
Atkarīgs: libc6
Atkarīgs: libgcc1
Atkarīgs: libpoppler46
Atkarīgs: libstdc ++ 6
Atkarīgs: libx11-6
Atkarīgs: libxm4
Atkarīgs: libxt6
Iesaka: poppler-utils
poppler-utils: i386
Iesaka: poppler-data
Iesaka: gsfonts-x11
Iesaka: kausi-bsd
kausi-bsd: i386
Saduras ar:
Saduras ar:
Saduras ar:
Saduras ar:
Aizstāj:
Aizstāj:
Aizstāj:
Aizstāj:
Saduras ar: xpdf: i386
$
Iepriekš minētais saraksts ir diezgan garš, un to var saīsināt, izmantojot slēdzi “-i” (saīsinājums no “-important”):
$ apt-cache ir atkarīgs no -i xpdfxpdf
Atkarīgs: libc6
Atkarīgs: libgcc1
Atkarīgs: libpoppler46
Atkarīgs: libstdc ++ 6
Atkarīgs: libx11-6
Atkarīgs: libxm4
Atkarīgs: libxt6
$
Komanda "apt-rdepends" dara to pašu, bet ar informāciju par versiju, ja tā ir norādīta aprakstā:
$ apt-rdepends xpdfLasīt paku sarakstus ... Gatavs
Ēkas atkarības koks
Notiek valsts informācijas lasīšana ... Gatavs
xpdf
Atkarīgs no: libc6 (> = 2.4)
Atkarīgs no: libgcc1 (> = 1: 4.1.1)
Atkarīgs no: libpoppler46 (> = 0.26.2)
Atkarīgs no: libstdc ++ 6 (> = 4.1.1)
Atkarīgs: libx11-6
Atkarīgs no: libxm4 (> = 2.3.4)
Atkarīgs: libxt6
libc6
Atkarīgs: libgcc1
…
$
Komanda 'aptitude' darbojas arī ar slēdžiem. Atkarību gadījumā izmantojiet slēdzi '~ R', kam seko pakotnes nosaukums. 5. attēlā tas parādīts pakotnei 'xpdf'. Burts “A” otrajā “aptitude” izvades slejā identificē pakotni kā automātiski instalētu.
5. attēls: piemērotība-rdepends.png
Atkarība no pakotnēm var būt nedaudz grūts. Tas var palīdzēt grafiski parādīt pakotņu atkarības. Izmantojiet komandu 'parāds', kam seko paketes nosaukums, lai izveidotu pakotnes atkarību grafisku attēlojumu. Rīks “dot” no paketes Graphviz pārveido aprakstu attēlā šādi:
$ parāds xpdf | dot -Tpng> grafiks.png6. attēlā redzat izveidoto PNG attēlu, kurā ir atkarības grafiks.
6. attēls: punkts.png
Parādiet reversās atkarības
Līdz šim mēs parādījām atbildi uz jautājumu, kuras paketes ir nepieciešamas paketei. Ir arī otrādi - tā sauktās apgrieztās atkarības. Nākamie piemēri attiecas uz paketi, kā arī no tā atkarīgajām pakotnēm. Pirmais piemērs izmanto “apt-cache” ar apakškomandu “rdepends” šādi:
$ apt-cache rdepends xpdfxpdf
Reverss ir atkarīgs:
| oktāvas-dok
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-lateksuīts
pitons-scapy
| ruby-tioga
| python-tables-doc
| lapu krokošana
| oktāvs-dok
| rāvējslēdzēja rokasgrāmata
mozplugger
mlpost
libmlpost-ocaml-dev
…
$
Iepakojumi, kas ir atkarīgi no citiem iepakojumiem, ir apzīmēti ar caurules simbolu. Šīs paketes nav jāinstalē jūsu sistēmā, bet tās jāuzskaita paku datu bāzē.
Nākamais piemērs izmanto 'aptitude', lai uzskaitītu paketes, kurām ir stingra atsauce uz pakotni 'xpdf' (skat. 7. attēlu).
7. attēls: piemērotības meklēšana.png
Pārbaudiet instalāciju trūkstošajām pakotnēm
'Apt-get' piedāvā apakškomandu 'check', kas ļauj apstiprināt instalāciju. Ja redzat šādu izvadi, trūkst neviena pakotnes:
# apt-get pārbaudeLasīt paku sarakstus ... Gatavs
Ēkas atkarības koks
Notiek valsts informācijas lasīšana ... Gatavs
#
Secinājums
Atkarību no pakotnēm atrašana labi darbojas ar pareizajiem rīkiem. Pareiza to izmantošana palīdz saprast, kāpēc pakotnes ir instalētas un kuru var trūkt.
Saites un atsauces
- Aksels Bekerts, Frenks Hofmans: Das Debian-Paketmanagement-Buch, https: // www.dpmb.org /