Debian

Debian csomagfüggőségek

Debian csomagfüggőségek
Az olyan Linux disztribúciókhoz, mint a Debian GNU / Linux, több mint 60 létezik.000 különböző szoftvercsomag. Mindegyiküknek különleges szerepe van. Ebben a cikkben elmagyarázzuk, hogyan kezeli megbízhatóan a csomagkezelés ezt a rengeteg szoftvercsomagot telepítés, frissítés vagy eltávolítás során annak érdekében, hogy a rendszer működőképes és teljesen stabil maradjon.

A Debian GNU / Linux esetében ez az apt, apt-get, aptitude, apt-cache, apt-dependents, apt-rdepends, dpkg-deb és apt-mark eszközökre vonatkozik.

Szoftvercsomagok elérhetősége

Mint már fent említettük, a Linux disztribúció rengeteg különböző szoftvercsomagból áll. A mai naptól kezdve a szoftver meglehetősen összetett, és ezért gyakori, hogy több szoftvert különálló csomagokra osztanak. Ezek a csomagok funkcionalitás vagy szerep szerint kategorizálhatók, például bináris csomagok, könyvtárak, dokumentációk, használati példák, valamint nyelvspecifikus gyűjtemények, és csak a szoftver kiválasztott részét jelentik. Nincs rá rögzített szabály, és a felosztást vagy egy eszköz fejlesztőcsapata, vagy a csomag karbantartója végzi, aki gondoskodik a Linux disztribúció szoftvercsomagjáról. Az aptitude használatával az 1. ábra felsorolja azokat a csomagokat, amelyek a Mozilla Firefox böngésző különböző nyelveinek fordítását tartalmazzák.

1. ábra: alkalmasság-firefox.png

Ez a munkamód lehetővé teszi, hogy az egyes csomagokat egy másik fejlesztő vagy egész csapat tudja fenntartani. Ezenkívül az egyetlen komponensre bontás lehetővé teszi, hogy más szoftvercsomagok is felhasználják saját céljaikra. A szükséges funkcionalitás alkalmazható, és nem kell újra feltalálni.

Csomagszervezés

A Debian GNU / Linux disztribúció csomagkezelő eszközei folyamatosan gondoskodnak arról, hogy a telepített csomagok függőségei teljes mértékben teljesüljenek. Ez különösen akkor áll fenn, ha egy szoftvercsomagot telepíteni, frissíteni vagy törölni kíván a rendszeren vagy a rendszeren. Hiányzó csomagokat adunk a rendszerhez, vagy eltávolítjuk a telepített csomagokat a rendszerből, ha már nincs szükség rájuk. A 2. ábra ezt mutatja be az „mc-data” csomag eltávolításakor az „apt-get” használatával. Az 'mc-data' csomag javasolja az 'mc' csomag automatikus eltávolítását is, mert nincs értelme többé telepíteni 'mc-data' nélkül.

2. ábra: apt-get-remove-mc.png

Csomagjelek és zászlók

Munkája során a csomagkezelő eszközök tiszteletben tartják a beállított csomagjelzőket és jelöléseket. Vagy automatikusan, vagy manuálisan állítja be őket a rendszergazda. Különösen ez a viselkedés utal az „elengedhetetlen csomag” megjelölésre, amely olyan csomagokhoz van beállítva, amelyeket nem szabad eltávolítani. Ezt megelőzően egyértelmű figyelmeztetést adunk ki (lásd a 3. ábrát).

3. ábra: apt-get-remove.png

Ezenkívül figyelembe veszik az „automatikus”, „kézi” és „tartás” három jelet. Automatikusan telepítettként, manuálisan telepítettként jelölik meg a csomagot, vagy nem szabad frissíteni (az aktuális verzió megtartása). A szoftvercsomag vagy „automatikus” vagy „kézi” jelöléssel rendelkezik, de nem mindkettő.

Többek között az 'apt-mark' parancs a következő alparancsok használatával kezeli a jeleket és a jelölőket:

Az összes manuálisan telepített csomag felsorolásához adja ki ezt a parancsot:

$ apt-mark showmanual
abiword
abs-útmutató
ack-grep
acl
acpi

$

A csomag verziójának megtartásához használja a 'hold' alparancsot. Az alábbi példa ezt mutatja az 'mc' csomagra.

# apt-mark hold mc
mc tartásban van
#

A 'showhold' alparancs felsorolja a várakozásban lévő csomagokat (esetünkben csak az 'mc' csomagot):

# apt-mark showhold
mc
#

Az „apt pinning” elnevezésű alternatív módszer alkalmazásával a csomagokat prioritások szerint osztályozzák. Az Apt alkalmazza őket annak eldöntésére, hogyan kezeljék ezt a szoftvercsomagot és a szoftvertárból elérhető verziókat.

A csomag leírása

Az „apt pinning” elnevezésű alternatív módszer használatával a csomagokat prioritások szerint osztályozzák. Az Apt alkalmazza őket annak eldöntésére, hogyan kezeljék ezt a szoftvercsomagot és a szoftvertárból elérhető verziókat.

Minden szoftvercsomaghoz saját szabványosított csomagleírás tartozik. A többi mező mellett ez a leírás kifejezetten meghatározza, hogy melyik további csomag (ok) tól függ. A disztribúcióspecifikus eszközök kivonják ezeket az információkat a csomag leírásából, majd kiszámítják és vizualizálják a függőségeket. A következő példa az 'apt-cache show' parancsot használja a 'poppler-utils' csomag csomagleírásának megjelenítéséhez (lásd 4. ábra).

4. ábra: package-description-poppler-utils.png

A csomag leírása tartalmaz egy 'Depends' nevű szakaszt. Ez a szakasz felsorolja a többi szoftvercsomagot és a verziószámot, amelytől az aktuális csomag függ. A 4. ábrán ez a szakasz piros színnel van keretezve, és azt mutatja, hogy a „poppler-utils” a „libpoppler64”, „libc6”, „libcairo2”, „libfreetype6”, „liblcms2-2”, „libstdc ++ 6” és „zlib1g”.

Mutassa meg a csomagfüggőségeket

A csomagleírás elolvasása a nehéz módszer a csomagfüggőségek kitalálására. Ezután megmutatjuk, hogyan lehet ezt egyszerűsíteni.

A csomagfüggőségek parancssorban történő megjelenítésének számos módja van. A deb csomag helyi fájlként használja a „dpkg-deb” parancsot két paraméterrel - a csomag fájlnevével és a „Depends” kulcsszóval. Az alábbi példa ezt szemlélteti a 'skypeforlinux-64 csomagnál.deb ':

$ dpkg-deb -f Letöltések / skypeforlinux-64.deb Attól függ
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. ábra), 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)
$

Ahhoz, hogy ugyanezt tegye egy telepített csomag esetében, használja az „apt-cache” szót. Az első példa egyesíti a „show” alparancsot, majd a csomag nevét. A kimenetet a 'grep' parancshoz küldjük, amely kiszűri a 'Depends' sort:

$ apt-cache show xpdf | grep Attól függ
Attól függ: libc6 (> = 2.4), libgcc1 (> = 1: 4).1.1), libpoppler46 (> = 0.26.2),
libstdc ++ 6 (> = 4.1.1), libx11-6, libxm4 (> = 2.3.4), libxt6
$

A 'grep-status -F package -s Depends xpdf' parancs ugyanazt az információt fogja jelenteni.

Pontosabban, a második példa ismét az „apt-cache” szót használja, de ehelyett a „depend” alparancsot használja. Az alparancsot a csomag neve követi:

A $ apt-cache az xpdf függvénye
xpdf
Attól függ: libc6
Attól függ: libgcc1
Attól függ: libpoppler46
Attól függ: libstdc ++ 6
Attól függ: libx11-6
Attól függ: libxm4
Attól függ: libxt6
Javasolja: poppler-utils
poppler-utils: i386
Javasolja: poppler-data
Ajánlja: gsfonts-x11
Ajánlja: cups-bsd
csészék-bsd: i386
Összeütközik:
Összeütközik:
Összeütközik:
Összeütközik:
Helyettesíti:
Helyettesíti:
Helyettesíti:
Helyettesíti:
Összeütközik: xpdf: i386
$

A fenti lista meglehetősen hosszú, és rövidíthető az '-i' kapcsolóval (röviden: '-fontos'):

A $ apt-cache az -i xpdf függvénye
xpdf
Attól függ: libc6
Attól függ: libgcc1
Attól függ: libpoppler46
Attól függ: libstdc ++ 6
Attól függ: libx11-6
Attól függ: libxm4
Attól függ: libxt6
$

Az 'apt-rdepends' parancs ugyanezt teszi, de verzióinformációval együtt, ha a leírás megadja:

$ apt-rdepends xpdf
Csomaglisták olvasása ... Kész
Építési függőségi fa
Állapotinformációk olvasása ... Kész
xpdf
Attól függ: libc6 (> = 2.4)
Attól függ: libgcc1 (> = 1: 4.1.1)
Attól függ: libpoppler46 (> = 0.26.2)
Attól függ: libstdc ++ 6 (> = 4.1.1)
Attól függ: libx11-6
Attól függ: libxm4 (> = 2.3.4)
Attól függ: libxt6
libc6
Attól függ: libgcc1

$

Az 'aptitude' parancs kapcsolókkal is működik. Függőségek esetén használja a '~ R' kapcsolót, majd a csomag nevét. Az 5. ábra ezt mutatja az 'xpdf' csomagra. Az „aptitude” kimenet második oszlopában szereplő „A” betű a csomag automatikus telepítését jelzi.

5. ábra: aptitude-rdepends.png

A csomagfüggőségek kissé bonyolultak lehetnek. Ez segíthet a csomagfüggőségek grafikus megjelenítésében. A csomagfüggőségek grafikus ábrázolásához használja a 'hitelviszonyt megtestesítő' parancsot, amelyet a csomag neve követ. A Graphviz csomag 'dot' eszköze a leírást képpé alakítja az alábbiak szerint:

$ adósság xpdf | pont -Tpng> grafikon.png

A 6. ábrán látható a létrehozott PNG-kép, amely a függőségi grafikont tartalmazza.

6. ábra: pont.png

Mutassa meg a fordított függőségeket

Mostanáig azt a kérdést válaszoltuk meg, hogy mely csomagokra van szükség egy csomaghoz. Van egy másik fordulat is - úgynevezett fordított függőségek. A következő példák a csomaggal, valamint a tőle függő csomagokkal foglalkoznak. Az első példa az „apt-cache” szót az „rdepends” alparancssal használja a következőképpen:

Az $ apt-cache rdepends xpdf
xpdf
Fordított függ:
| oktáv-dok
xpdf: i386
libfontconfig1: i386
| xmds-doc
xfe
wiipdf
| vim-latexsuite
python-scapy
| ruby-tioga
| python-tables-doc
| oldal-ropogás
| oktáv-dok
| juhnyomat-kézikönyv
mozplugger
mlpost
libmlpost-ocaml-dev

$

A más csomagoktól függő csomagokat pipaszimbólummal jelölik. Ezeket a csomagokat nem kell telepíteni a rendszerre, de fel kell tüntetni őket a csomagok adatbázisában.

A következő példa az 'aptitude' használatával sorolja fel azokat a csomagokat, amelyek kemény hivatkozást mutatnak az 'xpdf' csomagra (lásd a 7. ábrát).

7. ábra: alkalmasság-keresés.png

Ellenőrizze a hiányzó csomagok telepítését

Az 'Apt-get' a 'check' alparancsot kínálja, amely lehetővé teszi a telepítés érvényesítését. Ha a következő kimenetet látja, egyetlen csomag sem hiányzik:

# apt-get ellenőrzés
Csomaglisták olvasása ... Kész
Építési függőségi fa
Állapotinformációk olvasása ... Kész
#

Következtetés

A csomagfüggőségek megtalálása jól működik a megfelelő eszközökkel. Megfelelő használatuk segít megérteni, miért vannak telepítve a csomagok, és melyek hiányozhatnak.

Linkek és hivatkozások

Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...