Yum használata - beállítások
A csomagkezelés világa című írásunkban betekintést engedtünk az RPM csomagkezelés alapjaiba. Soron következő írásaink a népszerű yum csomagkezelő alkalmazás és annak legnépszerűbb grafikus felületének alapvető kezelésébe igyekszik bevezetni az olvasót.
A yum - teljes nevén: Yellow Dog Updater, Modified - egy nyílt forráskódú, parancssoros csomagkezelő alkalmazás. Eredetileg a Duke egyetemen kezdték el fejleszteni, de újabban a Red Hat is részt vesz a munkában. A Red Hat disztribúcióiban alapértelmezett csomagkezelőként használja, ezen kívül más terjesztésekben is megtalálhatjuk, olyanokban mint a Fedora vagy a CentOS. Mivel a yum alapvetően konzolos program, így később számos grafikus felület készült hozzá. Legnépszerűbbek a Yum Extender és a KYum. Ezekről később még lesz szó.
Mielőtt a használatába belemerülnénk, időzzünk el egy kicsit a beállítási lehetőségeinél. Alapvető beállításait a /etc/yum/yum.conf vagy /etc/yum.conf - Linux programoknál megszokottan - text fájlban tárolja. Ez tetszőleges szerkesztővel megnyitható, de szerkesztéséhez root jogra van szükség.
su -c "nano /etc/yum/yum.conf"
Érdemes átnézni a legfontosabb beállítási lehetőségeket. Két fő csoportra oszlanak a beállítások, egyik a main, másik a repository szekció. Az elsőbe kerülnek a program globális beállítási, illetve az összes tárolóra vonatkozóak. A másodikba a tárolókat és azok tulajdonságait állíthatjuk be, de a legtöbb esetben a tárolókan saját konfigurációs állományuk van a /etc/yum.repos.d/ könyvtárban a repo-neve.repo nevű fájlokban. Ez utóbbit egy későbbi írásban részletesen is tárgyaljuk.
Az első main szekciónak mindenképpen léteznie kell, hogy a yum működjön. A beállítások többségének van alapértelmezett értéke. Amennyiben ez a fájl másként nem rendelkezik, nem szükséges külön beállítani, az alapértelmezett értéket veszi fel. Érdemes ezekben a disztribútor beállításaira hagyatkozni, csak külön igény esetén módosítani a beállításokat.
Szemléltetésként egy példa:
[main] cachedir=/var/cache/yum keepcache=1 logfile=/var/log/yum.log exclude=udev gnome-commander wine* gpgcheck=1 repo_gpgcheck=0 plugins=1
Lássuk részletesen a példában szereplő beállításokat:
cachedir=/var/cache/yum
Ez meghatározza, hogy a yum hová töltse le a csomag adatbázist, illetve a .rpm csomagokat. Itt tárolja ezeket az átmenetileg szükséges állományokat. Lehetőségünk van ide, vagy másik könyvtárba összegyűjteni a telepített vagy frissített rpm-eket. Ennek nagy jelentősége lehet, ha valamilyen gond adódik a frissített programokkal. Elég szabad hely esetén meghagyhatjuk a csomagokat.
keepcache=1
Értéke meghatározza, hogy telepítés vagy frissítés végeztével megtartja-e a cache fájlokat. Alapértéke:1 Fentebb írt módszerhez hasznos lehet, ha meg akarjuk tartani a csomagokat.
logfile=/var/log/yum.log
Meghatározza, hogy a yum mely fájlban helyezze el az eseménynaplóját. Alap értéke nincs, érdemes meghatározni.
exclude=
Kitilthatunk bizonyos csomagokat. Sem telepíteni, sem frissíteni nem engedi a yum az itt felsoroltakat. Amennyiben egy problémás frissítésbe ütköztünk, ezzel az opcióval tilthatjuk le a frissítését. Így a többi csomagot frissíthetjük. A listában használhatunk joker karaktereket, az egyes elemeket szóközzel válasszuk el. A példában látható is, hogy kitiltottam néhány csomagot, mivel az újabb verziók nem működtek megfelelően. Persze ezek nálam nem voltak megfelelő frissítések és a szemléltetés miatt kerültek bele. De előfordulhat, hogy szükség van erre az opcióra.
gpgcheck=1
Meghatározza, hogy a yum ellenőrizze -e a gpg kulcsokat az rpm csomagoknál. Ha a main szekcióban meghatározzuk, az kihat az összes csomag kezelésére. Mivel alapértéke 0, így tanácsos bekapcsolni! Ha lehet, mindenképpen használjuk ezt az ellenőrző/aláíró rendszert, mint ahogy a példa is mutatja!
repo_gpgcheck=0
Fentebbihez hasonló, csak a tárolók adatainak ellenőrzését végzi. Kevésbé fontos, mint a fenti, akár ki is lehet kapcsolni.
plugins=1
A yum csomagkezelő jellemzője, hogy beépülő modulokkal könnyen bővíthető. Ezek a yum plug-inok. Ezzel az opcióval engedélyezhetjük a használatukat. Parancssorban külön ki-be kapcsolhatjuk őket a --noplugins kapcsoló megadásával az egyes műveleteknél. Vagy csak egy beépülőt kapcsolhatunk ki a --disableplugin=[plugin] kapcsolóval illetve be a --enableplugin=[plugin] kapcsoló segítségével. Ezeket tetszés szerint kombinálhatjuk is növelve a parancs hosszát. Itt a példában globálisan engedélyezve vannak a beépülők.
Ezek a példában is említett beállítási lehetőségek. Ennyi beállítással már hatékonyan és biztonságosan lehet üzemeltetni a csomagkezelést. Persze a rendszer telepítse után nem kell feltétlenül ezeket külön beállítani, mert egy alap konfigurációt eleve kapunk. Ezeken kívül van még néhány beállítási lehetőség, amit érdemes megismerni.
Ezek:
reposdir=/etc/yum/repos.d
Az a könyvár, ahol a yum a tárolók .repo fájljait keresei. Alapértelmezetten ez a: /etc/yum/repos.d
Persze igény esetén ezt is áthelyezhetjük.
assumeyes=0
Ezzel az opcióval a yum minden kérdésére automatikusan igennel válaszolhatunk. Használata nem javasolt! Érdemes mindig egy utolsó pillantást vetni az elvégzendő műveletekre. A függőségi rendszer miatt az egyes feladatok kellemetlen meglepetést okozhatnak. Tartsuk tehát kikapcsolva. Parancsban ugyanezt jelenti a -y kapcsoló megadása.
installonlypkgs=
Így adhatjuk meg azokat a csomagokat, melyeket nem frissíteni, hanem telepíteni kívánunk. Tipikusan - alapértelmezés szerint is - a kernel csomagok tartoznak ebbe a kategóriába. Ezekből a régebbieket megtartja a rendszer, hogy probléma esetén is elindítható legyen a számítógép.
installonly_limit=2
Ezzel adjuk meg a fentebb tárgyalt "csak telepítendő" csomagok maximális számát. Tehát, hogy hány kernel legyen telepítve egyszerre. Alapértelmezetten ez 2, így például csak egy előző kernel marad a rendszerben.
timeout=20
Másodpercekben meghatározott időtartam. Ennyi ideig próbálkozik a yum csatlakozni egy szerverhez. Ha sikertelen, akkor lép tovább a következőre a mirror listában. Alap értéke 30 másodperc, türelmetlenebbek lejjebb vehetik.
pluginpath=
A beépülők helye. Alapértelmezés szerint ezek: /usr/share/yum-plug-ins és /usr/lib/yum-plugins. Ha kézzel telepünk beépülőt nem szabványos útvonalra, akkor érdemes itt jelölni a rendszer számára.
pluginconfpath=
Azt a könyvtárat jelöli, ahol a yum a beépülők konfigurációs állományait keresi. Ha nem állítunk be értéket, akkor a /etc/yum/pluginconf.d útvonalon keresi. Érdemes megemlíteni, hogy minden egyes beépülő saját beállító fájlt használ. Ezek alakja: pontos-nev.conf
Az itt felsoroltakon kívül még jó néhány más opció is megadható. Ha nincs különösen igényünk valamelyikre, akkor ezeket nyugodtan hagyjuk az alapértelmezett értékükön.
Részletesebb információt a kézikönyv oldalából kaphatunk.
man yum.conf
Következő részben a yum alapparancsaival foglalkozunk.
- A hozzászóláshoz be kell jelentkezni
- 3162 olvasás
Hozzászólások
Ez egy félig off
Ez egy félig off hozzászólás. Nincs valakinek kedve, türelme, ideje rpm csomagkészítésről írni? Mondjuk legyen a feladat az, hogy adva van egy forrás rpm, ezt telepítsük valahogyan valahova, módosítsunk a forráskódon, majd ebből készítsünk egy módosított forrás rpm-et, aztán egy bináris rpm-et. Hogy konkrét példával éljek, az a gondom, hogy az mcedit használatánál az eredendően nem látható szóközök és tab-ok láthatóvá vannak téve. Fekete háttéren a kék background szín tab-ok és szóközök esetén nem olyan vicces. Megkerestem a forrásban, s az editdraw.c file-ban kellene a
int visible_tabs = 1, visible_tws = 1;sorban a változók értékeit 0-ra írni. Illetve jobb lenne kihozni az ini file-ba, konfigurálhatóvá.
Nekem tetszik a téma
Nekem tetszik a téma felvetés. Csomagkezelés nagyon nagy téma. Lehet lesz szó ilyesmiről is, még nem tudom mikor és ki által.:)
Esetleg ha utánajársz, írhatsz blogbejegyzést, vagy ha sürgős, nyiss egy topikot itt és megbeszéljük.:)
Kipróbáltam, nem is
Kipróbáltam, nem is vészes a metódus. :)
Megkeresed az src.rpm-et. Itt.
Telepíted:
Ekkor a
/usr/src/redhat/SOURCES
könyvtárba kerül a becsomagolt forráskód és a patchek.
Valamint a
/usr/src/redhat/SPECS
könyvtárban lesz az mc.spec fájl, ami alapján majd lefordítja és becsomagolja a rendszer. Érdemes benne megnézni a Requires sorokat, mert azok kellenek a fordításhoz.
A forrást kicsomagolod, módosítod ahogy akarod. Majd visszacsomagolod ugyan arra a névre. Esetleg csinálsz egy plusz patchet. De ekkor jelezni kell a spec fájlban.
Ha kész, akkor elvégzed a fordítást:
Ekkor létrejön az rpm a /usr/src/redhat/RPMS/i386 könyvtárban. Már csak telepíteni kell:
Igaz, ez elég csúnya módszer, de kipróbáltam, elindul a program. (Nem ártana jelezni a változásokat, meg aláírás is kellene. Nem nagyon értek a csomagkészítéshez) Viszont érdekesen működik az mcedit. Fehér kérdőjelek jelennek meg a 2. tabnál. :)
C-hez egyáltalán nem értek.
(Viszont kedvet kaptam csomagkészítéshez. Nem is olyan nehéz. :))
Köszönöm, ha lesz egy kis
Köszönöm, ha lesz egy kis időm, kipróbálom!
A kérdőjeleket sikerült
A kérdőjeleket sikerült eliminálnom, de akkor a kijelölés nem volt jó, ott is fekete maradt. Közel állok a megoldáshoz, de egyfelől nem tudok C-ül, másfelől nem egészen látom, hogyan ábrázolódik az a struktúra, ahova a p pointer mutat, harmadrészt bonyolítva van ez még az UTF8 ábrázolással, hogy ne legyen egyszerű az élet. De sejtéseim vannak, ha lesz még időm, lehet, játszom vele. És hogy valamelyest szép legyen, patch-et csinálok, nem a módosított forrást tömörítem vissza.
mc patch
No, úgy néz ki, kifaragtam a patch-et. Az volt a hiba, hogy a struktúrában a karakter helyére a stílust jelző flag-et írták, a stílushoz meg semmit. Ez a patch-ből látszik is:
--- mc-4.6.2-pre1/edit/editdraw.c.invisible 2008-11-22 12:39:08.000000000 +0100
+++ mc-4.6.2-pre1/edit/editdraw.c 2008-11-23 02:02:31.000000000 +0100
@@ -295,7 +295,7 @@
}
}
-int visible_tabs = 1, visible_tws = 1;
+int visible_tabs = 0, visible_tws = 0;
/* b is a pointer to the beginning of the line */
static void
@@ -402,7 +402,8 @@
c = p->style & ~MOD_CURSOR;
p++;
while (--i) {
- p->ch = c;
+ p->ch = ' ';
+ p->style = c;
p++;
}
}
Inaktív projekt
Ahogy nézem már nem fejlesztik a programot. Esetleg próbáld meg felvenni a kapcsolatot a csomag készítőjével. Ha opcióként is választható, akkor lehet még be is kerül a patch. :)
Ez rossz hír
Segítenél egy linkkel, hogy ezt hol lehet megnézni? Ez egyben azt jelenti, hogy a bugreport-om az idők végezetéig a bugzillában lesz new státusszal, s F10-ben sem hoznak ki javítást hozzá?
Ha az mc honlapjára gondolsz, onnan az látszik, hogy az mc-t nem fejlesztik, de én a fedorás módosításhoz készítettem a patch-et, s a bugzilla.redhat.com-ra küldtem.
Az is jó lehet
Szerintem ha oda írtál az is jó. A .spec fájl szerint még karban tartják, egy bizonyos Jindrich Novy neve szerepel a changelogokban még márciusban került bele javítás. Vele felveheted a kapcsolatot e-mailben. (jnovyKUKUCredhat.com)
Apropó, csomagkezelés.
Apropó, csomagkezelés. Arról beszélj nekem, miért nem mutatta meg a yumex az
alsa-plugins-pulseaudio.i386csomagot, miközben a yum simán feltette. Az összes csomag megmutatását kértem, nem szűrtem architektúrára, mégis csak a 64 biteset mutatta meg.Jó kérdés. Hogyhogy nem
Jó kérdés. Hogyhogy nem mutatta? yumexel esetleg keress rá, akkor látszik? yum deplist pulse-akármi vel sem látszik?