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.org
Connected 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.tgz
local: 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_info
cvsup-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_version
cvsup =
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>.