Debian csomaglista újratelepítéshez

MX Linux
MX Linux, Debian alap

A Debian csomagkezelése egyszerű, így az alapokat egy videóban foglaltam össze. Ott, és a manuálokban összeszedhető alaptudással már a feladatok nagy részét megoldhatjuk. Ma a lekérdezést és a telepített csomagok listájának mentése lesz a téma. Bár a legtöbb Debian felhasználó valamelyik grafikus csomagkezelőt használjam de érdemes megtanulni a terminálos megoldásokat is.
A mai alap feladat a telepített csomagok lekérdezése, a lista mentése és az újratelepítéskor azok beolvastatása lesz.
Előbb a miért kérdésre kell válaszolni, ami valóban kérdés lehet.

Miért kell lementeni a csomagok listáját?

Nem kell, nem kötelező, de jó dolog. Ha van egy jók összerakott, minden szempontból megfelelően összeválogatott programokat tartalmazó rendszered, majd újra kell telepíteni a rendszert, akkor nem árt, ha tudod mi is volt fenn. A másik nagy előny a gyorsaság!
A telepítéskor nem kell egyesével megadni a csomagkezelőnek a csomagok nevét, hanem beolvastathatjuk a listát. Villámgyorsan elvégzi a telepítést.

A Debian csomag lista lekérdezése

Apt egy parancssori felület a csomagkezelő rendszerhez, és a leggyakrabban használt funkciókat egyesíti apt-get és apt-cache programnál. Így telepített csomagok felsorolásának lehetőségét is adja számunkra.

A rendszerre telepített összes csomag listázásához futtasd a következő parancsot:

sudo apt list --installed

A kimenete valami ilyen lesz:

xorg/stable,now 1:7.7+22 amd64 [telepítve] xorriso/stable,now 1.5.2-1 amd64 [telepítve]
xsel/stable,now 1.2.0+git9bfc13d.20180109-3 amd64 [telepítve]
xserver-common/mx,mx,now 2:1.20.13-1~mx21ahs+1 all [telepítve]
xserver-xorg-core/mx,now 2:1.20.13-1~mx21ahs+1 amd64 [telepítve]

Szép hosszú lista, amit biztosan nem fog senki végig nézegetni. De mielőtt továbblépnénk van egypár olyan tény, amit a feni listából leolvashatunk.

Fontos előfeltétel

A célom jelenleg a visszaölthető, újra telepíthető csomaglista kinyerése Debian alatt. A lista kinyerése nem jelent gondot, de a telepítés csak akkor lesz jó, ha a csomagok rendelkezésre állnak.
A listában – nálam, mert MX Linuxot használok – vannak ilyen bejegyzés xserver-xorg-core/mx, azaz az MX repóból telepítette. Ez már jelzi számunkra a kettős problémát.

  1. Két eltérő Debian Linuxra alapuló disztribúció közt nem feltétlen lehet a csomag listát mozgatni, mert esetleg más, saját tárolókat is használhatnak. Ez a legtöbb esetben nem okoz gondot, mert ha sima Debian Linuxra akarnánk az MX Linux listáját újratelepítéskor használni nagyon sok csomagot fel tudna rakni a hivatalos Debian tárolókból is. De nem mindet, amit az MX Linux sajátja, azt nyilván nem
  2. Ha installáltunk a tároló listánkba külső tárolókat, ami nem a disztribúciónk sajátja, azt mindenképp újra el kell végeznünk. Ami alapvetően nem jelent gondot, mert a tárolókezelés a Debian alatt (bár eltérhet egyes Debian klónoknál) egyszerű. Az MX Linux Linux alatt a /etc/apt könyvtárban lévő fájlokban történik meg. Ha nem telepítettél más forrást, akkor nem lesz semmi teendőd ezzel!
  3. A manuálisan telepített csomagok, amiket letöltöttél egy oldalról és úgy telepítetted, ezzel a listával újra nem tudod telepíteni. Logikus, hiszen a tárolók ezeket nem tartalmazzák!

    Pár egyszerű megoldás

A fenti parancs megjeleníti az összes telepített csomag listáját, beleértve a csomagok verzióira és architektúrájára vonatkozó információkat. A kimenet jobb szélső oszlopa mutatja, hogy a csomag automatikusan telepítésre került-e egy másik csomag függőségeként:

autotools-dev/stable,now 20161112.1 all [installed,automatic]

Ez nem jelent nekünk semmi pluszt a feladatnál, de hogy a felesleges (már nem kellő) csomagok eltávolításra kerüljenek, a lista készítése előtt egy

sudo apt autoremove

futtatása ajánlott.

Mivel a csomaglista hosszú, célszerű a kimenetet a less parancsnak átadni, hogy könnyebben olvasható legyen:

sudo apt list --installed | less

Ha meg szeretnéd tudni, hogy egy adott csomag telepítve van-e, használd a grep parancsot a kimenet szűrésére. Például annak megállapítására, hogy a kitty csomag telepítve van

sudo apt list --installed | grep kitty

A telepített csomagok listázása a dpkg-query paranccsal

Bár a apt nagyon jó, de érdemes megismerni mást is, ami talán szebben listázza ki az eredményt. A dpkg-query egy parancssori parancs, amely a dpkg adatbázisban felsorolt ​​csomagok információinak megjelenítésére használható.

Az összes telepített csomag listájának megtekintéséhez:

sudo dpkg-query -l | less

A kimenetét néz meg! Sokkal jobban olvasható mint a sima apt parancsé!
A parancs megjeleníti az összes telepített csomag listáját, beleértve a csomagok verzióit, architektúráját és egy rövid leírást.
Keresésékez, nézelődéshez emberibb kimenetet ad. Itt is alkalmazhatjuk a grep parancsot:

sudo dpkg-query -l | grep kitty

Csomag lista létrehozása

A következő parancs a Debian rendszeren telepített összes csomag listáját egy nevű fájlban tárolja packages_list.txt:

sudo dpkg-query -f '${binary:Package}\n' -W > packages_list.txt

Igen, egy szűrt listára van szükségünk, azaz az előbb látott parancsok listája nem alkalmas a visszaállításra! Az sok olyant is tartalmaz, amire nem lesz szükségünk a visszaállításkor, sőt zavart is okozhat.
A lista kész, el lehet tenni.

Újratelepítéskor a Debian Linuxon

A listát elrakjuk, majd azt ha kell felhasználjuk. A gyors és minimális alaptelepítés után csak be kell olvastatni a listát.
Két megoldás van, mindegyik jól működik. Az egyiknél a fenti listából készítünk egy szkriptet, ahol a csomagnevek elé berakjuk a sudo apt install részt futtatjuk. Ez akkor jó, ha például előtte a szkripttel íratunk be új tárolókat a tároló listába, frissítjük a kulcsokat stb. Így egy lépésben megoldhatunk minden feladatot.
A másik megoldás egyszerűbb, de itt nincs lehetőség a telepítésen kívüli feladatokra:

sudo xargs -a packages_list.txt apt install

Azaz a listát beolvastatjuk és megadjuk a apt-nak telepítésre.
Egyszerű, gyors és nem okozhat problémát.
Lesz rengeteg olyan,a minél jelzi, hogy már telepítve van, de ez természetes, hiszen a lista azt tartalmazza, ami az adott pillanatban telepített, és nem tudja leválogatni az alaptelepítéskor már felkerült csomagokat. Az apt simán átugrik ezen.
Bár a folyamat automatizálása a feladat, és nagyon jól hangzik, hogy amíg a gép dolgozik, az alkotó menjen el kávézni, de én szeretek itt ülni, és nézni a kimenetet. Ha problémája van, akkor azonnal lépni tudok!

Debian csomagok száma

Manapság nagy divat a telepített csomagok számát vizsgálni, mert aki kevesebb csomagot tesz fel, az jobban ismeri a rendszert. Ez persze nagy baromság, de nézzük meg a telepített csomagjaim számát is.

sudo dpkg-query -f '${binary:Package}\n' -W | wc -l

A wc parancs a számláló eszköz és ez azt mondja, hogy 2816 csomagom van fenn. Lényegtelen adat.

Related Posts