Debian

Afhængigheder af Debian-pakke

Afhængigheder af Debian-pakke
For Linux-distributioner såsom Debian GNU / Linux findes der mere end 60.000 forskellige softwarepakker. Alle har en specifik rolle. I denne artikel forklarer vi, hvordan administrerer pakkehåndtering pålideligt dette enorme antal softwarepakker under en installation, en opdatering eller en fjernelse for at holde dit system i funktion og helt stabilt.

For Debian GNU / Linux refererer dette til værktøjerne apt, apt-get, aptitude, apt-cache, apt-depends, apt-rdepends, dpkg-deb og apt-mark.

Tilgængelighed af softwarepakker

Som allerede nævnt ovenfor består en Linux-distribution af masser af forskellige softwarepakker. Fra i dag er software ret kompliceret, og det er derfor, det er almindeligt at opdele software i flere enkeltpakker. Disse pakker kan kategoriseres efter funktionalitet eller efter rolle, såsom binære pakker, biblioteker, dokumentation, brugseksempler samt sprogspecifikke samlinger og giver kun en valgt del af softwaren. Der er ingen fast regel for det, og delingen foretages af enten udviklingsholdet af et værktøj eller pakkeholderen, der tager sig af softwarepakken til din Linux-distribution. Ved hjælp af aptitude viser figur 1 de pakker, der indeholder oversættelserne til de forskellige sprog til webbrowseren Mozilla Firefox.

Figur 1: aptitude-firefox.png

Denne måde at arbejde på gør det muligt, at hver pakke kan vedligeholdes af en anden udvikler eller som et helt team. Desuden giver opdeling i enkeltkomponenter også andre softwarepakker mulighed for at bruge det til deres egne formål. En påkrævet funktionalitet kan anvendes og behøver ikke at blive genopfundet.

Pakkeorganisation

Pakkehåndteringsværktøjerne på Debian GNU / Linux-distributionen sørger konstant for, at afhængigheden af ​​de installerede pakker er opfyldt fuldstændigt. Dette er især tilfældet, hvis en softwarepakke er beregnet til at blive installeret, opdateret eller slettet på eller fra dit system. Manglende pakker føjes til systemet, eller installerede pakker fjernes fra systemet, hvis de ikke længere er påkrævet. Figur 2 demonstrerer dette til fjernelse af pakken 'mc-data' ved hjælp af 'apt-get'. Pakken 'mc-data' anbefaler også automatisk at fjerne pakken 'mc', fordi det ikke giver mening mere at blive installeret uden 'mc-data'.

Figur 2: apt-get-remove-mc.png

Pakkemærker og flag

Under arbejdet respekterer pakkehåndteringsværktøjerne de pakkeflag og -mærker, der er angivet. De indstilles enten automatisk eller indstilles manuelt af systemadministratoren. Især denne adfærd henviser til flag 'essentiel pakke', der er indstillet til pakker, der ikke skal fjernes. Der gives en klar advarsel, før du gør det (se figur 3).

Figur 3: apt-get-remove.png

Der tages også hensyn til de tre mærker 'automatisk', 'manuel' og 'hold'. De markerer en pakke som automatisk installeret, manuelt installeret eller ikke skal opdateres (hold den aktuelle version). En softwarepakke er enten mærket 'automatisk' eller 'manuel', men ikke begge.

Kommandoen 'apt-mark' håndterer blandt andet mærkerne og flagene ved hjælp af følgende underkommandoer:

For at liste alle de manuelt installerede pakker, udsted denne kommando:

$ apt-mark showmanual
abiword
abs-guide
ack-grep
acl
acpi
..
$

For at holde en pakkeversion skal du bruge underkommandoen 'hold'. Eksemplet nedenfor viser dette for pakken 'mc'.

# apt-mark hold mc
mc sat på hold
#

Underkommandoen 'showhold' viser de pakker, der er i venteposition (i vores tilfælde er det kun pakken 'mc'):

# apt-mark showhold
mc
#

Ved hjælp af en alternativ metode med titlen 'apt pinning' klassificeres pakker efter prioriteter. Apt anvender dem for at beslutte, hvordan denne softwarepakke skal håndteres, og de versioner, der er tilgængelige fra softwarelageret.

Pakkebeskrivelse

Ved hjælp af en alternativ metode med titlen 'apt pinning' klassificeres pakker efter prioriteter. Apt anvender dem for at beslutte, hvordan denne softwarepakke skal håndteres, og de versioner, der er tilgængelige fra softwarelageret.

Hver softwarepakke leveres med sin egen pakkebeskrivelse, der er standardiseret. Blandt andre felter angiver denne beskrivelse eksplicit, hvilken yderligere pakke (r) den afhænger af. Distributionsspecifikke værktøjer udtrækker disse oplysninger fra pakkebeskrivelsen og beregner og visualiserer afhængighederne for dig. Det næste eksempel bruger kommandoen 'apt-cache show' for at vise pakkebeskrivelsen af ​​pakken 'poppler-utils' (se figur 4).

Figur 4: pakkebeskrivelse-poppler-værktøjer.png

Pakkebeskrivelsen indeholder et afsnit kaldet 'Afhænger'. Dette afsnit viser de andre softwarepakker plus versionsnummer, som den aktuelle pakke afhænger af. I figur 4 er dette afsnit indrammet i rødt og viser, at 'poppler-utils' afhænger af pakkerne 'libpoppler64', 'libc6', 'libcairo2', 'libfreetype6', 'liblcms2-2', 'libstdc ++ 6' og 'zlib1g'.

Vis pakkeafhængigheder

Læsning af pakkebeskrivelsen er den svære måde at finde ud af pakkeafhængigheden. Dernæst viser vi dig, hvordan du forenkler dette.

Der er flere måder at vise pakkeafhængighederne på kommandolinjen. For en deb-pakke som en lokal fil skal du bruge kommandoen 'dpkg-deb' med to parametre - pakkens filnavn og nøgleordet 'Afhænger'. Eksemplet nedenfor viser dette for pakken 'skypeforlinux-64.deb ':

$ dpkg-deb -f Downloads / skypeforlinux-64.deb afhænger
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)
$

For at gøre det samme for en installeret pakke skal du bruge 'apt-cache'. Det første eksempel kombinerer underkommandoen 'show' efterfulgt af navnet på pakken. Outputtet sendes til kommandoen 'grep', der filtrerer linjen 'Afhænger':

$ apt-cache viser xpdf | grep afhænger
Afhænger af: libc6 (> = 2.4), libgcc1 (> = 1: 4.1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$

Kommandoen 'grep-status -F pakke -s afhænger af xpdf' rapporterer de samme oplysninger.

Mere specifikt bruger det andet eksempel igen 'apt-cache', men i stedet for underkommandoen 'afhænger'. Underkommandoen efterfølges af navnet på pakken:

$ apt-cache afhænger af xpdf
xpdf
Afhænger: libc6
Afhænger: libgcc1
Afhænger af: libpoppler46
Afhænger af: libstdc ++ 6
Afhænger: libx11-6
Afhænger: libxm4
Afhænger: libxt6
Anbefaler: poppler-utils
poppler-utils: i386
Anbefaler: poppler-data
Anbefaler: gsfonts-x11
Anbefaler: kopper-bsd
kopper-bsd: i386
Kolliderer med:
Kolliderer med:
Kolliderer med:
Kolliderer med:
Erstatter:
Erstatter:
Erstatter:
Erstatter:
Kolliderer med: xpdf: i386
$

Ovenstående liste er ret lang og kan forkortes ved hjælp af kontakten '-i' (forkortelse for '-vigtig'):

$ apt-cache afhænger -i xpdf
xpdf
Afhænger: libc6
Afhænger: libgcc1
Afhænger af: libpoppler46
Afhænger af: libstdc ++ 6
Afhænger: libx11-6
Afhænger: libxm4
Afhænger: libxt6
$

Kommandoen 'apt-rdepends' gør det samme, men med versionoplysninger, hvis det er specificeret i beskrivelsen:

$ apt-r afhænger af xpdf
Læsning af lister over pakker ... Udført
Bygning afhængighed træ
Læsning af tilstandsoplysninger ... Udført
xpdf
Afhænger af: libc6 (> = 2.4)
Afhænger af: libgcc1 (> = 1: 4.1.1)
Afhænger af: libpoppler46 (> = 0.26.2)
Afhænger af: libstdc ++ 6 (> = 4.1.1)
Afhænger: libx11-6
Afhænger af: libxm4 (> = 2.3.4)
Afhænger: libxt6
libc6
Afhænger: libgcc1
..
$

Kommandoen 'aptitude' fungerer også med switche. For afhængigheder skal du bruge kontakten '~ R' efterfulgt af navnet på pakken. Figur 5 viser dette for pakken 'xpdf'. Bogstavet 'A' i den anden kolonne i output af 'aptitude' identificerer pakken som automatisk installeret.

Figur 5: aptitude-r afhænger.png

Pakkeafhængigheder kan være lidt vanskelige. Det kan hjælpe med at vise pakkeafhængigheder grafisk. Brug kommandoen 'gældsaft' efterfulgt af navnet på pakken for at skabe en grafisk repræsentation af pakkeafhængighederne. Værktøjet 'prik' fra Graphviz-pakken omdanner beskrivelsen til et billede som følger:

$ gældsfri xpdf | dot -Tpng> graf.png

I figur 6 ser du det oprettede PNG-billede, der indeholder afhængighedsgrafen.

Figur 6: prik.png

Vis de omvendte afhængigheder

Indtil nu har vi vist, at vi har besvaret spørgsmålet, hvilke pakker der kræves for en pakke. Der er også omvendt - såkaldte omvendte afhængigheder. De næste eksempler beskæftiger sig med pakken såvel som de pakker, der afhænger af den. Eksempel nummer et bruger 'apt-cache' med underkommandoen 'rdepends' som følger:

$ apt-cache afhænger af xpdf
xpdf
Omvendt afhænger:
| oktav-dok
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-latexsuite
python-scapy
| ruby-tioga
| python-tabeller-doc
| side-crunch
| oktav-dok
| muttprint-manual
mozplugger
mlpost
libmlpost-ocaml-dev
..
$

Pakker, der afhænger af andre pakker, er markeret med et rørsymbol. Disse pakker behøver ikke at blive installeret på dit system, men skal vises i pakkedatabasen.

Det næste eksempel bruger 'aptitude' til at liste de pakker, der har en hård henvisning til pakken 'xpdf' (se figur 7).

Figur 7: aptitude-search.png

Valider installationen for manglende pakker

'Apt-get' tilbyder underkommandoen 'check', der gør det muligt at validere installationen. Hvis du ser følgende output, mangler der ingen pakker:

# apt-get check
Læsning af lister over pakker ... Udført
Bygning afhængighed træ
Læsning af tilstandsoplysninger ... Udført
#

Konklusion

At finde pakkeafhængigheder fungerer godt med de rigtige værktøjer. Brug af dem korrekt hjælper dig med at forstå, hvorfor pakker er installeret, og hvilke der muligvis mangler.

Links og referencer

Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...
Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...
Mus Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
I de senere år har computere og operativsystemer udviklet sig meget. Der var et tidspunkt, hvor brugerne skulle bruge kommandoer til at navigere genne...