OpenBSD - Csomagok és portok használata

Címkék

Nagy Róbertnek köszönhetően ma megismerkedhetünk az OpenBSD csomag kezelésével és port fájának használatával. Az OpenBSD-vel most ismerkedőknek valószínűleg hasznos lesz ez a képekkel illusztrált ``howto".

OpenBSD - Csomagok és portok használata


Csomagok telepítése FTP mirrorokról és csomageltávolítás:

  • Szükséges előkészületek:
  • » A PKG_PATH környezeti változó megadása.





    Azért ajánlom az `uname -r` és a `machine` használatát, hogy véletlenül se tévesszük el a release-t és az arch-ot.
    Így most már a pkg_add(1) közvetlenül az FTP szerverről fogja leszedni a csomagokat. Persze PKG_PATH -nak megadhatunk akár egy könyvtárat is.

  • A csomag telepítése:
  • A példacsomagunk most az sdl-image-1.2.3.tgz lesz. Ennek a csomagnak szüksége van többek közt a sdl-1.2.6p0-sun.tgz csomagra. Mivel ez jelen esetben nincs fenn a rendszeren, a pkg_add(1) függőségként ezt is telepíteni fogja az FTP szerverről.



  • És végül egy ellenőrzés:




  • A nem kívánt csomag(ok) eltávolítása:
  • Most megpróbáljuk eltávolítani a sdl-1.2.6p0-sun csomagot a rendszerünkről.
    Ezt az alábbi módon vihetjük végbe:





    Mint láthatjátok nem tudjuk letörölni a csomagot, mivel sdl-image-1.2.3
    függ tőle. Ezért először az sdl-image-1.2.3-at kell eltávolítani. Erre két módszer is van.


    1.) Mindkét csomagot megadjuk pkg_delete(1)-nek.






    2.) Kihasznájuk a pkg_delete(1) force opcióját. Ekkor megadjuk, hogy a függőségeket is távolítsuk el a rendszerről.






A ports tree használata (alapszinten)

Most röviden leírom azt, hogy hogy lehet a legegyszerűbben használni a ports fát. Ha valaki részletesen is tudni szeretné annak ajánlom figyelmébe a ports(7) man oldalt. Itt a példa portunk a devel/sdl lesz.

  • A ports tree letöltése:
  • Itt most csak CVS segítségével fogunk hozzájutni a ports treehez. Persze elérhető több módon is, de ha CVS -t használunk akkor a biztonsági javításokat is élvezhetjük. Lépjünk be a /usr könyvtárba és ott adjuk ki
    a következő parancsot. Ezzel hozzájutunk a 3.5 -ös kiadás ports fájához.





  • Flavor kiválasztása:
  • A flavorokat arra használjuk, hogy különböző opciókat, extrákat fordítsunk bele a kiválasztott szoftverbe. A következő példa bemutatja, hogyan deríthetjük ki, milyen flavorokat kínál nekünk egy port és azt, hogy hogy kell a portot egy vagy több flavorral fordítani.





    Miután beléptünk a port könyvtárába, kiadjuk a "make show=FLAVOR" parancsot, amely visszaadja nekünk a jelenleg beállított flavort. Ez az sdl port eseten sun-t fog visszadni, mivel ez a port alapból így fordul. Ezek után a "make show=FLAVORS" paranccsal megtudhatjuk, hogy mely flavorok elérhetőek az sdl porthoz (sun esd arts aa no_x11). Tegyük fel, hogy a gépen nem áll rendelkezésre XFree86, ezért most a no_x11, aa és sun flavorokat választjuk. Ezt a FLAVOR környezeti változóval tehetjük meg. A flavorokat szóközzel
    választjuk el egymástól. Sorrendjuk mindegy. Ezek után újra megnézhetjük, hogy milyen extrákkal fogjuk forditani a portot.

  • Fordítás és telepítés:
  • Miután kiválasztottuk a flavorokat. Indítsuk el a fordítást.
    Adjuk ki a sudo make install parancsot.

    A képen sudo make package-et lehet látni. Ez
    azért van, mert én nem szeretem egyből felrakni a portokat. Így csak csomag fog készülni. Akkor is lesz csomag, ha ``make install''-al fordítjuk a portot. De ekkor automatikusan települni fog a csomag.





    Itt elvileg végig lehet nézni a fordítást. Ezt kihagyom a méretei miatt ;-)







    Itt pedig már a fordítás végét láthatjuk. Ekkor készül el a csomag, és telepítődik fel automatikusan. Majd egy "sudo make clean" parancsal tisztítsuk ki port által használt w-sdl-1.2.6p0-sun-aa-no_x11 könyvtárat.

  • Port vagy csomag eltávolítás:
  • Miután feltelepítettük az sdl-1.2.6p0-sun-aa-no_x11 csomagot rájöttünk, hogy mégsincs rá semmi szükségünk. Így le is töröljük.





Tippek és trükkök.

  • Biztonsági csomagfrissítések:
  • Miután feliratkoztál a ports-security levelező listára, megkaptad az első Security Advisorit, ami most a png csomagról szól. Jelenleg a png-1.2.5p2 csomag érhető el. A biztonsági javítást tartalmazó csomag pedig a png-1.2.5p3. A frissítést
    több módon is elvégezhetjük. Frissítjük a ports tree-t, majd lefordítjuk a portot és feltelepítjük. A másik megoldás, hogy FTP-ről frissítjük azt. Az FTP frissítésnek jelenleg az
    a hátránya, hogy frissített csomagok csak az i386 architektúrára érhetőek el. Ezért ha más architektúrát használsz, kénytelen vagy magad újrafodítani. Arról, hogy
    a ports tree-t hogyan kell frissíteni, most nem fogok írni. Akit ez érdekel, az olvassa el a http://www.openbsd.hu/ports.html oldalt.
    A frissítést úgy hajtjuk végre, hogy a PKG_PATH környezeti változó az írás elején lévő módon be van állítva, tehát az FTP szerverről fogjuk leszedni a csomagot. Nézzük mit is fogunk látni:





    Akkor hát töröljük le a régi csomagot. Viszont ez se fog olyan könnyen menni:





    Ekkor le kéne törölni ezeket a csomagokat is, mivel azok függenek a png csomagtól. Ezt viszont nem akarjuk, mivel ez egy production server ;-). Sajnos ezt csak egy kisebb workaround-dal tudjuk megoldani. Ez az OpenBSD 3.6-os verziójában nem lesz már probléma. A következőt fogjuk tenni:


    » A /var/db/pkg/png-1.2.5p2/+REQUIRED_BY file-t áthelyezzük a /tmp be. (Ez a file tartalmazza azokat a csomagokat, amelyek függenek a png csomagtól.

    » Ezután eltávolítjuk a régi csomagot. Ez gond nélkül fog menni, mivel a rendszer azt fogja hinni, hogy semmi nem igényeli ezt a csomagot.

    » Majd telepítjük a frissített csomagot.

    » Ezek után visszahelyezzük a /tmp be másolt +REQUIRED_BY filet az új csomaghoz.

    » Végül megnézzük a pkg_info(1) segítésgével, hogy melyik csomag is van fent.




Copyright © 2004 Robert Nagy

Hozzászólások

Nagyon jó. Épp ezt hiányoltam, hogy "csináltunk" már webszervert, de még csomagot nem telepítettünk. (Most próbálom elkészíteni a telepítő cd-t)

Arra egyébként van valami mód, hogy ADSL-en telepítsen az ember? Tehát nem:

adsl hub,switch gép hanem

adsl gép

tehát valami pppoe dolgot tudok indítani. Vagy rosszul látom a dolgokat?

>hogy "csináltunk" már webszervert, de még csomagot nem telepítettünk.

Mivel az eddig elvegzett funkciokhoz meg nem volt szukseg csomag telepitesre... Barmilyen furcsa is, az eddigi muveleteket az alaprendszerrel vegeztuk el. Az OpenBSD-ban a httpd az alaprendszer resze, nem kell kulon feltelepiteni. :-D