Debian

Debian pakotnes atkarības

Debian pakotnes atkarības
Tādiem Linux izplatījumiem kā Debian GNU / Linux pastāv vairāk nekā 60.000 dažādu programmatūras pakotņu. Tiem visiem ir noteikta loma. Šajā rakstā mēs izskaidrojam, kā pakotņu pārvaldība uzticami pārvalda šo milzīgo programmatūras pakotņu skaitu instalēšanas, atjaunināšanas vai noņemšanas laikā, lai jūsu sistēma darbotos un būtu pilnībā stabila.

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:

Lai uzskaitītu visas manuāli instalētās pakotnes, izsniedziet šo komandu:

$ apt-mark showmanual
abiword
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 mc
mc ir aizturēts
#

Apakškomanda “showhold” uzskaita aizturētos paketes (mūsu gadījumā tā ir tikai pakete “mc”):

# apt-mark showhold
mc
#

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īgs
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)
$

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īgs
Atkarī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 xpdf
xpdf
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 xpdf
xpdf
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 xpdf
Lasī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.png

6. 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 xpdf
xpdf
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ārbaude
Lasī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

HD Remastered spēles operētājsistēmai Linux, kurām nekad agrāk nebija Linux laidiena
Daudzi spēļu izstrādātāji un izdevēji nāk klajā ar veco spēļu HD remaster, lai pagarinātu franšīzes darbības laiku. Lūdzu, faniem, kas pieprasa saderī...
Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...