Debian

„Debian“ paketo priklausomybės

„Debian“ paketo priklausomybės
Tokiems „Linux“ paskirstymams, kaip „Debian GNU / Linux“, yra daugiau nei 60.000 skirtingų programinės įrangos paketų. Visi jie turi tam tikrą vaidmenį. Šiame straipsnyje mes paaiškiname, kaip paketų valdymas patikimai valdo šį didžiulį programinės įrangos paketų skaičių diegimo, atnaujinimo ar pašalinimo metu, kad jūsų sistema veiktų ir būtų visiškai stabili.

Debian GNU / Linux tai reiškia įrankius apt, apt-get, aptitude, apt-cache, apt-depend, apt-rdepends, dpkg-deb ir apt-mark.

Programinės įrangos paketų prieinamumas

Kaip jau minėjome aukščiau, „Linux“ platinimą sudaro daugybė skirtingų programinės įrangos paketų. Šiandien programinė įranga yra gana sudėtinga, todėl programinę įrangą paprastai skirstoma į kelis atskirus paketus. Šiuos paketus galima suskirstyti pagal funkcionalumą arba vaidmenis, tokius kaip dvejetainiai paketai, bibliotekos, dokumentai, naudojimo pavyzdžiai, taip pat kalbų rinkiniai ir pateikti tik pasirinktą programinės įrangos dalį. Nėra jai nustatytos taisyklės ir padalijimą atlieka arba įrankio kūrimo komanda, arba paketų prižiūrėtojas, kuris rūpinasi jūsų „Linux“ platinimo programinės įrangos paketu. Naudojant tinkamumą, 1 paveiksle pateikiami paketai, kuriuose pateikiami žiniatinklio naršyklės „Mozilla Firefox“ skirtingų kalbų vertimai.

1 paveikslas: tinkamumas-„Firefox“.png

Toks darbo būdas leidžia kiekvieną paketą prižiūrėti skirtingam kūrėjui arba visai komandai. Be to, suskirstymas į atskirus komponentus leidžia kitiems programinės įrangos paketams taip pat naudoti juos savo tikslams. Reikiamą funkciją galima pritaikyti ir jos nereikia iš naujo sugalvoti.

Pakuočių organizavimas

„Debian GNU / Linux“ paskirstymo paketų valdymo įrankiai nuolat rūpinasi, kad įdiegtų paketų priklausomybė būtų visiškai patenkinta. Tai ypač pasakytina, jei programinės įrangos paketą ketinama įdiegti, atnaujinti ar ištrinti sistemoje arba iš jos. Trūkstami paketai įtraukiami į sistemą arba įdiegti paketai pašalinami iš sistemos, jei jų nebereikia. 2 paveiksle parodyta, kaip pašalinti paketą „mc-data“ naudojant „apt-get“. Paketas „mc-data“ taip pat rekomenduoja automatiškai pašalinti paketą „mc“, nes nebėra prasmės įdiegti be „mc-data“.

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

Pakuočių ženklai ir vėliavos

Savo darbo metu paketų valdymo priemonės gerbia nustatytas paketų žymes ir žymes. Juos nustato arba automatiškai, arba sistemos administratorius nustato rankiniu būdu. Ypač šis elgesys susijęs su vėliava „būtinas paketas“, kuris nustatytas paketams, kurių nereikėtų pašalinti. Prieš tai darant, pateikiamas aiškus įspėjimas (žr. 3 paveikslą).

3 paveikslas: apt-get-remove.png

Taip pat atsižvelgiama į tris ženklus „automatinis“, „rankinis“ ir „laikykite“. Jie pažymi, kad paketas yra automatiškai įdiegtas, rankiniu būdu įdiegtas arba neturi būti atnaujinamas (laikykite dabartinę versiją). Programinės įrangos paketas pažymėtas „automatiniu“ arba „rankiniu“, bet ne abu.

Be kitų, komanda „apt-mark“ ženklus ir vėliavas tvarko naudodama šias pakomandas:

Norėdami išvardyti visus rankiniu būdu įdiegtus paketus, išleiskite šią komandą:

$ apt-mark showmanual
abiword
abs vadovas
ack-grep
acl
acpi

$

Norėdami laikyti paketo versiją, naudokite potvarkį „hold“. Žemiau pateiktame pavyzdyje tai parodyta paketui „mc“.

# apt-mark hold mc
mc nustatytas laikinai
#

Pakomanda „showhold“ pateikia sulaikytus paketus (mūsų atveju tai tik paketas „mc“):

# apt-mark showhold
mc
#

Naudojant alternatyvų metodą, pavadintą „tinkamas prisegimas“, paketai skirstomi pagal prioritetus. „Apt“ jas taiko, kad nuspręstų, kaip elgtis su šiuo programinės įrangos paketu ir versijomis, kurias galima rasti programinės įrangos talpykloje.

Pakuotės aprašymas

Naudojant alternatyvų metodą, pavadintą „tinkamas prisegimas“, paketai skirstomi pagal prioritetus. „Apt“ jas taiko, kad nuspręstų, kaip tvarkyti šį programinės įrangos paketą ir versijas, kurias galima rasti programinės įrangos talpykloje.

Kiekvienas programinės įrangos paketas yra su savo standartizuotu paketo aprašymu. Be kitų laukų, šiame apraše aiškiai nurodoma, nuo kurio paketo (-ų) jis priklauso. Konkretaus paskirstymo įrankiai išskiria šią informaciją iš paketo aprašymo ir paskaičiuoja bei vizualizuoja priklausomybes. Kitame pavyzdyje naudojama komanda „apt-cache show“, kad būtų parodytas paketo „poppler-utils“ paketo aprašymas (žr. 4 paveikslą).

4 paveikslas: „package-description-poppler-utils“.png

Pakuotės aprašyme yra skyrius pavadinimu „Priklauso“. Šiame skyriuje pateikiami kiti programinės įrangos paketai ir versijos numeris, nuo kurių priklauso dabartinis paketas. 4 paveiksle šis skyrius yra įrėmintas raudonai ir rodo, kad „poppler-utils“ priklauso nuo paketų „libpoppler64“, „libc6“, „libcairo2“, „libfreetype6“, „liblcms2-2“, „libstdc ++ 6“ ir „zlib1g“.

Rodyti paketo priklausomybes

Skaityti paketo aprašymą yra sudėtingas būdas išsiaiškinti paketo priklausomybes. Toliau mes jums parodysime, kaip tai supaprastinti.

Yra keli būdai, kaip komandų eilutėje parodyti paketo priklausomybes. Norėdami naudoti „deb“ paketą kaip vietinį failą, naudokite komandą „dpkg-deb“ su dviem parametrais - paketo failo pavadinimu ir raktiniu žodžiu „Priklauso“. Žemiau pateiktas pavyzdys tai rodo paketui „skypeforlinux-64“.deb ':

$ dpkg-deb -f Atsisiuntimai / skypeforlinux-64.deb Priklauso
„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)
$

Norėdami tai padaryti įdiegtame pakete, naudokite „apt-cache“. Pirmajame pavyzdyje yra subkomanda „show“, po kurios nurodomas paketo pavadinimas. Išvestis siunčiama komandai „grep“, kuri filtruoja eilutę „Priklauso“:

$ apt-cache rodo xpdf | grep Priklauso
Priklauso nuo: 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 Depeps xpdf“ pateiks tą pačią informaciją.

Tiksliau sakant, antrame pavyzdyje vėl naudojamas „apt-cache“, bet vietoj to su potvarkiu „priklauso“. Po potvarkiu nurodomas pakuotės pavadinimas:

$ apt-cache priklauso xpdf
xpdf
Priklauso: libc6
Priklauso: libgcc1
Priklauso: libpoppler46
Priklauso: libstdc ++ 6
Priklauso: libx11-6
Priklauso: libxm4
Priklauso: libxt6
Rekomenduoja: poppler-utils
poppler-utils: i386
Rekomenduoja: poppler-data
Rekomenduoja: gsfonts-x11
Rekomenduoja: puodeliai-bsd
puodeliai-bsd: i386
Susiduria su:
Susiduria su:
Susiduria su:
Susiduria su:
Pakeičia:
Pakeičia:
Pakeičia:
Pakeičia:
Susiduria su: xpdf: i386
$

Aukščiau pateiktas sąrašas yra gana ilgas ir jį galima sutrumpinti naudojant jungiklį „-i“ (sutrumpintai „-important“):

$ apt-cache priklauso -i xpdf
xpdf
Priklauso: libc6
Priklauso: libgcc1
Priklauso: libpoppler46
Priklauso: libstdc ++ 6
Priklauso: libx11-6
Priklauso: libxm4
Priklauso: libxt6
$

Komanda „apt-rdepends“ daro tą patį, bet pateikia informaciją apie versiją, jei nurodyta apraše:

$ apt-rdepends xpdf
Skaitomi paketų sąrašai ... Atlikta
Pastatymo priklausomybės medis
Nuskaitoma būsenos informacija ... Atlikta
xpdf
Priklauso nuo: libc6 (> = 2.4)
Priklauso nuo: libgcc1 (> = 1: 4.1.1)
Priklauso nuo: libpoppler46 (> = 0.26.2)
Priklauso: libstdc ++ 6 (> = 4.1.1)
Priklauso: libx11-6
Priklauso: libxm4 (> = 2.3.4)
Priklauso: libxt6
libc6
Priklauso: libgcc1

$

Komanda „aptitude“ taip pat veikia su jungikliais. Priklausomybėms naudokite jungiklį „~ R“, po kurio nurodomas paketo pavadinimas. 5 paveiksle tai parodyta paketui „xpdf“. Raidė „A“ antrame „aptitude“ išvesties stulpelyje nurodo, kad paketas įdiegtas automatiškai.

5 paveikslas: tinkamumas-rdepends.png

Pakuočių priklausomybės gali būti šiek tiek sudėtingos. Tai gali padėti grafiškai parodyti priklausomybes nuo paketų. Norėdami sukurti grafinį paketo priklausomybių vaizdą, naudokite komandą „skolos“, po kurios nurodomas paketo pavadinimas. „Graphviz“ paketo įrankis „taškas“ aprašą paverčia vaizdu taip:

USD skolos xpdf | taškas -Tpng> grafikas.png

6 paveiksle matote sukurtą PNG vaizdą, kuriame yra priklausomybės grafikas.

6 paveikslas: taškas.png

Parodykite atvirkštines priklausomybes

Iki šiol rodėme, kad atsakėme į klausimą, kurios pakuotės reikalingos paketui. Yra ir atvirkščiai - vadinamosios atvirkštinės priklausomybės. Kiti pavyzdžiai susiję su paketu ir nuo jo priklausančiais paketais. Pirmasis pavyzdys naudoja „apt-cache“ su pakomanda „rdepends“ taip:

$ apt-cache rdepends xpdf
xpdf
Atvirkščiai priklauso:
| oktava-doc
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-lateksuitas
pitonas-scapy
| ruby-tioga
| python-tables-doc
| puslapis-crunch
| oktava-doc
| Kiaušinio spaudimo vadovas
mozplugger
mlpost
libmlpost-ocaml-dev

$

Pakuotės, kurios priklauso nuo kitų pakuočių, yra pažymėtos vamzdžio simboliu. Šių paketų nereikia įdiegti jūsų sistemoje, tačiau jie turi būti nurodyti paketų duomenų bazėje.

Kitas pavyzdys naudoja „aptitude“, kad išvardytų paketus, kuriuose yra griežta nuoroda į paketą „xpdf“ (žr. 7 paveikslą).

7 pav. Tinkamumo paieška.png

Patvirtinkite trūkstamų paketų diegimą

'Apt-get' siūlo potvarkį „check“, kuris leidžia patvirtinti diegimą. Jei matote šį išvestį, nėra jokių paketų:

# apt-get patikrinimas
Skaitomi paketų sąrašai ... Atlikta
Pastatymo priklausomybės medis
Nuskaitoma būsenos informacija ... Atlikta
#

Išvada

Paketų priklausomybių radimas gerai veikia naudojant tinkamus įrankius. Tinkamas jų naudojimas padeda suprasti, kodėl paketai yra įdiegti ir kokių gali trūkti.

Nuorodos ir nuorodos

Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...