7. fejezet - Felhasználói alkalmazások
Vissza |  | Előre

## 7. fejezet - 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, 7.X-STABLE vagy 8.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:

6.`X`-RELEASE/6-STABLE esetén:

  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/

7.`X`-RELEASE/7-STABLE esetén:

  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-stable

8.`X`-RELEASE/8-STABLE esetén:

  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-stable

9-CURRENT esetén:

  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-9-current

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 az 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, 7.`X`-STABLE vagy 8.`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 `<mux@FreeBSD.org>` 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.

Vissza |  | Előre
6. fejezet - Kereskedelmi alkalmazások | Főoldal | 8. fejezet - A rendszermag beállítása

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