Az apt és yum csomagkezelők összehasonlítása

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(YUM (Yellowdog Updater Modifier))
(apt-cache)
114. sor: 114. sor:
   
 
Csomaginformációk lekérdezésére használatos. Ez annyival nyújt többet a dpkg-nál, hogy nem csak a telepített csomagok között kereshetünk, hanem minden olyan csomag között, melyek szerepelnek a csomagadatbázisban. Írjuk is le az első apt-cache parancsunkat:
 
Csomaginformációk lekérdezésére használatos. Ez annyival nyújt többet a dpkg-nál, hogy nem csak a telepített csomagok között kereshetünk, hanem minden olyan csomag között, melyek szerepelnek a csomagadatbázisban. Írjuk is le az első apt-cache parancsunkat:
  +
 
apt-cache search <string>
 
apt-cache search <string>
  +
 
Ekkor az apt-cache elkezd keresgélni a csomagok nevei és leírásai között. Ha talál valamit, kiírja a csomag nevét egy egysoros magyarázattal, hogy mi az.
 
Ekkor az apt-cache elkezd keresgélni a csomagok nevei és leírásai között. Ha talál valamit, kiírja a csomag nevét egy egysoros magyarázattal, hogy mi az.
 
Lekérdezhetünk teljes csomagleírásokat is, ehhez a showpkg kulcsszót használjuk:
 
Lekérdezhetünk teljes csomagleírásokat is, ehhez a showpkg kulcsszót használjuk:
  +
 
apt-cache showpkg <csomag1> <csomag2>…
 
apt-cache showpkg <csomag1> <csomag2>…
  +
 
Így információt kaphatunk függőségekről, verziószámról, MD5 összegről, stb.
 
Így információt kaphatunk függőségekről, verziószámról, MD5 összegről, stb.
 
Ha csak a függőségekre vagyunk kíváncsiak, azt kicsit szebb formátumban is kérhetjük:
 
Ha csak a függőségekre vagyunk kíváncsiak, azt kicsit szebb formátumban is kérhetjük:
  +
 
apt-cache depends <csomag1> <csomag2>…
 
apt-cache depends <csomag1> <csomag2>…
  +
 
A fordított függőségeket pedig az alábbi paranccsal kérdezhetjük le:
 
A fordított függőségeket pedig az alábbi paranccsal kérdezhetjük le:
  +
 
apt-cache rdepends <csomag1> <csomag2>…
 
apt-cache rdepends <csomag1> <csomag2>…
apt-file
+
  +
== apt-file ==
  +
 
Nem az apt csomag része, külön telepítést igényel. Segítségével a csomagban található fájlok között is kereshetünk. Hasonlít a „dpkg-query”-hez, azonban a nem telepített csomagok listájában is képes keresni.
 
Nem az apt csomag része, külön telepítést igényel. Segítségével a csomagban található fájlok között is kereshetünk. Hasonlít a „dpkg-query”-hez, azonban a nem telepített csomagok listájában is képes keresni.
 
Használatánál figyeljünk arra, hogy mivel nem az apt csomag része, ezért adatbázisát külön kell frissíteni az
 
Használatánál figyeljünk arra, hogy mivel nem az apt csomag része, ezért adatbázisát külön kell frissíteni az

A lap 2012. november 22., 23:46-kori változata

apt-get install: a parancs, mely használatának élményét előbb-utóbb szinte minden Linux felhasználó megtapasztal és általában elég is a mindennapokban, hisz az átlagember ritkán akar a programokkal mást csinálni, mint telepíteni (meg persze futtatni, de az nem ide tartozik). Viszont a csomagkezelés ennél jóval több, sőt, az apt-get már egy jóval későbbi, az életet könnyebbé tevő „fícsör”.


Tartalomjegyzék

1 dpkg és rpm

A Debian alapú operációs rendszerek csomagkezelésének alapja a dpkg nevű program, míg a Red Hat által kifejlesztett rpm-et egyéb disztribúciók használják, pl. a Fedora, vagy CentOS, illetve meglepő módon, a Red Hat is. Ezek a programok alacsonyszintű csomagkezelést valósítanak meg, melyek szolgáltatásokat nyújtanak a magasabb szintű csomagkezelők számára (dpkg: apt, rpm: yum), melyeket egyszerűbb szintaxisuk miatt nagyobb előszeretettel használunk mi is. Nézzük is, mire használhatjuk ezeket a programokat:

egyszerűbb parancsok összefoglaló táblázata
dpkg rpm
Telepítés dpkg -i rpm -i
Eltávolítás dpkg -r rpm -e
Telepített programok listázása dpkg-query --l rpm -qa
Csomag részletes adatai dpkg-query --p rpm -qi
Csomaghoz tartozó összes file kilistázása dpkg-query --listfiles rpm -ql

2 DPKG

Telepítés

Kiegészítő kapcsolók --force-all: ha a telepítés folyamán valamilyen hiba lép fel, kikényszeríthetjük, hogy a telepítés folytatódjon, ugyanakkor használat ellen-javalt, mivel a dpkg nem hiába áll le a telepítéssel. Csak akkor használjuk, ha teljesen biztosak vagyunk a dolgunkban! --debug=[debug szintje] --refuse-downgrade: ugyan a dpkg figyelmeztet a downgrade-re, de nem kérdezi meg, ennek ellenére szeretnénk-e folytatni a telepítést, csupán a figyelmeztető üzenetet kapjuk meg. Ha az ennek következtében kialakuló fejfájást meg szeretnénk előzni, akkor használjuk ezt a kapcsolót, mely leállítja a telepítést downgrade esetén --purge: eltávolításkor a csomaghoz tartozó konfigurációs állományokat is törli.

3 RPM

Telepítés --force: ha a telepítés folyamán valamilyen hiba lép fel, kikényszeríthetjük, hogy a telepítés folytatódjon, ugyanakkor használat ellen-javalt, mivel az rpm nem hiába áll le a telepítéssel. Csak akkor használjuk, ha teljesen biztosak vagyunk a dolgunkban! -iv: több csomag telepítése esetén kiírja, hogy éppen mi települ (nem az -i mellett, hanem helyette használatos). -ivh: progress bar-t is kapunk --test: ellenőrzi, telepíthető-e a csomag. frissítés: rpm -F upgrade: rpm -U Frissítés esetén csak akkor kerül fel a csomag, ha annak egy verziója már szerepel a rendszeren. dpkg-statoverride Megmondja a dpkg számára, hogy más legyen a tulajdonosa egy adott fájlnak (vagy mappának, eszköznek, illetve bárminek, amit a dpkg kezelni képes). Jól használható olyan esetekben, amikor egy olyan programot szeretnénk telepíteni, melynek setuid flag-re van szüksége, vagy egy bizonyos csoport jogaihoz kötött a telepítése. Ezen felülbírálatok listáját menedzselhetjük a statoverride segítségével. Használata: dpkg-override --list: override-ok listázása. dpkg-override --add <tulajdonos> <csoport> <mód> <fájl>: új override hozzáadása dpkg-override --remove <fájl>: override törlése dpkg-divert Sokszor előfordulhat, hogy egy programot mindig egy adott kapcsolótengerrel szeretnénk indítani, amit begépelni nagyon fárasztó lehet. Erre a problémára ad megoldást a dpkg-divert. Adjuk ki az alábbi parancsot: dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc Mit is csináltunk most? Létrehoztunk egy új eltérést (diversion) a rendszerben, mely tulajdonképpen átnevezte a gcc programunkat gcc.real-re. De mire lesz ez jó? Hát arra, hogy a /usr/bin-ben létrehozunk egy szkript fájlt gcc néven, és itt „meghívjuk”a gcc.real-t az általunk fontosnak vélt kapcsolókkal. Ekkor ha begépeljük a gcc-t, már az általunk írt szkriptfájl fog lefutni. Probléma már csak akkor adódhatna, ha frissítenénk a rendszert, és a gcc is frissítés „áldozatává” válna, azonban ezzel egyben a rendszer tudtára adtuk, hogy ekkor a gcc.real-t frissítse. Ha el szeretnénk távolítani egy ilyen diversion-t, akkor, a gcc-s példát folytatva, az alábbi procedúrával tehetjük meg: a) töröljük a szkriptünket: rm /usr/bin/gcc b) eltávolítjuk magát a diversion-t dpkg-divert --rename --remove /usr/bin/gcc Ekkor visszaáll minden az eredeti formájába. A rendszerben levő diversion-öket így listázhatjuk: dpkg-divert --rename --remove /usr/bin/gcc dpkg-repack A jelenlegi disztribúciókban általában külön kell telepíteni. Egy telepített programot tudunk a segítségével visszaalakítani bináris .deb fájllá. Használata igen egyszerűnek mondható: dpkg-repack myprogram Ekkor a program létrehozza binárist, és már készen is vagyunk. Nem sok kapcsolója van, egyet említenék meg, mely sok esetben hasznos lehet: --arch=<architektúra>: a dpkg repack nem tudja visszafejteni, eredetileg milyen architektúrára készült a csomag, a kapcsoló segítségével viszont megadhatjuk neki (ha emlékszünk). Ha más volt az eredeti architektúra, akkor nem feltétlenül, de lehet hogy hibás lesz a csomag.

4 apt és yum

Habár a dpkg és rpm csomagkezelőkkel mindent meg lehet oldani, azonban ezek használata sokszor igen kényelmetlen: saját magunknak kell az egyes csomagokat felkeresni, valamint a függőségek kezelése sem az igazi.

5 APT (Advaced Packaging Tool)

Egy adatbázisban tárolja, hogy hol lehet fellelni az egyes csomagokat. Ha a csomagok telepítéséhez további csomagokra van szüksége, akkor azokat is felkeresi, és feltelepíti. Az apt számára azt is meg kell mondanunk, hogy hol találhat ilyen csomagokat, a beállítandó fájl: /etc/apt/sources.list .

Telepítés

Egyszerűen megadjuk a kívánt programok neveit az apt-get install parancs után: apt-get install <csomag1> <csomag2>….

Eltávolítás

Hasonló a telepítéshez, azonball install helyett remove-t adunk meg: apt-get remove <csomag1> <csomag2>… Ha a csomaghoz tartozó minden konfigurációs fájlt és beállítást is törölni szeretnénk, akkor a „purge” segítségével kell törölnünk. apt-get purge <csomag1> <csomag2>… És még egy hasznos parancs: apt-get autoremove Ezzel azon csomagokat törölhetjük, melyek csupán a függőségek kielégítése miatt lettek telepítve, de már nincs rájuk szükség.

Frissítés

Először is frissíteni kell a helyi index fájlokat: apt-get update Ezután jöhet a csomagok frissítése apt-get upgrade Ha nem csak az általunk telepített programokat szeretnénk frissíteni, hanem a telepített függőségeket is, akkor inkább ezt használjuk: apt-get dist-upgrade Egyéb hasznos funkciók apt-get check Végignézi a telepített csomagokat, csomagütközéseket, hiányzó függőségeket keres. apt-get install -f Az előbbi parancs által felfedezett hibákat javítja ki. apt-get (auto)clean A clean a telepítéshez használt csomagokat törli le, az autoclean ennek egy olyan részhalmazát törli, mely csomagokat már nem lehet letölteni, így azokra valószínűleg szükség sem lesz.

6 apt-cache

Csomaginformációk lekérdezésére használatos. Ez annyival nyújt többet a dpkg-nál, hogy nem csak a telepített csomagok között kereshetünk, hanem minden olyan csomag között, melyek szerepelnek a csomagadatbázisban. Írjuk is le az első apt-cache parancsunkat:

apt-cache search <string>

Ekkor az apt-cache elkezd keresgélni a csomagok nevei és leírásai között. Ha talál valamit, kiírja a csomag nevét egy egysoros magyarázattal, hogy mi az. Lekérdezhetünk teljes csomagleírásokat is, ehhez a showpkg kulcsszót használjuk:

apt-cache showpkg <csomag1> <csomag2>…

Így információt kaphatunk függőségekről, verziószámról, MD5 összegről, stb. Ha csak a függőségekre vagyunk kíváncsiak, azt kicsit szebb formátumban is kérhetjük:

apt-cache depends <csomag1> <csomag2>…

A fordított függőségeket pedig az alábbi paranccsal kérdezhetjük le:

apt-cache rdepends <csomag1> <csomag2>…

7 apt-file

Nem az apt csomag része, külön telepítést igényel. Segítségével a csomagban található fájlok között is kereshetünk. Hasonlít a „dpkg-query”-hez, azonban a nem telepített csomagok listájában is képes keresni. Használatánál figyeljünk arra, hogy mivel nem az apt csomag része, ezért adatbázisát külön kell frissíteni az apt-file update paranccsal. Keeresni a search kulcsszó segítségével tudunk: apt-file search <string> A „dpkg-query --listfiles”-hoz hasonlóan kilistázhatjuk a csomagban található összes fájlt - természetesen, az apt-tól megszokott kényelmi szolgáltatással, hogy nem telepített csomagot is listázhatunk: apt-file list <csomagnév>

8 YUM (Yellowdog Updater Modifier)

Az rpm csomagok felkutatása fáradságos, és emiatt fejlesztette ki a Red Hat a yum-ot: ez egy magasabb szintű csomagkezelő program, tulajdonképpen tökéletes párhuzam húzható közte, és az apt között. Egyszerűen a „yum” parancs után megadjuk a csomag nevét, és a megfelelő csomagot a yum letölti a megfelelő adatbázisból. Az rpm csomagok helyei a /etc/yum.conf, illetve a /etc/yum.repos.d könyvtárban találhatóak.

Telepítés

Az install kulcsszó használatával: yum install <csomag1> <csomag2>

Eltávolítás

A remove kulcsszó használatával jelölhetjük ki a törölni kívánt csomagokat. yum remove <csomag1> <csomag2>

Frissítés

A check-update paranccsal történik: yum check-update Ha nincs frissíthető csomag, akkor 0-val tér vissza, egyébként 100-zal. A csomagokat az update paranccsal frissíthetjük: yum update Viszont megadhatunk utána csomagneveket is, ekkor csak a kijelölt csomagokat fogja frissíteni. yum update <csomag1> <csomag2> Csomaginformációk Részletes információkat az „info” kulcsszó segítségével kérhetünk: yum info <csomag1> <csomag2> A rendszeren fent levő, vagy arra telepíthető csomagok listáját a „list all” paranccsal kérdezhetjük le: yum list all Keresni a search funkcióval tudunk: yum search <string> A keresett string-et a csomagok nevében keresi. Csomagban levő fájlok listázására a repoquery programot használhatjuk (yum-utils csomag): repoquery --list <csomagnév> apt-yum legfontosabb funkcióinak összefoglaló táblázata: apt yum Telepítés apt-get install yum install Eltávolítás apt-get remove yum remove Frissítés apt-get upgrade yum update Részletes csomaginformáció apt-cache showpkg yum info Csomagban levő fájlok listázása apt-file list repoquery --list

Személyes eszközök