Az apt, vagyis az Advanced Package Tool a Debian és az olyan leszármqazottak csomagkezelője, mint a Ubuntu, a Linux Mint és az elementary OS. Ezeken, ha telepíteni, eltávolítani szeretnél valamit, vagy frissítenéd az egész rendszert, azt apt-tal intézed.
Évtizedek óta velünk van, és ha Debian-alapú disztrót használsz, szinte biztos, hogy már használtad is, anélkül hogy különösebben foglalkoztál volna vele. Az utóbbi pár évben viszont aktívan fejlesztik.
Tavaly ilyenkor írtunk a apt 3.0 megjelenéséről. Ez indította el a 3.x ágat: színes, új kimeneti formátumot hozott, a Solver3 függőségfeloldót, a GnuTLS/GnuPG helyett OpenSSL-re váltottak, a kriptográfiai műveletekhez pedig a Sequoiát használják.
Az ezt követő 3.1.x ciklus most lezárult, a stabil kiadás pedig a apt 3.2 lett, ami több figyelemre méltó változást is hoz.
Mit kapsz a apt 3.2-vel?
A kiadás legnagyobb újdonságai a tranzakcióelőzmények visszagörgetési (rollback) támogatással, néhány új parancs, valamint a csomagtárolókénti csomagszűrés.
A apt mostantól naplózza az összes csomagtelepítést, frissítést és eltávolítást. A teljes listát a
apt history-list
paranccsal nézheted meg: ez minden korábbi műveletet megjelenít, és mindegyikhez rendel egy azonosítót. Ha egy konkrét műveletnél pontosan látni szeretnéd, mely csomagokat érintette, használd a
apt history-info <ID>
parancsot.
Innen a
apt history-undo <ID>
segítségével visszavonhatsz egy adott műveletet: szükség szerint újratelepíti az eltávolított csomagokat, vagy eltávolítja a telepítetteket. Ha véletlenül vontál vissza valamit, és szeretnéd újra alkalmazni, futtasd a
apt history-redo <ID>
parancsot.
Ha pedig mindent vissza szeretnél állítani egy adott időpont állapotára, a
apt history-rollback <ID>
ezt úgy oldja meg, hogy visszavonja az összes, a megadott ID utáni műveletet. Ezzel óvatosan bánj, mert maradandó változást okoz.
A
apt why
és a
apt why-not
egy másik új páros: ezekkel végigkövetheted egy csomag mögötti függőségi láncot. A
apt why <package>
megmondja, pontosan mi húzta be a rendszeredre. A
apt why-not <package>
pedig azt, miért nincs telepítve.
Hasonlóan újdonság az
Include
és az
Exclude
opció is: ezekkel korlátozhatod, hogy a apt egy adott csomagtárolóból mely csomagokat használja. Az Include csak az általad megadott csomagokra szűkíti a repót, az Exclude pedig teljesen kizár belőle bizonyos csomagokat.
A Solver3, ami a apt 3.0-ban még választható (opt-in) volt, mostantól alapértelmezetten be van kapcsolva. Emellett megkapta azt a képességet is, hogy forráscsomag alapján frissítsen, így az azonos forrásból származó összes bináris együtt frissül.
Ezen felül a rendszered nem fog alvó módba menni, amíg a
dpkg
telepítés közben fut. Bekerült a JSONL teljesítményszámláló-naplózás is, ami főleg a fejlesztőknek lehet hasznos.
Ha mindez felkeltette az érdeklődésed, kipróbálhatod a apt 3.2-t egy Debian Sid telepítésen, vagy az Ubuntu 26.04 LTS megjelenésével ott is elérhetővé vált.
Hogyan használható a rollback a apt-ban?
Miután apt-tal telepítettem néhány új programot, kipróbáltam pár parancsot, hogy lássam, hogyan működik a rollback és a tranzakciók újraalkalmazása. Először a terminálban lefuttattam a
sudo apt history-list
parancsot, majd megadtam a jelszavamat a művelet engedélyezéséhez.
A kimenet a apt tranzakcióinak listája volt. Ebben benne volt az előkészítés is, amivel Stable-ről Debian Sidre váltottam, valamint két telepítési parancs, amellyel felraktam a Vimet és a Nalát.
Ezután lefuttattam a
sudo apt history-info 4
parancsot. A szám a tranzakció azonosítója volt, és meg is kaptam az összes fontos részletet: a kezdési/befejezési időt, hogy melyik felhasználó kérte, milyen parancs futott, és mely csomagok változtak.
Ezután a
sudo apt history-undo 4
paranccsal visszavontam a Vim telepítését, majd a
sudo apt history-redo 4
paranccsal visszaállítottam; mindkettő pontosan úgy működött, ahogy ígérték.
Végül kipróbáltam a
sudo apt history-rollback 3
parancsot is, hogy eltávolítsam a Nalát. A folyamat nagyjából ugyanaz volt, mint korábban: a rendszer megerősítést kért a változtatásokhoz, amit az „Y” begépelésével adtam meg.
Amikor ennél megpróbáltam lefuttatni a
apt history-redo
parancsot, a végrehajtás a vártnak megfelelően meghiúsult.
Hasznosnak tűnnek számodra ezek az újdonságok? Vagy nem foglalkoznál vele? Írd meg lent!

