Bevezetés
A csomagkezelő rendszer vagy csomagkezelő szoftvereszközök csoportja. Hatékonyan automatizálja a telepítési folyamatot, a frissítési folyamatot, a konfigurációs folyamatot és a számítógépes programok eltávolítási folyamatát a számítógép operációs rendszeréhez. A csomagkezelő működik a csomagokkal, az archív fájlokon belüli adatokkal és a szoftverterjesztésekkel.
A csomagok olyan metaadatokat tartalmaznak, mint a a szoftver neve, céljának leírása, ellenőrző összeg (lehetőleg kriptográfiai hash függvény), d függőséglista, szállító, és verziószám elengedhetetlen a szoftver megfelelő működéséhez.
- A metaadatok a telepítéskor a helyi csomag adatbázisába kerülnek.
- Általában a csomagkezelők kezelik a verzióinformációk és a szoftverfüggőségek adatbázisát, hogy megakadályozzák az előfeltételek hiányát és a szoftveres eltéréseket.
- Szorosan együttműködnek az alkalmazásboltokkal, a bináris adattárkezelőkkel és a szoftvertárolókkal.
- A csomagkezelőket a kézi frissítések és telepítések kiküszöbölésére fejlesztették ki.
- Különösen a nagy szervezetek számára lehet hasznos, amelyek operációs rendszere általában több száz vagy sokkal több különböző szoftvercsomagot kombinál.
A csomagkezelő funkciói
Egy szoftvercsomag úgy definiálható, mint a archív fájl számítógépes program és a fejlesztéshez elengedhetetlen metaadatok kombinálása. A rendszerprogram lehet a forráskódon belül, amelyet először meg kell építeni és le kell fordítani.
A csomag metaadatai tartalmazzák a csomag verzióját, a csomag leírását és a függőségeket (azokat a csomagokat, amelyeket előzetesen telepíteni kell). Sok csomagkezelő tulajdonosa a szoftvercsomagok telepítése, eltávolítása, karbantartása vagy keresése a felhasználó irányítása alatt.
A csomagkezelő rendszer tartalmaz néhány tipikus funkciókat amelyeket az alábbiakban említünk:
- Fájlarchívumok kezelése csomagarchívumok kibontásához.
- A csomag hitelességének és integritásának biztosítása digitális tanúsítványaik és ellenőrző összegeik hitelesítésével.
- Meglévő szoftverek frissítése, telepítése, letöltése vagy keresése alkalmazásbolton vagy szoftvertáron keresztül.
- Csomagok kombinálása funkción keresztül a felhasználó megzavarásának csökkentése érdekében.
- Függőségek fenntartása annak biztosítására, hogy a csomag telepítve legyen az összes szükséges csomaggal együtt. Szóval figyelmen kívül hagyva 'függőségi pokol'.
Összeállított csomagok kezelőfelületei (helyben)
Rendszergazdák telepítheti és kezelheti a szoftvert a csomagkezelő szoftvertől eltérő egyéb eszközök segítségével. Például, a helyi rendszergazda letöltheti a forráskódot (csomagolás nélkül), lefordíthatja, majd telepítheti.
Előfordulhat, hogy a helyi rendszerállapot kiesik a szinkronizálásból, valamint a csomagkezelő állapotának adatbázisa. A helyi adminisztrátornak további intézkedést kell tennie, mint például a módosítások manuális integrálása egy csomagkezelőbe vagy néhány függőség kezelése.
git status -s
Vannak olyan eszközök, amelyek biztosítják a csomagok fordítását (helyileg) csomagkezeléssel együtt fejlesztik.
CheckInstall számára elérhető .fordulat vagy .deb fájl alapú disztribúciók és Slackware Linux is. Mert hibrid rendszereket, mint Arch Linux és recept alapú rendszerek mint Gentoo Linux, lehetőség van kezdetben egy recept megadására, amely azután megerősíti, hogy egy csomag belefér-e egy helyi csomagadatbázisba.
Kihívások az elosztott könyvtárakkal kapcsolatban
Különböző számítógépes rendszerek, amelyek a statikus könyvtárkapcsolás helyett a dinamikus könyvtárkapcsolástól függenek, elosztják a gépi utasítások könyvtárait (végrehajtható) alkalmazások és csomagok között.
Az ilyen típusú rendszerekben a különböző, könyvtárat igénylő csomagok közötti tipikus kapcsolatok egy ún. kihívást eredményeznek 'függőségi pokol'.
Úgy is ismert, mint 'DLL pokol' Microsoft Windows rendszeren, amikor dinamikusan kezeli a hivatkozott könyvtárakat. A jó csomagkezelés kulcsfontosságú ezeknél a rendszereknél.
Tól től OPENSTEP , a keretrendszer egy lövés volt a probléma megoldására azáltal, hogy lehetővé tette egynél több könyvtárverzió egyidejű telepítését, és számos szoftvercsomag esetében leírta, hogy melyik verzióhoz kapcsolódnak.
Konfiguráció karbantartása
A konfigurációs fájl frissítései különösen a szoftverfrissítéseknél jelentenek problémát. Legalábbis Unixon, mivel a csomagkezelők a fájlarchiváló segédprogram kiterjesztéseként jöttek létre.
Általában csak a konfigurációs fájlokat tartják meg vagy írják felül, ahelyett, hogy szabályokat használnának rájuk. Számos probléma merülhet fel, ha a konfigurációs fájl formátuma módosul. Például, ha egy régi konfigurációs fájl nem tiltja le kifejezetten az újabb beállításokat, akkor azt meg kell jeleníteni. Néhány csomagkezelő, mint például a Debian dpkg, engedélyezi a konfigurációt a telepítéskor. Néhány más esetben kívánatos, ha a csomagokat az alapértelmezett konfigurációval együtt telepíti, és a konfigurációt felülírja a telepítés során (fej nélküli) számos rendszerre. Az ilyen típusú (előre konfigurált) telepítés a dpkg-n keresztül is támogatott.
Frissítés elnyomása
Hagyományos, hogy a felhasználó rendelkezésére áll a futtatandó műveletlista (általában a frissítendő csomaglista és adott esetben az új és a régi verziószámok megadása), ha a felhasználó együttműködik a csomagkezelő szoftverrel a frissítés végrehajtásában.
Lehetővé teszi a felhasználó számára, hogy egyetlen csomagot válasszon a frissítésekhez, vagy tömegesen végezzen frissítést. Különféle csomagkezelőket be lehet állítani úgy, hogy soha ne frissítsenek sok csomagot, vagy csak akkor frissítsék őket, ha kritikus instabilitást vagy sebezhetőséget észlelnek a régi szabványban, ahogy azt a szoftvercsomag előírja. Néha ezt a folyamatot verziórögzítésnek nevezik.
Például:
yum támogatja a kizár=nyitotthivatal* szintaxis
pacman a szintaxissal Ignore=openoffice (mindkét esetben az OpenOffice frissítésének elnyomására)
A dselect és a dpkg részben támogatja a csomagválasztáson belüli hold jelzővel.
alkalmasság rendelkezik 'tiltani' és 'tart' zászlókat.
A portage konfigurációs fájllal támogatja, azaz csomag.maszk.
Az APT kiterjeszti a zászlót, azaz tart a komplexum által 'rögzítés' módszer (a felhasználók feketelistára is tehetik a csomagot).
Adattárak
Annak érdekében, hogy a felhasználók extra ellenőrzést biztosítsanak a rendszerükön telepíthető szoftvertípusok felett (néha a terjesztő kényelme és jogi okok miatt), a szoftvert néha számos szoftvertárból töltik le.
java bab
Lépcsőzetes csomag eltávolítás
A továbbfejlesztett csomagkezelési szempontok közül néhány megkönnyíti „lépcsőzetes csomageltávolítás”, ahol minden olyan csomag, amely a célcsomagra támaszkodik, és minden olyan csomag, amelyre a célcsomag támaszkodik, szintén eltávolításra kerül.
Parancsok összehasonlítása
A parancsok azonban egyediek az összes csomagkezelő számára. Ezek a parancsok nagymértékben lefordíthatók, mivel a legtöbb csomagkezelő ugyanazokat a funkciókat támogatja.
A csomagkezelő elterjedtsége
Csomagkezelők, mint például a dpkg, már 1994-ben elérhetők. A bináris csomagokra orientált Linux különféle disztribúciói nagymértékben támaszkodnak a csomagkezelő rendszerre, mivel a szoftverek karbantartásának és kezelésének fő eszközei.
Számos mobil operációs rendszer, például a Windows Phone, az iOS (Unix-szerű) és az Android (Linux-alapú) szinte a gyártó App Store-jától függ. Ezért a csomagkezelő rendszerüket használják (dedikált).
Összehasonlítás a telepítőkkel
A csomagkezelőt gyakran an 'telepítéskezelő'. Ez zavart okozhat a telepítők és a csomagkezelők között. Az alábbiakban bemutatunk néhány fő különbséget:
Kritérium | Csomagkezelő | Telepítő |
---|---|---|
Szállítva | Általában az OS | Minden számítógépes program |
Telepítési információ helye | Központi adatbázis a telepítéshez | Ez teljes mértékben a telepítő belátása szerint történik. Ez lehet egy fájl az alkalmazás mappájában vagy az operációs rendszer mappái és fájljai között. Előfordulhat, hogy a telepítési információk nyilvánosságra hozatala nélkül regisztrálják magukat az eltávolítók listájára. |
Karbantartási kör | Lehetséges, hogy a rendszer minden csomagja | Csak az a termék, amelyhez csomagolták |
Fejlesztő | Egyetlen csomagkezelő szállító | Egynél több telepítő szállító |
A csomag formátuma | Egy maroknyi felismert formátum | Annyi formátum lehet, ahány alkalmazás száma |
A csomagformátum kompatibilitása | Mindaddig használható, amíg egy csomagkezelő használja. Vagy a felhasználó nem frissít egy csomagkezelőt, vagy az új csomagkezelő verziók továbbra is támogatják azt. | Ha a telepítő bármilyen archív formátumot használ, akkor a telepítő mindig kompatibilis vele. Bár a telepítőket, mint minden számítógépet, befolyásolhatja a szoftverroham. |
Összehasonlítás az automatizálási segédprogrammal
Szinte az összes szoftverkonfiguráció-kezelő rendszer különálló szoftverek telepítését és építési szoftvereit jelenti. A build automatizálási segédprogram általában azokat a forráskódfájlokat veszi át, amelyek már egy rendszeren vannak, ember által olvasható formátumban, és felgyorsítja az eljárást, hogy végrehajtható csomaggá (binárisan) konvertálja őket egy hasonló rendszeren.
Általában egy később néhány más rendszeren futó csomagkezelő letölti ezeket a végrehajtható csomagokat (előre beépített binárisan) az internetről, majd telepíti őket.
Bár mindkét típusú eszköz számos közös tényezőt tartalmaz, amelyeket az alábbiakban említünk:
- A függőségi gráf topológiai rendezést egy csomagkezelőben alkalmazzák számos bináris komponens közötti függőségek kezelésére.
- Ezenkívül egy összeállítás-kezelőben is alkalmazzák számos forrásösszetevő közötti függőség kezelésére.
- Különféle makefile-ok nyújtják a támogatást, nem csak a végrehajtható fájlok létrehozása.
- Ezenkívül támogatják a make install telepítését.
- Minden csomagkezelő támogatja a forráskód (ember által olvasható) bináris végrehajtható fájlokká való lefordítását, majd telepítését a forrásalapú terjesztéshez, például a Homebrew, Sorcery, Portage stb.
Néhány eszköz, mint pl A-A-P és Készíts úgy lettek kifejlesztve, hogy mind a telepítést, mind az építkezést kezeljék. Használhatók csomagkezelőként vagy építési automatizálási segédprogramként vagy mindkettőként.
Alapcsomagkezelők és formátumaik
Univerzális csomagkezelő
Úgy is hívják bináris adattárkezelő. Ez a csomagkezelő egy szoftvereszköz, amelyet a szoftverfejlesztési folyamat során előállított és használt bináris fájlok, csomagok és műtermékek tárolásának optimalizálására és letöltésére hoztak létre.
Univerzális csomagkezelők összpontosítani, hogy egységesítsék a divatot, ahogyan a felhasználók minden típusú csomagot kezelnek. Lehetővé teszik a felhasználók számára a megfelelőségi és biztonsági mérőszámok használatát az egyes műterméktípusok körül. Az a. közepén lévőknek lettek hozzárendelve DevOps eszközlánc.
Nyílt forráskódú és ingyenes szoftverrendszerek
A kompatibilis és hasonló licencekkel rendelkező csomagok nyílt forráskódú és ingyenes szoftverek viselkedése révén több operációs rendszeren is használhatók.
Ezek a csomagok terjeszthetők és kombinálhatók belsőleg összetett és konfigurálható csomagolórendszerekkel, hogy kezelni lehessen számos verzió-specifikus konfliktust, függőséget és szoftverpermutációt.
Ezenkívül néhány nyílt forráskódú és ingyenes szoftvercsomagoló rendszer nyílt forráskódú és ingyenes szoftverként is megjelent.
Az egyik különbség az operációs rendszerek, például a Windows és a Mac OS X, valamint a nyílt forráskódú és ingyenes szoftverek (például a Linux) csomagkezelései között, hogy a nyílt forráskódú és ingyenes szoftverrendszerek lehetővé teszik a harmadik féltől származó csomagok frissítését és telepítését hasonló mechanizmus alapján. . Míg a Windows és a Mac OS X számos csomagkezelője frissíteni fogja a Microsoft és az Apple által biztosított szoftvereket.
A harmadik féltől származó szoftverek folyamatos frissítésének lehetősége a megfelelő lerakat URL-címének a csomagkezelés konfigurációs fájljába való felvételével bővül.
Csomagformátumok
Minden csomagkezelő az általa kezelhető csomagok metaadataitól és formátumától függ. A csomagkezelők megkövetelik, hogy a fájlcsoportokat az adott csomagkezelőhöz megfelelő metaadatokkal, például függőségekkel kell csoportosítani.
Gyakran egy alapvető segédprogram-gyűjtemény kezeli az általános telepítést ezeken a csomagokon keresztül, és egynél több csomagkezelő alkalmazza ezeket a segédprogramokat további funkciók biztosítása érdekében.
Példa:
- A yum a rpm-től függ, mint háttérprogram. A Yum a háttérfunkciókat olyan szempontok hozzáadásával fejleszti, mint az egyszerű konfiguráció a rendszerhálózat karbantartásához.
- A synaptic csomagkezelő grafikus felhasználói felületet ad az Advanced Packaging Tool könyvtárának alkalmazásával, amely a dpkg-tól függ.
Idegen olyan programként definiálható, amely különböző Linux-csomagformátumok között fordít. Támogatja a konverziót Slackware (.tgz, .tlz, .tbz, .txz) csomagok, Solaris (.pkg), Stampede (.slp), .deb, .rpm csomagok, és Linux Standard Base (LSB) kompatibilis.
Számos mobil operációs rendszerben, mint pl A Google Play a csomag formátumát használja Android alkalmazáscsomag (röviden APK ) amíg a Windows Store formátumait használja XAP és APPX. Mindkét Windows Store és A Google Play névadó csomagkezelőket tartalmaznak.
Alkalmazás szintű csomagkezelők
Van néhány csomagkezelő (bővítmény) a programozási nyelvekhez és korlátozott képességekkel rendelkező operációs rendszerekhez, ahol a fejlesztők az aktuális könyvtárakat igénylik. Az alkalmazásszintű csomagkezelők a rendszerszintű csomagkezelőkkel ellentétben a szoftverrendszer kis részére koncentrálnak.
Általában egy címtárfában találhatók. Nem rendszerszintű csomagkezelő szervezi, mint pl /usr/local/fink vagy c:cygwin. Bár nem biztos, hogy ez a feltétele a programkönyvtárakkal együttműködő csomagkezelőnek, ami esetleges ütközést okozhat, mivel mindkét csomagkezelő megszakíthatja a frissítéseket és kérheti 'saját' a fájl.