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 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:
Példa 4-1. Csomagok letöltése manuálisan és telepítése lokálisan
# 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 a 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.
Megjegyzés: 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.
A csomagokra vonatkozó összes információ a /var/db/pkg könyvtárban található. Az egyes csomagok leírása és hozzájuk telepített állományok listája az ezen a könyvtáron belül elhelyezkedő állományokban tárolódik.
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>.