Bevezetés
A legtöbb Unix-szerű operációs rendszer központosított mechanizmust kínál a szoftverek keresésére és telepítésére. A szoftvereket általában csomagokként szolgáltatják, ezeket a csomagokat pedig úgynevezett repository-ban (továbbiakban tároló) tárolják. A csomagokkal való munkát csomagkezelésnek hívjuk. A csomagok gondoskodnak az alap komponenseiről az operációs rendszernek, együtt véve az osztott könyvtárakkal (shared libraries), alkalmazásokkal, szolgáltatásokkal és dokumentációkkal.
A csomagkezelő rendszer többet nyújt, mint egy szoftver egyszeri telepítése, például lehetőséget nyújt a már feltelepített csomagok frissítésére is. A tárolók segítséget nyújtanak abban, hogy megbizonyosodj, az adott program kódját átvizsgálták a rendszeren való használathoz, és hogy a feltöltött szoftver jóváhagyásra került a fejlesztők és a csomag karbantartói által.
Amikor szervert vagy fejlesztői környezetet konfigurálunk, gyakran szükségünk lehet nem csak a hivatalos tárolók használatára. A csomagok a stabil kiadásban talán elavultak, különösen akkor, ha egy új, gyorsan változó szoftverről van szó. Mindazonáltal a csomagkezelő egy létfontosságú eszköz egy rendszergazda és fejlesztő számára.
Ennek a leírásnak a célja, hogy megismerd az alapvető funkciókat, mint a csomagok keresése, telepítése és frissítése különböző disztribúciókon.
Csomagkezelő rendszerek: Egy rövid áttekintés
A legtöbb csomagkezelő rendszer csomagok kollekciója köré épült. A csomagfájl általában egy archívum, ami tartalmaz lefordított binárisokat és más forrásokat, telepítő scripteket. A csomagok tartalmaznak még metaadatokat, beleértve a függőségek listáját, ami tartalmazza a telepítéshez szükséges egyéb csomagok nevét.
Bár a funkcionalitás nagyjából hasonló, a csomag formátuma és az eszköz változik platformonként:
| Operációs rendszer | Formátum | Csomagkezelő | 
|---|---|---|
| Debian | .deb | 
									apt, apt-cache, apt-get, dpkg | 
								
| Ubuntu | .deb | 
									apt, apt-cache, apt-get, dpkg | 
								
| CentOS | .rpm | 
									yum | 
								
| Fedora | .rpm | 
									dnf | 
								
| FreeBSD | Port-ok, .txz | 
									make, pkg | 
								
					Debian-on és Debian alapú rendszereken, mint az Ubuntu, Linux Mint és Raspbian a csomagformátum a .deb. Az APT (Advanced Packaging Tool) biztosítja a parancsokat a leggyakrabban használt műveletekre, mint pl.: keresés a tárolóban, csomagok telepítése a hozzájuk tartozó függőségekkel együtt és a frissítések kezelése. Az APT parancsok úgy működnek, mint egy front-end az alacsonyabb szintű dpkg utility-hez ami kezeli a telepítését a különböző .deb fájloknak a helyi rendszeren.
A CentOS, Fedora és más tagja a Red Hat családnak RPM fájlokat használ. CentOS-on a yum használható az egyedi csomagfájlok és tárolók kezelésére.
A Fedora utóbbi verzióiban a yum-ot felváltotta a dnf, ami egy modernizált változata a yum-nak, de megtartotta a legtöbb felületet.
A FreeBSD bináris csomagrendszere a pkg paranccsal kezelhető. A FreeBSD kínál úgynevezett Port kollekciókat vagy másnéven Port fákat, ami nyújt egy helyi könyvtár struktúrát és eszközöket, amik lehetővé teszik a felhasználó számára, hogy fordítson és telepítsen csomagokat egyenesen forráskódból Makefile használatával. Általában sokkal kényelmesebb a pkg-t használni, de néha egy előre összeállított csomag nem érhető el, vagy esetleg meg kell változtatni fordítási beállításokat.
Csomagok listájának frissítése
Sok rendszer tart egy helyi adatbázist arról, hogy milyen csomagok érhetőek el a távoli tárolókban. A legjobb, ha minden csomag telepítés vagy frissítés előtt frissítjük ezt az adatbázist. Kivétel ez alól a yum és a dnf ami egy frissítést végez el mielőtt valamilyen műveletet végeznénk.
| Operációs rendszer | Parancs | 
|---|---|
| Debian / Ubuntu | sudo apt-get update | 
								
| CentOS | yum check-update | 
								
| Fedora | dnf check-update | 
								
| FreeBSD Csomagok | sudo pkg update | 
								
| FreeBSD Portok | sudo portsnap fetch update | 
								
Telepített csomagok frissítése
Ügyelnünk kell arra, hogy minden telepített szoftver a rendszeren frissítve legyen, ez csomagkezelő nélkül elég nehéz feladat lenne, meg kellene nézni több száz csomag változásnaplóját és biztonsági javításait.
FreeBSD-n a telepített port-okat sok esetben manuálisan kell beállítani, hogy frissíteni lehessen. A legjobb elolvasni a /usr/ports/UPDATING fájlt mielőtt frissítünk portmaster-el.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | sudo apt-get upgrade | 
									Csak a telepített csomagokat frissíti amennyiben lehetséges. | 
sudo apt-get dist-upgrade | 
									Frissít minden csomagot a legújabb verzióra és telepít vagy eltávolít függőségeket ha szükséges. | |
| CentOS | sudo yum update | 
									|
| Fedora | sudo dnf upgrade | 
									|
| FreeBSD Csomagok | sudo pkg upgrade | 
									|
| FreeBSD Portok | less /usr/ports/UPDATING | 
									Használd a less parancsot, hogy megnézd a frissítési leírást a portokhoz. | 
								
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a | 
									Feltelepíti a portmaster-t és frissíti a telepített portokat. | 
								
Csomag keresése
A legtöbb disztribúció kínál grafikus vagy menü vezérelt front-end-et a csomag kollekciókhoz. Ez lehet egy jó és könnyű módja, hogy böngésszünk a kategóriák között és új szoftvereket fedezzünk fel. Gyakran azonban a leghatékonyabb és leggyorsabb módszer, hogy megtaláljunk egy csomagot a parancssorban való keresés.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | apt-cache search keresési_szöveg | 
									|
| CentOS | yum search keresési_szöveg | 
									|
yum search all keresési_szöveg | 
									A csomag leírásában is keres. | |
| Fedora | dnf search keresési_szöveg | 
									|
dnf search all keresési_szöveg | 
									A csomag leírásában is keres. | |
| FreeBSD Csomagok | pkg search keresési_szöveg | 
									Név alapján keres. | 
pkg search -f keresési_szöveg | 
									Név alapján keres és visszaadja a teljes csomag leírást. | |
pkg search -D keresési_szöveg | 
									A csomag leírásában keres. | |
| FreeBSD Portok | cd /usr/ports && make search name=csomagnév | 
									Név alapján keres. | 
cd /usr/ports && make search key=keresési_szöveg | 
									A csomag leírásában és függőségeiben keres. | 
Részletes információ megtekintése egy adott csomagról
Amikor eldől miket is szeretnénk telepíteni gyakran hasznos elolvasni előtte a részletes leírásait a csomagoknak. Ezek a leírások gyakran tartalmaznak metaadatokat mint a verziószám és/vagy a szükséges egyéb csomagok listáját.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | apt-cache show csomag | 
									Megmutatja a helyileg tárolt információt a csomagról. | 
dpkg -s csomag | 
									Megmutatja az aktuális telepítési állapotát a csomagnak. | |
| CentOS | yum info csomag | 
									|
yum deplist csomag | 
									Megmutatja a csomag függőségi listáját. | |
| Fedora | dnf info csomag | 
									|
dnf repoquery --requires csomag | 
									Megmutatja a csomag függőségi listáját. | |
| FreeBSD Csomagok | pkg info csomag | 
									Információt ad a telepített csomagról. | 
| FreeBSD Portok | cd /usr/ports/kategória/port_név && cat pkg-descr/code> | 
									
Csomag telepítése tárolóból
Ha már tudjuk a nevét a csomagnak, akkor általában már egy paranccsal tudjuk telepíteni a csomagot és a függőségeit. Általánosságban elmondható, hogy ha több csomagot akarunk telepíteni elég felírni egymás után a nevüket.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | sudo apt-get install csomag | 
									|
sudo apt-get install csomag1 csomag2 ... | 
									Feltelepíti a felsorolt csomagokat. | |
sudo apt-get install -y csomag | 
									Automatikus "igen" parancs telepítésnél. | |
| CentOS | sudo yum install csomag | 
									|
yum deplist csomag | 
									Megmutatja a csomag függőségi listáját. | |
| Fedora | dnf info csomag | 
									|
dnf repoquery --requires csomag | 
									Megmutatja a csomag függőségi listáját. | |
| FreeBSD Csomagok | pkg info csomag | 
									Információt ad a telepített csomagról. | 
| FreeBSD Portok | cd /usr/ports/kategória/port_név && cat pkg-descr | 
									Felépíti és telepít Port-ot forráskódból. | 
Csomag telepítése helyi fájlrendszerről
Néha, még ha a csomag nem is hivatalosan van kiadva az adott operációs rendszerre, a fejlesztő vagy eladó kínál telepítési csomagot letöltésre. Ezeket le tudod tölteni a böngésződdel vagy akár parancssorból is.
Debian alapú rendszereken, a dpkg kezeli a csomagfájlokat. Ha egy csomagnak függőségei vannak, akkor a gdebi segítségével le tudod tölteni őket a hivatalos tárolókból.
CentOS, Fedora rendszeren a yum és a dnf használható a fájlok telepítésére és ezek a programok kezelik a függőségeket is.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | sudo dpkg -i csomag.deb | 
									|
sudo apt-get install -y gdebi && sudo gdebi csomag.deb | 
									Feltelepíti és hasznlája a gdebi-t a szükséges, hiányzó függőségek telepítésére. | |
| CentOS | sudo yum install csomag.rpm | 
									|
| Fedora | sudo dnf install csomag.rpm | 
									|
| FreeBSD Csomagok | sudo pkg add csomag.txz | 
									|
sudo pkg add -f csomag.txz | 
									Akkor is feltelepíti a csomagot, ha az már fel van telepítve. | 
Egy vagy több feltelepített csomag törlése
Mivel a csomagkezelő tudja, milyen fájlokat biztosít az adott csomag, ezért általában eltávolítja őket, ha a szoftver többé nem szükséges.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | sudo apt-get remove csomag | 
									|
sudo apt-get autoremove | 
									Letörli a nem szükséges csomagokat. | |
| CentOS | sudo yum remove csomag | 
									|
| Fedora | sudo dnf erase csomag | 
									|
| FreeBSD Csomagok | sudo pkg delete csomag | 
									|
sudo pkg autoremove | 
									Letörli a nem szükséges csomagokat. | |
| FreeBSD Portok | sudo pkg delete csomag | 
									|
cd /usr/ports/eleresi_ut_a_porthoz && make deinstall | 
									Letörli a feltelepített portot. | 
Segítség keresése
Mivel a csomagkezelő tudja, milyen fájlokat biztosít az adott csomag, ezért általában eltávolítja őket, ha a szoftver többé nem szükséges.
| Operációs rendszer | Parancs | Megjegyzés | 
|---|---|---|
| Debian / Ubuntu | sudo apt-get remove csomag | 
									|
sudo apt-get autoremove | 
									Letörli a nem szükséges csomagokat. | |
| CentOS | sudo yum remove csomag | 
									|
| Fedora | sudo dnf erase csomag | 
									|
| FreeBSD Csomagok | sudo pkg delete csomag | 
									|
sudo pkg autoremove | 
									Letörli a nem szükséges csomagokat. | |
| FreeBSD Portok | sudo pkg delete csomag | 
									|
cd /usr/ports/eleresi_ut_a_porthoz && make deinstall | 
									Letörli a feltelepített portot. |