Ugrás a tartalomhoz

Advanced Packaging Tool

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
APT
Az APT a Seamonkey telepítése közben
Az APT a Seamonkey telepítése közben

Legfrissebb stabil kiadás
  • 1.0.9.8.3 (stabil verzió, 2016. március 12.)[1]
  • 1.4.8 (stabil verzió, 2017. szeptember 13.)[2]
  • 1.4.9 (stabil verzió, 2019. január 18.)[3]
  • 1.8.2.2 (stabil verzió, 2020. december 20.)[4]
  • 2.2.4 (stabil verzió, 2021. június 10.)[5]
  • 2.5.5 (stabil verzió, 2023. január 17.)[6]
  • 2.5.6 (stabil verzió, 2023. február 8.)[7]
  • 2.6.0 (stabil verzió, 2023. március 6.)[8]
  • 2.7.0 (stabil verzió, 2023. május 2.)[9]
  • 2.7.1 (stabil verzió, 2023. május 24.)[10]
  • 2.7.2 (stabil verzió, 2023. július 12.)[11]
  • 2.7.3 (stabil verzió, 2023. augusztus 2.)[12]
  • 2.7.4 (stabil verzió, 2023. szeptember 16.)[13]
  • 2.7.5 (stabil verzió, 2023. szeptember 16.)[14]
  • 2.7.6 (stabil verzió, 2023. szeptember 20.)[15]
  • 2.7.8 (stabil verzió, 2024. január 8.)[16]
  • 2.7.9 (stabil verzió, 2024. január 11.)[17]
  • 2.7.10 (stabil verzió, 2024. január 19.)[18]
  • 2.7.11 (stabil verzió, 2024. február 13.)[19]
  • 2.7.12 (stabil verzió, 2024. február 20.)[20]
  • 2.7.13 (stabil verzió, 2024. február 28.)[21]
  • 2.7.14 (stabil verzió, 2024. március 22.)[22]
  • 2.9.0 (stabil verzió, 2024. április 12.)[23]
  • 2.9.1 (stabil verzió, 2024. április 14.)[24]
  • 2.9.2 (stabil verzió, 2024. április 23.)[25]
  • 2.9.3 (stabil verzió, 2024. május 14.)[26]
  • 2.9.4 (stabil verzió, 2024. május 25.)[27]
  • 2.9.5 (stabil verzió, 2024. június 13.)[28]
  • 2.9.6 (stabil verzió, 2024. július 2.)[29]
  • 2.9.7 (stabil verzió, 2024. július 30.)[30]
  • 2.8.1 (stabil verzió, 2024. július 30.)[31]
  • 2.9.17 (stabil verzió, 2024. december 7.)[32]
Legfrissebb fejlesztői kiadás
  • 1.8.1 (béta-verzió, 2019. május 6.)[33]
  • 1.9.8 (unstable version, 2020. január 27.)[34]
  • 2.0.0 (unstable version, 2020. március 7.)[35]
  • 2.1.20 (unstable version, 2021. február 9.)[36]
Programozási nyelv
Operációs rendszer
PlatformUnix-szerű
Kategóriarendszerszintű csomagkezelő
LicencGNU 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.[37] 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.[37]

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,[38] és elérhető Mac OS X[39] é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,[40][41][42][43] melynek indokaként sokszor a Debian szigorú minőségkövetelményeit hozzák fel.[44][45]

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.[46]

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.[47] Az apt-config dump megmutatja az apt teljes konfigurációját.[48]

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 ad 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[49] segítségével, vagy a file:/[50] 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,[51] 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)[52]
  • Cydia, egy APT alapú csomagkezelő jailbreakelt iOS rendszerekhez[53][54]
  • 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[55] 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.[56]

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.[57] 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.[58]

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.[59]

Jegyzetek

[szerkesztés]
  1. https://tracker.debian.org/pkg/apt
  2. Debian Package Tracker - apt. (Hozzáférés: 2018. november 27.)
  3. https://metadata.ftp-master.debian.org/changelogs//main/a/apt/apt_1.4.9_changelog
  4. Accepted apt 1.8.2.2 (source) into proposed-updates->stable-new, proposed-updates. (Hozzáférés: 2021. február 15.)
  5. https://github.com/Debian/apt/releases/tag/2.2.4, 2021. június 10., 2021. december 14.
  6. 2.5.5, 2023. január 17. (Hozzáférés: 2023. január 17.)
  7. 2.5.6, 2023. február 8. (Hozzáférés: 2023. február 9.)
  8. 2.6.0, 2023. március 6. (Hozzáférés: 2023. március 7.)
  9. 2.7.0, 2023. május 2. (Hozzáférés: 2023. május 2.)
  10. Julian Andres Klode: 2.7.1, 2023. május 24. (Hozzáférés: 2023. május 24.)
  11. Julian Andres Klode: 2.7.2, 2023. július 12. (Hozzáférés: 2023. július 12.)
  12. 2.7.3, 2023. augusztus 2. (Hozzáférés: 2023. augusztus 3.)
  13. 2.7.4, 2023. szeptember 16. (Hozzáférés: 2023. szeptember 17.)
  14. 2.7.5, 2023. szeptember 16. (Hozzáférés: 2023. szeptember 20.)
  15. 2.7.6, 2023. szeptember 20. (Hozzáférés: 2023. szeptember 20.)
  16. Julian Andres Klode: 2.7.8, 2024. január 8. (Hozzáférés: 2024. január 9.)
  17. Julian Andres Klode: 2.7.9, 2024. január 11. (Hozzáférés: 2024. január 11.)
  18. 2.7.10 (angol nyelven), 2024. január 19. (Hozzáférés: 2024. január 19.)
  19. 2.7.11, 2024. február 13. (Hozzáférés: 2024. február 15.)
  20. 2.7.12, 2024. február 20. (Hozzáférés: 2024. február 20.)
  21. 2.7.13, 2024. február 28. (Hozzáférés: 2024. február 29.)
  22. 2.7.14, 2024. március 22. (Hozzáférés: 2024. március 22.)
  23. 2.9.0 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. április 12. (Hozzáférés: 2024. április 17.)
  24. 2.9.1 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. április 14. (Hozzáférés: 2024. április 17.)
  25. 2.9.2 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. április 23. (Hozzáférés: 2024. április 28.)
  26. 2.9.3 (angol nyelven), 2024. május 14. (Hozzáférés: 2024. május 18.)
  27. 2.9.4 (angol nyelven), 2024. május 25. (Hozzáférés: 2024. május 30.)
  28. 2.9.5 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. június 13. (Hozzáférés: 2024. augusztus 4.)
  29. 2.9.6 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. július 2. (Hozzáférés: 2024. augusztus 4.)
  30. 2.9.7 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. július 30. (Hozzáférés: 2024. augusztus 4.)
  31. 2.8.1 · Tags · APT Developers / apt · GitLab (angol nyelven), 2024. július 30. (Hozzáférés: 2024. augusztus 4.)
  32. 2.9.17 (angol nyelven), 2024. december 7. (Hozzáférés: 2024. december 12.)
  33. APT Changelog
  34. https://github.com/Debian/apt/releases/tag/1.9.8, 2020. január 27.
  35. https://github.com/Debian/apt/releases/tag/2.0.0
  36. Accepted apt 2.1.20 (source) into unstable. (Hozzáférés: 2021. február 15.)
  37. 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.)
  38. APT-RPM. apt-rpm.org. [2008. április 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. május 12.)
  39. 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.)
  40. 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.)
  41. From the archives: the best distros of 2000. Tux Radar. [2013. április 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. január 17.)
  42. 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.)
  43. Mobile Linux development with Familiar and a minimal Debian. Mobile Tux
  44. Why Debian
  45. Debian policy manual
  46. die.net Linux Man pages
  47. Apt-Config
  48. Query APT Configuration Using apt-config - Debian Admin
  49. apt-cdrom
  50. 'i.e. Deb file:/mnt/install stable main contrib. non-free'
  51. Apt Pinning. Debian Wiki. [2006. október 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2006. szeptember 19.)
  52. OzOS | apt:foo. [2008. február 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. január 17.)
  53. 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. 
  54. Adhikari, Richard: Android, Schmandroid: Linux on the iPhone. LinuxInsider, 2008. március 20. [2015. január 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. január 18.)
  55. Deity Mailing List, 1997-04
  56. Deity Mailing List, 1998-03
  57. Deity Mailing List, 1998-03
  58. A Brief History of Debian. Debian.org. [2014. augusztus 19-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. január 17.)
  59. 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]

Fordítás

[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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.