Fejezet 7. Felhasználói alkalmazások

7.1. Hol vannak a felhasználói programok?
7.2. Hogyan tudjuk beállítani az INN (Internet News) szolgáltatást a gépünkön?
7.3. A FreeBSD rendelkezik Java™ támogatással?
7.4. Miért nem fordul egy port a 6.X-STABLE vagy a 7.X-STABLE változatot futtató gépeken?
7.5. A make index paranccsal nem sikerült létrehozni az INDEX állomyánt. Mi a gond?
7.6. A CVSup miért nincs a FreeBSD forrásai között?
7.7. A forrásokon kívül a telepített portokat is lehet valahogy frissíteni?
7.8. Minden nagyobb verziófrissítésnél újra kell fordítani az összes telepített portot a rendszeren?
7.9. Minden kisebb verziófrissítésnél újra kell fordítani az összes telepített portot a rendszeren?
7.10. A /bin/sh miért ilyen egyszerű? A FreeBSD-ben miért nincs bash vagy valamilyen más rendes parancsértelmező?
7.11. A Netscape® és az Opera indítása miért tart olyan sokáig?
7.12. Ha a CVSup használatával frissítjük a Portgyűjteményt, akkor sok port nem fordul le mindenféle rejtélyes hibaüzenet kíséretében! Valami nagy baj van a Portgyűjteménnyel?
7.13. Hogyan lehet MIDI állományokból audio CD-t készíteni?

7.1. Hol vannak a felhasználói programok?

Nézzünk szét a portok között és láthatjuk, hogy milyen szoftvereket portoltak eddig FreeBSD-re. A listában pillanatnyilag 20 000 port található és naponta növekszik, ezért érdemes folyamatosan figyelni vagy az új portokról úgy is értesülhetünk rendszeresen, ha feliratkozunk a FreeBSD announcements levelezési lista címére.

A legtöbb portnak működnie kell a 6.X, 7.X és 8.X ágak használata esetén is. Mindegyik FreeBSD kiadás elkészítésekor készül egy pillanatfelvétel a portokat tartalmazó könyvtárról és bekerül a ports/ könyvtárba.

Ezenkívül még “csomagok” is rendelkezésünkre állnak, amelyek lényegében egy tömörített bináris terjesztési formát takarnak, némi plusz információval kiegészítve az egyéni telepítésekhez elvégzéséhez. A csomagok könnyen telepíthetőek és eltávolíthatóak anélkül, hogy pontosan ismernénk a benne található állományok összes apró részletét.

A különböző csomagokat a sysinstall(8) programban (a Configure menün belül) található Packages menüpontban tudjuk telepíteni, vagy meghívjuk meg a pkg_add(1) parancsot. A csomagokat leginkább .tbz kiterjesztésükről lehet megismerni, valamint a telepítő CD-ken a packages/All könyvtárban találhatóak. Az interneten keresztül is le tudjuk tölteni ezek közül a FreeBSD különböző verzióihoz tartozó változatukat a hozzánk legközelebbi tükrözésekről:

Nem mindegyik port érhető el csomagként, mivel folyamatosan készülnek az újabbak. Ezért mindig érdemes bizonyos időközönként ellenőrizni a központi ftp.FreeBSD.org oldalon található csomagokat.

7.2. Hogyan tudjuk beállítani az INN (Internet News) szolgáltatást a gépünkön?

Telepítsük az news/inn csomagot vagy portot és utána kiindulásképpen nézzük meg Dave Barr INN oldalát, ahol (angolul) találhatunk egy INN GYIK-ot.

7.3. A FreeBSD rendelkezik Java™ támogatással?

Igen. Látogassunk el a http://www.FreeBSD.org/java/ oldalra.

7.4. Miért nem fordul egy port a 6.X-STABLE vagy a 7.X-STABLE változatot futtató gépeken?

Ha olyan FreeBSD verziónk van, amely egy kicsit lemaradt az aktuális -CURRENT vagy -STABLE ágak mögött, akkor valószínűleg frissítenünk kell a Portgyűjteményünket. Ennek részleteiről a Porterek kézikönyvében, a Keeping Up című részben olvashatunk (angolul). Ha viszont rendszerünkben minden a lehető legfrissebb, akkor előfordulhat, hogy valaki olyan változtatást rakott fel a porthoz, amely a -CURRENT esetén működik, de a -STABLE változatban már nem. Ilyenkor feltétlenül küldjünk egy hibajelentést a send-pr(1) paranccsal, hiszen a Portgyűjteménynek a -CURRENT és -STABLE ágak esetén egyaránt működnie kell.

7.5. A make index paranccsal nem sikerült létrehozni az INDEX állomyánt. Mi a gond?

Elsőként mindig ellenőrizzük, hogy a Portgyűjteményünk a lehető legfrissebb. A legfrissebb változatnál jelentkező INDEX készítési hibák mindig szem előtt vannak, ezért általában gyorsan megjavulnak.

Ha viszont egy friss verzióval rendelkezünk, akkor elképzelhető, hogy egy másik hibával kerültünk szembe. A make index parancsnak van egy olyan hibája, amely miatt nem képes a Portgyűjtemény hiányos példányával dolgozni. Feltételezi ugyanis, hogy az összes olyan port megtalálható a rendszerünkben, amely telepítése szükséges az adott porthoz. Ennek megértéséhez most képzeljük el, hogy megvan az ize/mize port a lemezen, amely függ az aze/maze porttól, és emiatt az aze/maze portnak és függőségeinek is rajta kell lennie a lemezünkön. Minden más esetben a make index nem tud összegyűjteni elegendő információt ahhoz, hogy létre tudja hozni a függőségi gráfot.

Ez különösen olyan FreeBSD felhasználókkal fordul elő, akik a cvsup(1) (vagy csup(1)) használatával frissítik a Portgyűjteményüket, de a refuse állományokban kizártak néhány kategóriát. Elméletben természetesen ki lehet zárni akármilyen kategóriát, azonban a gyakorlat azt mutatja, hogy ez szinte lehetetlen, mivel túlságosan sok port függ más kategóriákban található portoktól. Amíg valaki meg nem oldja ezt a problémát, addig fogadjuk el általános szabálynak, hogy az INDEX létrehozásához a teljes Portgyűjteménnyel rendelkeznünk kell.

Néhány ritka esetben még előfordulhat, hogy az INDEX azért nem jön létre, mert a make.conf állományban megadtunk valamilyen WITH_* vagy WITHOUT_* változót. Ha úgy érezzük, hogy ez okozhatja a problémát, akkor próbáljuk meg először ezen változók nélkül létrehozatni az INDEX állományt és csak utána jelenteni a hibát a FreeBSD ports levelezési lista címére.

7.6. A CVSup miért nincs a FreeBSD forrásai között?

A FreeBSD alaprendszerét úgy állították össze, hogy saját magát legyen képes legyen lefordítani, vagyis az egész operációs rendszer előállítható legyen néhány alapvető eszköz használatával. Ezért a források között leginkább csak az található meg, ami feltétlenül kell a források lefordításához. Ilyen például a C fordító (gcc(1)), a make(1), awk(1) és a többi.

Mivel a CVSup a Modula-3 programozási nyelven íródott, csak úgy tudnánk beletenni a FreeBSD alaprendszerbe, ha hozzávennénk és karbantartanánk egy Modula-3 fordítót is. Ezzel együtt viszont növekedne a FreeBSD forrása, amelyet aztán karban is kellene tartani. Ezért mind a fejlesztők, mind pedig a felhasználók számára egyszerűbb, ha a CVSup egy külön portként érhető el a rendszerhez. Ez viszont gyorsan telepíthető a FreeBSD telepítő CD-ken található csomagokból.

Azonban a FreeBSD 6.2-RELEASE megjelenésétől kezdve a FreeBSD felhasználók nem maradnak integrált CVSup kliens nélkül. Maxime Henrion munkájának köszönhetően a CVSup alkalmazásnak elkészült a C nyelven újraírt változata, a csup(1), amely most már az alaprendszer része. Noha jelenleg nem még nem képes mindarra, amire a CVSup, elegendő (és nagyon gyors!) ahhoz, hogy a forrásainkat frissen tartsuk. A 6.2 előtt kiadott rendszerek esetében ezt portból vagy csomagból is felrakhatjuk (lásd net/csup).

7.7. A forrásokon kívül a telepített portokat is lehet valahogy frissíteni?

A FreeBSD alaprendszere ehhez nem kínál fel semmilyen eszközt, de léteznek olyan segédeszközök, amelyekkel valamennyire meg tudjuk könnyíteni a frissítés folyamatát. További segédprogramok telepítésével pedig a portok kezelését tudjuk tovább egyszerűsíteni, amiről a FreeBSD kézikönyv A portok frissítése című szakaszában olvashatunk bővebben.

7.8. Minden nagyobb verziófrissítésnél újra kell fordítani az összes telepített portot a rendszeren?

Mindenképpen! Noha látszólag a frissített rendszeren is remekül futnak a korábbi verzióra telepített alkalmazások, könnyen előfordulhat, hogy az újabb portok telepítésékor vagy a meglevőek frissítésekor véletlenszerű összeomlásokat vagy egyéb hibákat tapasztalunk.

Ne felejtsük el, hogy a rendszer frissítésekor a különféle osztott könyvtárak, betölthető modulok és a rendszer egyéb komponensei is lecserélődnek. Ezért a régebbi változataikhoz fordított alkalmazások egyáltalán nem fognak elindulni vagy nem működnek rendesen.

Ezzel kapcsolatban olvassuk el a FreeBSD kézikönyvének frissítéről szóló szakaszát.

7.9. Minden kisebb verziófrissítésnél újra kell fordítani az összes telepített portot a rendszeren?

Általánosságban véve nem. A FreeBSD fejlesztői ugyanis mindent megtesznek azért, hogy ugyanazon a fő fejlesztési ágon belüli verziók között megmaradjon a bináris szintű kompatibilitás. Az esetleges kivételeket pedig dokumentálni szokták a kiadásokhoz tartozó jegyzetekben, ahol többnyire megadják az adott változtatáshoz tartozóan a követendő tanácsokat.

7.10. A /bin/sh miért ilyen egyszerű? A FreeBSD-ben miért nincs bash vagy valamilyen más rendes parancsértelmező?

Mert a POSIX® szerint lennie kell egy ilyen parancsértelmezőnek.

A valamivel bonyolultabb válasz: sokan szeretnének olyan szkripteket írni, amelyek több rendszer közt is átvihetőek. Ezért a POSIX a parancsértelmezőkre és a segédprogramokra vonatkozó parancsokat igen részletesen tárgyalja. A legtöbb ilyen szkriptet a Bourne-féle parancsértelmezőben készítik, és több fontos programozói felület (make(1), system(3), popen(3) és ezek magasabb szintű, például Perl és Tcl nyelvi megfelelői) a Bourne-parancsértelmező használatán alapszik. Mivel a Bourne-parancsértelmező használata ilyen széles körben elterjedt, fontos, hogy gyorsan induljon, előre megjósolható legyen a működése és ne foglaljon túlságosan sok memóriát.

A jelenlegi implementáció igyekszik ezek közül az elvárások közül egyszerre a lehető legtöbbet teljesíteni. A /bin/sh programot csak úgy tudjuk a megfelelő méreten tartani, ha nem tesszük bele az összes többi parancsértelmezőben megtalálható kényelmi funkciót. Pontosan ezért találhatjuk meg viszont a Portgyűjteményben a többi, például a bash, scsh, tcsh és zsh parancsértelmezőket. (Ezek konkrét memóriahasználatát össze is tudjuk vetni, ha a ps -u parancs kimenetének “VSZ” és “RSS” oszlopait megnézzük.)

7.11. A Netscape® és az Opera indítása miért tart olyan sokáig?

Erre az az általános válasz, hogy a névfeloldás valószínűleg rosszul működik a rendszerünkön. A Netscape és az Opera is ellenőrzi a névfeloldást az indulásakor. Ezért a böngésző egészen addig nem jelenik meg az asztalon, amíg választ nem kap vagy rá nem jön, hogy nincs aktív hálózati kapcsolat.

7.12. Ha a CVSup használatával frissítjük a Portgyűjteményt, akkor sok port nem fordul le mindenféle rejtélyes hibaüzenet kíséretében! Valami nagy baj van a Portgyűjteménnyel?

Ha úgy korábban úgy frissítettük a CVSup használatával a Portgyűjteményt, hogy nem adtuk meg a ports-all CVSup algyűjteményt, akkor a ports-base algyűjteményt is mindig frissítenünk kell! Ennek okairól a kézikönyvben olvashatunk.

7.13. Hogyan lehet MIDI állományokból audio CD-t készíteni?

Ha MIDI állományokból akarunk audio CD-t készíteni, akkor először telepítsük fel a Portgyűjteményből a audio/timidity++ portot, majd kézzel tegyük hozzá Eric A. Welsh GUS patch-eit, melyek a http://alleg.sourceforge.net/digmid.html címről tölthetőek le. Miután a TiMidity++ sikeresen felkerült a rendszerünkre, a MIDI állományokat a következő paranccsal tudjuk átkonvertálni WAV állományokra:

% timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid

A WAV állományok ezek után tetszőleges formátumba konvertálhatóak tovább vagy készíthető belőlük egy audio CD, ahogy azt a FreeBSD kézikönyvben is olvashatjuk.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.