FreeBSD kézikönyv
Előző | Fejezet 4. Alkalmazások telepítése: csomagok és portok | Következő

# 4.4. A csomagrendszer használata

Írta: Chern Lee.

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.

## 4.4.1. Csomagok telepítése

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 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.

## 4.4.2. A csomagok kezelése

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.

## 4.4.3. Csomagok törlése

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.

## 4.4.4. Egyebek

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.

Előző | Tartalom | Következő
A számunkra szükséges alkalmazások felkutatása | Fel | A Portgyűjtemény használata

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>.