Advanced Packaging Tool

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez
APT
Az APT a Seamonkey telepítése közben
Az APT a Seamonkey telepítése közben

Legfrissebb stabil
kiadás
1.9.4 (2019. szeptember 19.)[1]
Legfrissebb fejlesztői kiadásismeretlen +/-
Programozási nyelv C++
Operációs rendszer
Platform Unix-szerű
Kategória csomagkezelő
Licenc GNU General Public License, version 2.0 or later
Az APT weboldala

Az Advanced Packaging Tool, vagy röviden APT egy ingyenes és nyílt forráskódú csomagkezelő szoftver Debian GNU/Linux rendszereken.[2] A szoftver használata jelentősen megkönnyíti a szoftverek telepítését ezen rendszereken, azáltal, hogy a szükséges csomagokat függőségekkel együtt letölti, konfigurálja, és telepíti a számítógépre akár előre lefordított állományokből, akár forráskódból fordítva.[2]

Az eredetileg a Debian által bevezetett dpkg csomagkezelőre épülő frontend számos másik Linux terjesztésben is használatos. A Debianos verziója csak DEB csomagokat kezel, de létezik apt4rpm is az RPM alapú terjesztésekhez,[3] és elérhető Mac OS X[4] és OpenSolaris rendszereken is.

Használat[szerkesztés]

Az apt alapvetően egy szoftvergyűjtemény, az apt nevű csomagban terjesztve. A csomag jelentős részét egy C++ nyelven írt könyvtár teszi ki, melyet a legtöbb, csomagban mellékelt konzolos program használ, például az apt, apt-get és az apt-cache. Az apt csomag alapvető szoftvernek minősül, melyet alapértelmezésben tartalmaz a Debian operációs rendszer. Az apt-ot lehet akár a dpkg frontendjének is tekinteni, mintegy a dselect egy barátságosabb verzióját. Amíg a dpkg a csomagokat egyesével kezeli, az apt ennél összetettebb: kezeli a különböző csomagösszefüggéseket is (különösképpen a függőségeket).

Az APT-ot sokszor a Debian legnagyobb előnyeként tartják számon,[5][6][7][8] melynek indokaként sokszor a Debian szigorú minőségkövetelményeit hozzák fel.[9][10]

Az APT egyik legfontosabb jellemzője az, ahogy a dpkg-t használja: a telepítendő/eltávolítandó csomagokat topologikus sorrendbe állítja, és ennek megfelelően kezeli a csomagokat a lehető legoptimálisabb sorrendben a dpkg használatával.

Szoftver telepítés[szerkesztés]

A felhasználó egyszerre egy vagy több csomagot is telepíthet. Minden csomagot csak a csomag név részével kell jelölni a teljes név helyett (például Debian rendszeren libc6 csomaghoz csak az előbbi, rövid nevet kell használni a teljes libc6_1.9.6-2.deb helyett). Az apt szoftver telepíti a csomag függőségeit (ha vannak ilyenek), majd a csomagot is. Eredetileg ez volt az apt alapú csomagkezelő szoftverek legfontosabb tulajdonsága, mellyel elkerülték az adott csomag telepíthetetlenségét hiányzó csomag(ok) miatt.

Az apt egy másik fontos tulajdonsága a csomagok automatikus letöltése egy távoli csomagtárból (vagy repository-ból). A helyeket (repository-kat), ahol a csomagokat keresi a szoftver egy konfigurációs fájlban lehet tárolni (/etc/apt/sources.list) - ezek a helyek lehetnek a hálózaton (például az interneten), vagy akár egy helyi tárolón is. Az apt képes ezen helyekről letölteni kívánt csomagokat (amennyiben azok elérhetőek a megadott helyek valamelyikén), illetve képes lekérdezni hogy ezeken a helyeken mely, esetleg eddig nem telepített csomagok érhetőek el.

Az apt lehetőséget ad arra, hogy az automatikus szoftver ütközést elkerülő döntéseket felülírja a felhasználó, például lehetséges egy bizonyos verziót telepíteni egy csomagból, ezzel régebbi verzióra "vissza-frissíteni", downgrade-elni egy csomagot. Ezzel azonban érdemes óvatosan bánni, hisz más, ettől a downgrade-elt csomagtól függő programok meghibásodhatnak.

Az apt_preferences (/etc/apt/preferences) segítségével csomagszinten is meg lehet határozni, hogy mely verziók legyenek telepítve (pl. stabil vagy béta változat).

A felhasználók meghatározhatnak csomagneveket POSIX reguláris kifejezésekkel is.

Update, upgrade és dist-upgrade[szerkesztés]

  • Az update parancsot a helyi csomag indexek frissítésére lehet használni. Használatakor a program betölti az összes elérhető csomag listát az /etc/apt/sources.list fájlban meghatározott helyekről. Például Debian alapú rendszerek esetében letölti és feldolgozza a Packages.gz fájlt az összes meghatározott helyről, így szerezve információt új illetve frissített csomagokről.
  • Az upgrade parancs segítségével az összes telepített csomag frissítésre kerül a legfrissebb verzióra, ami az /etc/apt/sources.listfájlban meghatározott helyeken elérhető. Amennyiben egy csomagból elérhető frissebb verzió, az telepítésre kerül - de előzőleg telepített csomagok soha nem kerülnek törlésre. Amennyiben egy csomaghoz nem érhető el frissítés, úgy az változatlanul telepítve marad.
  • A dist-upgrade parancs az upgrade tulajdonságain felül intelligensen kezeli a függőségek változásait is. Az apt-get fejlett ütközés-megoldó rendszerrel rendelkezik, amely először mindig a legfontosabb csomagok függőségeit próbálja meg frissíteni, esetenként egy kevésbé kritikus csomag használhatatlanná tételével (például ha a fontos A csomag egy új verziót használ egy függőségből, de a nem kritikus B csomag egy régebbi verziót használ ugyanabból a függőségből). A csomagok a dist-upgrade esetében is az /etc/apt/sources.list fájlban meghatározott helyekről kerülnek frissítésre.[11]

Konfiguráció és fájlok[szerkesztés]

Az apt konfigurációs fájljai és könyvtárai az /etc/apt könyvtárban találhatóak.

Az APT konfigurációs programja az apt-config.[12] Az apt-config dump megmutatja az apt teljes konfigurációját.[13]

Fájlok[szerkesztés]

  • /etc/apt/sources.list: A források listája, ahonnan a csomagok letöltésre kerülnek.
  • /etc/apt/sources.list.d/: További csomag letöltő helyek listái.
  • /etc/apt/apt.conf: APT konfigurációs fájl
  • /etc/apt/apt.conf.d/: További konfigurációs fájlok.
  • /etc/apt/preferences: Csomagok letöltendő verzióinak meghatározása. Itt lehet rögzíteni például, ha egy csomagok nem kell frissíteni, vagy ha egy csomagot egy bizonyos forrásból szeretnénk letölteni.
  • /var/cache/apt/archives/: az eddig letöltött csomagok tárolókönyvtára.
  • /var/cache/apt/archives/partial/: az éppen letöltés alatt álló csomagok könyvtára.
  • /var/lib/apt/lists/: ebben a könyvtárban vannak a sources.list fájlban levő források csomaglistái.
  • /var/lib/apt/lists/partial/: ideiglenes könyvtár az épp letöltés alatt álló csomaglistáknak.

Források[szerkesztés]

Az APT a csomagtárak (repository) rendszerére támaszkodva találja meg a csomagokat és a függőségeket. Az apt csomagtár tulajdonképpen egy könyvtár melyben a csomagok, illetve egy index fájl található. A csomagtár lehet a hálózaton vagy akár CDROM-on is. A Debian projekt központi csomagtárában több, mint 25000 csomag áll telepítésre készen.

Akárhány további csomagtár címet meg lehet adni a sources.list konfigurációs fájlban (/etc/apt/sources.list), melyeket utána az APT használni fog. Több grafikus felület is lehetőséget a fájl egyszerűbb módosítására (apt-setup). Miután egy csomagtár hozzá lett adva a listához, a csomagokat külön forrásmeghatározás nélkül lehet telepíteni, és a telepített csomagok automatikusan frissítésre kerülnek.

A hálózati csomagtárakon felül más média is meghatározható (például CD, pendrive, merevlemez) az apt-cdrom[14] segítségével, vagy a file:/[15] előtag használatával a források listájában. Az apt-cdrom is használható cd-rom-on kívüli tárolók meghatározására a -d kapcsoló használatával (például merevlemez, pendrive). A Debian telepítőlemezek is tartalmaznak egy csomagtárat, mellyel hálózat nélkül lehet csomagokat frissíteni.

Probléma merülhet fel, amikor több forrás is letöltésre kínálja fel ugyanazokat a csomagokat. Ezen gond megoldható rögzítéssel (pinning) - meg lehet határozni, hogy egy csomag melyik forrásból kerüljön mindig letöltésre.

Csomagrögzítés - Pinning[szerkesztés]

Amennyiben egy csomagot több forrásból is le lehet tölteni (esetleg különböző verziókkal), lehetőség van arra, hogy meghatározzuk, hogy melyik forrásból legyen az adott csomag letöltve. Ezzel biztosítani lehet, hogy a csomagok nem lesznek frissítve inkompatibilis vagy instabil verziókra, mely esetleg tönkre tehetne más csomagokat.

Ezeket az /etc/apt/preferences fájlban kell meghatározni,[16] bár létezik több grafikus felület is a munka megkönnyítésére.

Frontendek[szerkesztés]

Többféle frontend is létezik az APT-hoz, melyek fejlett funkciókkal, és könnyebb kezeléssel rendelkeznek. Néhány példa:

  • Synaptic Package Manager, egy GTK+ alapú grafikus felület
  • Ubuntu Software Center, egy GTK+ alapú grafikus felület, az Ubuntu által fejlesztve
  • aptitude, egy konzolos felület
  • dselect, szintén konzolos, karaktergrafikus felület - talán az első
  • KPackage, a KDE része
  • Adept Package Manager, egy grafikus felület KDE-hez
  • PackageKit, egy daemon, a freedesktop.org által fejlesztve
  • GDebi, egy GTK+ alapú grafikus felület, főként Ubuntuhoz
  • apt-cdrom, mellyel cd-rom csomagtárakat lehet hozzáadni a rendszerhez (cd-rom csomagtárként való meghatározásához az apt-cdrom-ot kell használni, manuálisan nem lehetséges)
  • apt-zip, mellyel eltávolítható lemezeket (például pendrive) lehet csomagtárként meghatározni
  • apt-foo, mellyel egy internetes linkre kattintva lehet csomagokat telepíteni (kísérleti)[17]
  • Cydia, egy APT alapú csomagkezelő jailbreakelt iOS rendszerekhez[18][19]
  • gnome-apt, egy GTK+/GNOME widget alapú grafikus felület
  • Muon Software Center, egy Qt alapú grafikus felület
  • apticron, egy cron által futtatott szolgáltatás, ami rendszeradminisztrátoroknak küld e-mailt a függőben levő frissítésekről
  • orphaner és gtkorphan, a deborphan karaktergrafikus és gtk-s frontendje. Nem telepítésre szolgál, hanem az "árván" maradt csomagok, lib-ek leszedésére.

Az APT frontendek általában tudnak

  • új, telepítendő csomagokat keresni
  • telepített csomagokat frissíteni
  • új csomagokat telepíteni, vagy meglevőket törölni
  • teljes rendszert frissíteni.

Az APT frontendek ki tudják listázni a telepített/frissített csomagok függőségeit; megkérdezni a felhasználót, hogy az újonnan telepített csomag által javasolt csomagok is telepítve legyenek-e; automatikusan telepíteni a szükséges függőségeket, illetve egyéb műveletekre is képesek, például el tudják távolítani a nem használt/elavult csomagokat.

Történet[szerkesztés]

Az apt-get program kialakulásához a dselect leváltására készített deity[20] kódnevű program vezetett. A projekttel Brian White, az akkori Debian Release Manager volt megbízva. A legelső működőképes apt-get programot még dpkg-get-nek hívták, és csak az alapfunkciók tesztelésére volt benne lehetőség, melyek az új felhasználói felület alapjait képezték volna.[21]

Az APT kezdeti fejlesztésekor a kommunikáció IRC-en keresztül folyt, így ezek elvesztek. A "Deity Creation Team" levelezőlistájának az archívuma is csak pár mérföldkövet említ.

A Deity (Isten) nevet végül elvetették a szó vallásos vonatkozása miatt. Az APT nevet végül egy hosszas megbeszéléseket követően fogadták el. A nevet IRC-en vetették fel, és a levelezőlistán véglegesítették és fogadták el.[22] Eredetileg az APT nem egy betűszó volt, hanem a program teljes neve. IRC-n sok megbeszélés folyt, hogy mit jelöljön az APT név, azonban végül a fejlesztő csapat úgy döntött, hogy az APT nem rövidítés, és soha nem lesz betűszóként feloldva hivatalosan.

Az első hivatalos teszt verziókat 1998-ban kezdték terjeszteni IRC-en keresztül. Az első Debian verzió a Debian 2.1-ben debütált 1999. Március 9-én.[23]

Végső soron az eredeti ötlet, hogy leváltsák a dselect felületet kudarcba fulladt. A felhasználói felület fejlesztése teljesen leállt az apt-get első hivatalos verziójának megjelenése után. A felhasználói visszajelzések a konzolos használatról annyira pozitívak voltak, hogy a csapat minden erejével az alap funkciók továbbfejlesztésére koncentrált. De nem kellett sokat várni, amíg független fejlesztők megalkották az első felhasználói felületeket a libapt-pkg-re alapozva.

Az "első" APT éra utolsó nagy próbálkozása volt, hogy teljesen leváltsák a dpkg-t (libapt-inst). Bár ez is kudarcba fulladt, a megírt kód egy része bekerült a hatékony apt-ftparchive és libapt Python könyvtárakba. Ezután az eredeti fejlesztőkről nem hallottak többet, és az APT karbantartása szinte megszűnt létezni.

Végül egy új csapat kezdett dolgozni a szoftveren új funkciókat hozzáadva. Kiadták az APT 0.6-os verzióját olyan újításokkal, mint a Secure APT, ami erős kriptografikus aláírással hitelesíti csomagtárakat.[24]

Jegyzetek[szerkesztés]

  1. https://salsa.debian.org/apt-team/apt/-/tags/1.9.4, 2019. szeptember 22.
  2. a b apt-get(8) - Linux man page. linux.die.net. [2008. május 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. május 12.)
  3. APT-RPM. apt-rpm.org. [2008. április 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. május 12.)
  4. Fink - About. www.finkproject.org. [2008. május 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. május 12.)
  5. Byfield, Bruce: An apt-get primer, 2004. december 9. [2010. április 19-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. április 19.)
  6. From the archives: the best distros of 2000. Tux Radar
  7. Dorgan, David: Migrating to Debian. linux.ie, 2004. január 19. [2010. április 19-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. április 10.)
  8. Mobile Linux development with Familiar and a minimal Debian. Mobile Tux
  9. Why Debian
  10. Debian policy manual
  11. die.net Linux Man pages
  12. Apt-Config
  13. Query APT Configuration Using apt-config - Debian Admin
  14. apt-cdrom
  15. 'i.e. Deb file:/mnt/install stable main contrib. non-free'
  16. Apt Pinning. Debian Wiki. [2006. október 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2006. szeptember 19.)
  17. OzOS | apt:foo. [2008. február 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. január 17.)
  18. Jurick, David. iPhone Hacks: Pushing the iPhone and iPod touch Beyond Their Limits. O'Reilly Media, Inc., 20. o. (2009). ISBN 9780596516642. Hozzáférés ideje: 2013. január 18. 
  19. Adhikari, Richard: Android, Schmandroid: Linux on the iPhone. LinuxInsider, 2008. március 20. (Hozzáférés: 2013. január 18.)
  20. Deity Mailing List, 1997-04
  21. Deity Mailing List, 1998-03
  22. Deity Mailing List, 1998-03
  23. A Brief History of Debian. Debian.org
  24. Secure APT. Debian Wiki. [2006. szeptember 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2006. szeptember 5.)

Források[szerkesztés]

Ez a szócikk részben vagy egészben az Advanced_Packaging_Tool című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.