Az apt és yum csomagkezelők összehasonlítása
a (→RPM) |
(→Csomagközi viszonyok) |
||
318. sor: | 318. sor: | ||
'''Requires''' |
'''Requires''' |
||
− | Ebbe a mezőbe azon programok kerülnek, melyek számos egyéb funkcionalitással ruházzák fel a programot. Fontos megjegyezni, hogy csak a csomag konfigurálása nem mehet ezen csomagok nélkül, tehát a csomag már unpacked üzemmódban már a rendszerben lehet a függőségek telepítése nélkül. |
+ | Ebbe a mezőbe azon csomagok kerülnek, melyek számos egyéb funkcionalitással ruházzák fel a programot, ezek nélkül a program futása értelmetlen, vagy nem is lehetséges, ezért "kötelező" őket telepíteni. Itt verziószámokat is megkövetelhetünk, például függjünk a foo csomag 2.7-es, vagy annál nagyobb verziójától: |
+ | |||
+ | Requires: bar >= 2.7 |
||
'''Pre-Req''' |
'''Pre-Req''' |
||
− | Hasonlít a depends-hez, de nem olyan erős, a konfiguráció létrejöhet az itt felsorolt csomagok nélkül, természetesen ezen csomagok telepítése is extra funkcionalitást (esetleg kevesebb bugot) adhat a rendszerhez. |
+ | A Debian féle Pre-Depends-hez hasonlít, tehát az itt felsorolt csomagoknak mindenképp fel kell hogy legyenek telepítve, mielőtt nekiállunk a csomag telepítésének. Viszont ez "deprecated" állapotban van, az rpm.org szerint a requires-t használva ehelyett helyes telepítést kapunk. |
'''Conflicts''' |
'''Conflicts''' |
||
− | Ahogy neve is sugallja, az itt felsorolt csomagok kibővíthetik a telepítendő csomag eszköztárát, de ezek nélkül is teljes értékű programot kapunk. |
+ | Ebben a szekcióban felsorolt csomagok, ha jelen vannak a rendszerben, rendkívül gonosz módon nem engedik az adott csomag telepítését, telepítésnél ördögűzést a --nodeps kapcsolóval végezhetünk, de csak ha biztosak vagyunk a dolgunkban. |
'''Provides''' |
'''Provides''' |
||
− | Tegyük fel, hogy van egy továbbfejlesztett csomagunk, más néven, mint az eredeti, legyen ennek a neve super-bar, és legyen egy foo csomag, ami függ az eredeti bar-tól pl.: |
+ | Ide olyan csomagok vannak beírva, melyek szolgáltatásit ez a csomag is el tudja látni. Virtuális csomagnak is nevezik ezeket, hiszen ezek valójában nem lesznek a rendszeren, csupán a szolgáltatásait nyújtja egy másik csomag. |
− | |||
− | Package: foo |
||
− | Depends: bar |
||
− | |||
− | Package: super-bar |
||
− | Provides: bar |
||
− | |||
− | Ez azt jelenti, hogy a super-bar csomag nyújtja a bar szolgáltatásit is, mely így kielégíti a foo csomag függőségét. |
||
== apt és yum == |
== apt és yum == |
A lap 2012. december 9., 13:03-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[elrejtés] |
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:
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
2.1 Telepítés
Telepítést az -i kapcsoló segítségével hajthatunk végre:
dpkg -i <csomag1> <csomag2>
Telepíthetjük a csomagokat lépésről-lépésre is, ugyanis a fenti parancs telepíti ÉS beállítja a csomagot. A lépések a következők:
dpkg --unpack <csomag1> <csomag2>
telepíti a csomagot, de nem állítja be, unpacked állapotba kerül.
dpkg --configure <csomag1> <csomag2>
beállítja a megfelelő csomagot, ha az legalább unpacked állapotú.
dpkg --configure --pending
minden beállítatlan csomagot konfigurál.
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]
Telepítés során különböző mennyiségű információt kérhetünk le. Az 1-es szint a default, ennél csak több információt kaphatunk.
--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.
2.2 Eltávolítás
Az eltávolítást az -r kapcsolóval kezdeményezhetjük:
dpkg -r <csomag1> <csomag2>
Kiegészítő kapcsolók
--purge
Eltávolításkor a csomaghoz tartozó konfigurációs állományokat is törli.
2.3 Csomagokkal kapcsolatos lekérdezések
Viszonylag egyszerűen lekérdezhetjük a gépre telepített csomagok listáját:
dpkg -l
Ha ennél bonyolultabb lekérdezéseket akarunk végrehajtani, akkor szükségünk lesz a dpkg-query csomagra. A fentihez hasonló módon ezzel is lehetséges a telepített csomagok lekérdezése:
dpkg-query -l
Használhatjuk úgy is, hogy csomagneveket adunk meg utána, ekkor részletes adatokat kapunk a megadott csomagokról:
dpkg-query -l <csomag1> <csomag2>
Ha még részletesebb adatokra vágyunk, használjuk a -p kapcsolót:
dpkg-query -p <csomag>
Ha csak az adott csomag verziószámára vagyunk kíváncsiak, kiadhatjuk a kvetkező parancsot:
dpkg-query --show <csomag1> <csomag2>
A csomaghoz tartozó összes fájl és elérési útjuk listázása:
dpkg-query --listfiles
A --search kapcsolóval csomagok fájljai között keresgélhetünk:
dpkg-query --search <kulcsszó>
2.4 Egyéb hasznos funkciók
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:
Override-ok listázása:
dpkg-override --list
Új override hozzáadása
dpkg-override --add <tulajdonos> <csoport> <mód> <fájl>
Override törlése:
dpkg-override --remove <fájl>
2.5 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
Egy már feltelepített programból képes visszafejteni a binárist .deb fájllá. A jelenlegi disztribúciókban általában külön kell telepíteni. Használata igen egyszerűnek mondható:
dpkg-repack programnév
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.
2.6 debconf
Rendszerszintű konfigurációs feladatokat képes elvégezni. Tulajdonképpen egy backend adatbázisból (van ldap backend is), valamint egy ennek beállítására szolgáló frontend-ből áll. Ha egy csomag települ, a debconf kérdéseket tesz fel a felhasználónak, melyek meghatározzák a rendszerszintű konfigurációs fájlok tartalmát. Ha szükséges, ezek után a felhasználó visszamehet, és megváltoztathatja a csomag konfigurációját a dpkg-reconfigure segítségével.
Telepítés után futtathatunk programokat debconf felügyelettel:
debconf −−frontend=readline sh −x my−shell−prog
Különböző frontendjei vannak, a readline a konzolos verzió. Van még egy egyszerű grafikus interfész (dialog), valamint gnome, és kde is.
2.7 A csomagok állapotai
Egy dpkg csomagnak megannyi állapota lehet, melyek főként a telepítés állapotától függnek:
- fel van telepítve és be van konfigurálva: installed
- a telepítés elkezdődött, de megszakadt, vagy sikertelen volt: half-installed
- nincs telepítve: not-installed
- telepített, de nincs beállítva: unpacked
- telepített, de nem sikerült teljesen beállítani: half-configured
- csak a konfigurációs fájljai vannak meg: config-files
Egy kiválasztott csomagnak három állapota lehet:
- kiválasztva telepítésre: install
- kiválasztva törlésre: deinstall
- teljes törlés: purge
Ezen felül még két állapota lehet egy csomagnak:
- a csomagkezelő nem változtat az állapotán: hold
- újra kell telepíteni a csomagot, mert az megsérült: reinst-required
2.8 Csomagközi viszonyok
Az egyes csomagok kontroll-fájlokat deklarálhatnak maguknak, melyek tartalmazzák egyéb csomagokhoz fűződő gyengéd kapcsolatukat - főként azt, hogy milyen egyéb csomagoktól függenek, esetleg hogy nem telepíthetőek más csomaggal együtt. Ezek befolyásolására hét mező van definiálva: Depends, Pre-Depends, Recommends, Suggests, Enhances, Breaks és Conflicts.
Depends
Ebbe a mezőbe azon programok kerülnek, melyek számos egyéb funkcionalitással ruházzák fel a programot. Fontos megjegyezni, hogy csak a csomag konfigurálása nem mehet ezen csomagok nélkül, tehát a csomag már unpacked üzemmódban már a rendszerben lehet a függőségek telepítése nélkül.
Recommends
Hasonlít a depends-hez, de nem olyan erős, a konfiguráció létrejöhet az itt felsorolt csomagok nélkül, természetesen ezen csomagok telepítése is extra funkcionalitást (esetleg kevesebb bugot) adhat a rendszerhez.
Suggests
Ahogy neve is sugallja, az itt felsorolt csomagok kibővíthetik a telepítendő csomag eszköztárát, de ezek nélkül is teljes értékű programot kapunk.
Enhances
Tulajdonképpen nagyon hasonlít a suggest-hez, de fordított irányban: azon csomagok vannak ide felsorolva, melyek funkcionalitását bővíti a telepítendő csomag.
Pre-depends
Az itt felsorolt csomagoknak nem elég konfiguráció előtt a gépen lenniük. Arra kényszeríti a dpkg-t, hogy az adott csomag telepítése előtt már ezek a csomagok fel legyenek telepítve. Használata csak indokolt esetben javasolt, például ha a rendszerre veszélyt jelentene sima depends-ként felsorolni a csomagokat. Ha valaki csomagot készít, és szerinte indokolt pre-depends-t használni, annak meg kell ezt beszélnie a debian-devel levelező listán.
Breaks
Az itt felsorolt csomagokkal baj lesz, ha fel szeretnénk telepíteni a csomagunkat: a dpkg ugyanis nem fogja engedélyezni a telepítést egészen addig, míg ezeket a csomagokat legalább Half-configured állapotba nem hozzuk telepítettből.
Replaces
Két dologra is használható: egyrészt egy csomag egy fájlját lehet vele lecserélni, illetve teljes csomagot is lecserélhet. Ha változtatás történik egy másik csomag fájljában, akkor annak tulajdonosi jogai átkerülnek a csomaghoz, mely megváltoztatta. Ha teljes csomagokat szeretne felülírni, akkor tulajdonképpen azokat először eltávolítja, és utána kezdődik a telepítés. Eltávolítás helyett viszont virtuális csomagnak is kijelölhetjük.
Provides
Tegyük fel, hogy van egy továbbfejlesztett csomagunk, más néven, mint az eredeti, legyen ennek a neve super-bar, és legyen egy foo csomag, ami függ az eredeti bar-tól pl.:
Package: foo Depends: bar Package: super-bar Provides: bar
Ez azt jelenti, hogy a super-bar csomag nyújtja a bar szolgáltatásit is, mely így kielégíti a foo csomag függőségét.
3 RPM
3.1 Telepítés
A telepítés az -i kapcsoló segítségével történik:
rpm -i <csomag1> <csomag2>
Telepíthetjük a csomagokat lépésről-lépésre is, ugyanis a fenti parancs telepíti ÉS beállítja a csomagot. A lépések a következők:
rpmbuild -bp <csomag>
telepíti a csomagot, unpacked állapotba kerül.
rpmbuild -bc <csomag>
a csomag builded állapotba kerül.
rpmbuild -bi <csomag>
a csomag installed állapotba kerül.
rpmbuild -bb <csomag>
a bináris elkészítése.
Kiegészítő kapcsolók
--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!
-v: több csomag telepítése esetén kiírja, hogy éppen mi települ (nem az -i mellett, hanem helyette használatos).
-h: progress bar-t is kapunk.
--test: ellenőrzi, telepíthető-e a csomag.
--nodeps: nem ellenőri a függőségeket, csak akkor használjuk, ha tudjuk mit csinálunk.
3.2 Eltávolítás
Az -e kapcsoló segítségével adhatjuk tudtára a csomagkezelőnek, hogy egy csomag elérte számunkra a nemkívánatos státuszt:
rpm -e <csomag1> <csomag2>
3.3 Frissítés
Frissíteni így tudunk:
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.
3.4 Csomagokkal kapcsolatos lekérdezések
A gépre telepített csomagok lekérdezése a -qa kapcsolóval történhet:
rpm -qa
A csomaghoz tartozó összes fájl listázása:
rpm -ql <csomag>
Amennyiben egy csomag verziószámára vagyunk kíváncsiak:
rpm -q <csomag>
Ha ennél jóval több információra van szükségünk a csomagról:
rpm -qi <csomag>
3.5 A csomagok állapotai
Egy rpm csomagnak több állapota lehet, attól függően, hogy a telepítés mely állapotában van éppen:
- nincs telepítve: not-installed
- forrás csomag kicsomagolva: unpacked
- a csomag le van fordítva: builded
- ki van csomagolva, fordítva és fel van telepítve: installed
3.6 Csomagközi viszonyok
Az egyes csomagok spec-fájlokat deklarálhatnak maguknak, melyek tartalmazzák függőségeiket más csomagokhoz - főként azt, hogy milyen egyéb csomagoktól függenek, esetleg hogy nem telepíthetőek más csomaggal együtt. Ezek befolyásolására négy tag van definiálva: Requires, Pre-Req, Provides, és Conflicts.
Requires
Ebbe a mezőbe azon csomagok kerülnek, melyek számos egyéb funkcionalitással ruházzák fel a programot, ezek nélkül a program futása értelmetlen, vagy nem is lehetséges, ezért "kötelező" őket telepíteni. Itt verziószámokat is megkövetelhetünk, például függjünk a foo csomag 2.7-es, vagy annál nagyobb verziójától:
Requires: bar >= 2.7
Pre-Req
A Debian féle Pre-Depends-hez hasonlít, tehát az itt felsorolt csomagoknak mindenképp fel kell hogy legyenek telepítve, mielőtt nekiállunk a csomag telepítésének. Viszont ez "deprecated" állapotban van, az rpm.org szerint a requires-t használva ehelyett helyes telepítést kapunk.
Conflicts
Ebben a szekcióban felsorolt csomagok, ha jelen vannak a rendszerben, rendkívül gonosz módon nem engedik az adott csomag telepítését, telepítésnél ördögűzést a --nodeps kapcsolóval végezhetünk, de csak ha biztosak vagyunk a dolgunkban.
Provides
Ide olyan csomagok vannak beírva, melyek szolgáltatásit ez a csomag is el tudja látni. Virtuális csomagnak is nevezik ezeket, hiszen ezek valójában nem lesznek a rendszeren, csupán a szolgáltatásait nyújtja egy másik 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 .
5.1 Telepítés
Egyszerűen megadjuk a kívánt programok neveit az apt-get install parancs után:
apt-get install <csomag1> <csomag2>….
5.2 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.
5.3 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.
5.4 update-alternatives
A csomagtelepítő szolgáltatások menedzselik a symlinkek beállítását, melyek különböző verziókra mutatnak. Az update-alternatives segítségével saját symlinkeket hozhatunk létre, így akár több verzió is békében megélhet egymás mellett. Vegyük például, hogy feltelepítettük a legújabb firefoxot, azonban szokás szerint teli van hibákkal, ezért átmenetileg szeretnénk használni a régebbi verziót:
update-alternatives --install /usr/bin/firefox firefox /usr/bin/firefox-15.0 70 update-alternatives --install /usr/bin/firefox firefox /usr/bin/firefox-3.5 90
Így ha a konzolba begépelem a "firefox" parancsot, akkor a 3.5-ös verzió fog elindulni, mivel magasabb prioritást adtam meg a számára (az utolsó megadott számjegy a prioritás). Ha szeretnénk ellenőrizni, hogy jelenleg melyik aktív:
update-alternatives --display firefox
5.5 update-mime
Frissíti a /etc/mailcap fájlt, hogy jelezze a változtatások, melyet a csomagkezelő rendszer végzett telepítés, illetve eltávolítás során. A bejegyzések sorrendjét a /etc/mailcap fájlban a /etc/mailcap.order szerkesztésével lehetséges.
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>…
Az apt-cache policy a preferences fájllal kapcsolatos debug problémákban hivatott segíteni. Argumentumok megadása nélkül az egyes források prioritását írja ki. Egyébként a megnevezett csomag prioritásáról és ehhez kapcsolódó információkról ad részletes adatokat. Például apt-pinning esetén igen hasznos lehet.
apt-cache policy <csomag>
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. Keresni 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 apt-pinning
Elsősorban a Stable, Testing, Unstable forrásokat lehet segítségével vegyíteni a megfelelő arányban. Az olyan eszközök, programok, melyek nem kritikusak a rendszer szempontjából, nem annyira fontos, hogy stable verzió fusson belőle, és esetleg megengedhető, hogy a felmerülő hibák rovására egy olyan verziót futtassunk, mely az összes általunk kívánt fícsört szolgáltatja.
Az /etc/apt/sources.list tartalmazza a depók listáját, ezt módosítsuk úgy, hogy az általunk szükségesnek ítélt depók megjelenjenek benne.
Módosítsuk az /etc/apt/preferences fájlt! A pinning itt történik, általában a legmagasabb verziójú csomag az érvényes, azonban itt felülbírálhatjuk a dolgokat. Így nézhet ki egy egyszerű preferences:
Package: * Pin: release a=stable Pin-Priority: 700 Package: * Pin: release a=testing Pin-Priority: 650 Package: * Pin: release a=unstable Pin-Priority: 600
A nagyobb prioritású van érvényben, tehát a stable.
Ezután adjuk ki az apt-get update parancsot! Jó eséllyel az alábbi hibát fogjuk tapasztalni:
E: Dynamic MMap ran out of room E: Error occured while processing sqlrelay-sqlite (NewPackage) E: Problem with MergeList /var/lib/apt/lists/ftp.us.debian.org_debian_dists_woody_contrib_binary-i386_Packages E: The package lists or status file could not be parsed or opened.
Laikus windows felhasználó erre megnézné, hogy működik-e a DVD meghajtó, mi ne tegyük, hanem inkább nyissuk meg az /etc/apt/apt.conf fájlt, és adjuk hozzá az alábbi sort:
APT::Cache-Limit "8388608";
A probléma az volt, hogy nem fért be az apt cache-ébe a sok csomag, így viszont szépen megnöveltük a cache-t, így a hiba jó eséllyel eltűnik.
Ezek után már csak telepítenünk kell:
apt-get -t unstable install <csomag>
Készen vagyunk.
9 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.
9.1 Telepítés
Az install kulcsszó használatával:
yum install <csomag1> <csomag2>
9.2 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>
9.3 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>
9.4 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 <kulcsszó>
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>
10 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 |