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:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-stable
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-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.
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.
Igen. Látogassunk el a http://www.FreeBSD.org/java/ oldalra.
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.
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.
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).
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.
Á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.)
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.
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>.