FreeBSD alatt több különböző módon tudunk csomagokat használni:
A sysinstall használatán keresztül a futó rendszeren tudjuk megnézni a telepített csomagokat, tudunk vele csomagokat telepíteni vagy törölni. Ezzel részletesebben a 2.10.11. szakasz - Csomagok telepítése foglalkozik.
A szakasz további részében ismertetett egyéb parancssoros csomagkezelő segédprogramok.
A pkg_add(1) segédprogram segítségével telepíthetünk FreeBSD-hez készült szoftvercsomagokat lokálisan vagy a hálózaton levő egyik szerveren megtalálható állományokból:
#ftp -a ftp2.FreeBSD.orgConnected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.ftp>cd /pub/FreeBSD/ports/packages/sysutils/250 CWD command successful.ftp>get lsof-4.56.4.tgzlocal: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s)ftp>exit#pkg_add lsof-4.56.4.tgz
Ha nincsenek egyáltalán helyben csomagjaink
(például egy FreeBSD CD-készletben), akkor a
legjobban úgy járunk, ha használjuk a
pkg_add(1) -r kapcsolóját.
Ennek hatására a segédprogram
önmagától meghatározza a
szükséges állományformátumot
és verziót, majd FTP-n keresztül letölti
és telepíti a csomagot.
#pkg_add -r lsof
Az iménti példában a program
mindenféle további beavatkozás
nélkül letölti a megfelelő csomagot
és felteszi. Ha a központi helyett egy másik
szervert szeretnénk használni, felül kell
bírálnunk az alapértelmezett
beállításokat és igényeinknek
megfelelően be kell állítanunk a
PACKAGESITE környezeti változó
értékét. A pkg_add(1) a fetch(3)
programot használja az állományok
letöltésére, amely pedig számos
egyéb környezeti változót is figyel,
mint például az FTP_PASSIVE_MODE,
az FTP_PROXY és az
FTP_PASSWORD. Ha tűzfal mögött
vagyunk, ezek közül néhányat biztosan be
kell majd állítanunk, vagy FTP/HTTP proxyt kell
használnunk. A fetch(3) man oldalán
megtaláljuk ezen változók teljes
felsorolását. Figyeljük meg, hogy az
lsof-4.56.4 helyett csak
lsof-ot adtunk meg. Amikor ugyanis
kérjük a csomag letöltését is,
nem szabad verziószámot megadnunk. A
pkg_add(1) mindig az alkalmazás legfrissebb
verzióját fogja letöltetni.
Ha a FreeBSD-CURRENT vagy FreeBSD-STABLE verziókat
használjuk, a pkg_add(1) mindig az
alkalmazás elérhető legfrissebb
verzióját fogja letölteni. Ha azonban
valamelyik -RELEASE verziót használjuk, a
csomagnak az adott kiadáshoz készült
verzióját fogja leszedni. Ezt a
működési módot a
PACKAGESITE változó
felülírásával viszont meg tudjuk
változtatni. Például ha a
FreeBSD 5.4-RELEASE változatával dolgozunk, a
pkg_add(1) alapértelmezés szerint a
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/
címről fogja letölteni a csomagokat. Ha mi
viszont a FreeBSD 5-STABLE csomagok
letöltését akarjuk elérni,
állítsuk az PACKAGESITE
értékét a
ftp://ftp.freebsd.org/pub/FreeBSD/i386/packages-5-stable/Latest/
címre.
A csomagok .tgz és
.tbz formátumokban kerülnek
terjesztésre. Ezek az ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
címen, vagy pedig a FreeBSD CD-ken találhatóak
meg. A 4 CD-ből álló készlet (illetve
a PowerPak stb.) minden CD-jén találhatunk
csomagokat a packages/
könyvtárban. A csomagokat tároló
könyvtár struktúrája hasonló a
/usr/ports könyvtárban
kialakított könyvtárfához. Minden
kategóriának saját könyvtára
van, és minden csomag megtalálható az
All (összes)
kategóriában.
A csomagrendszer könyvtárszerkezete tehát megegyezik a portok szétosztásával, ezáltal így képesek egymással összedolgozni a teljes csomag/port rendszer megformálásában.
A pkg_info(1) egy olyan segédprogram, amellyel készíteni lehet egy listát a telepített csomagokról, és emellett még más egyéb információkat tudhatunk meg róluk.
#pkg_infocvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ...
A pkg_version(1) összefoglalja az összes telepített csomag verzióját. Ezenkívül össze is hasonlítja a csomagok verzióját a portfában található aktuális verziókéval.
#pkg_versioncvsup = docbook = ...
A második oszlopban látható jelek utalnak a telepített verzió a helyi portfában található verzióéhoz viszonyított korára.
| Jel | Jelentés |
|---|---|
| = | A telepített csomag verziója megegyzik a helyi portfában található verziójával. |
| < | A telepített verzió a portfában levőnél régebbi. |
| > | A telepített verzió újabb, mint a portfában található. (A helyi portfa valószínűleg nem lett frissítve.) |
| ? | A telepített csomag nem található a portok között. (Ez akkor történhet meg, amikor például egy portot eltávolítottak a Portgyűjteményből vagy átnevezték.) |
| * | A csomagnak több verziója is jelen van. |
| ! | A telepített csomag szerepel az indexben, de a
pkg_version valamiért nem volt
képes összehasonlítani a
verziószámát az indexben levő
bejegyzéssel. |
Egy korábban már telepített csomag eltávolításához használjuk a pkg_delete(1) segédprogramot.
#pkg_delete xchat-1.7.1
A pkg_delete(1) használatánál
szükség van a csomag teljes nevének és
verziószámának megadására. A
fenti parancs tehát nem működik, ha csak az
xchat-et adjuk meg az
xchat-1.7.1 helyett. A
telepített csomag verzióját azonban
könnyedén kitalálhatjuk a pkg_version(1)
alkalmazásával. Esetleg egyszerűen
dzsókerkaraktereket is használhatunk:
#pkg_delete xchat\*
Ebben az esetben az összes xchat-tel
kezdődő csomagot letörli.
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>.