View Source

h1. 5.1. Szükséges csomagok

A FreeBSD ports adatbázisában jelenleg 19 ezer csomag található, ezek mindegyikére természetesen nincs szükségünk, s elsőképp érdemes feltelepíteni olyan csomagokat, amelyek megkönnyítik a csomagkezelést -- mint folyamatot.

h2. 5.1.1. A _ports_ adatbázis kezelése

A FreeBSD csomagkezelése eléggé rendhagyónak tekinthető, mivel alapvetően forrás alapú -- vagyis a csomagok nagy részét le kell fordítanunk, ha használni szeretnénk -- innen a _port_ név, amely a FreeBSD alaprendszerre _portolt_ alkalmazásokat jelenti. Természetesen létezik szinte az összes _ports_ programnak bináris terjesztése, ezeket is használhatjuk, de a _ports_ alapvetően a forrásból való fordításra készült, minden egyes könyvtárban van egy _Makefile_, amelyet fel tudunk használni a fordításhoz a klasszikus _make_ használatával:
{code:title=Parancssor}
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ make
===> Vulnerability check disabled, database not found
===> Extracting for portaudit-0.5.12
===> Patching for portaudit-0.5.12
===> Configuring for portaudit-0.5.12
===> Building for portaudit-0.5.12
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ make install
===> Installing for portaudit-0.5.12
===> Generating temporary packing list
===> Checking if ports-mgmt/portaudit already installed

===> To check your installed ports for known vulnerabilities now, do:

/usr/local/sbin/portaudit -Fda

===> Compressing manual pages for portaudit-0.5.12
===> Registering installation for portaudit-0.5.12
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ make clean
===> Cleaning for portaudit-0.5.12
{code}

A művelet nem túl nehéz, de minek szenvedni, amikor használhatjuk erre a _portupgrade_ programot is, amit már feltelepítettünk:
{code:title=Parancssor}
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ portinstall -i portsearch
---> Session started at: Fri, 08 Aug 2008 21:44:13 +0200
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 22 packages found (-1 +1) (...). done]
Install 'ports-mgmt/portsearch'? [yes]
[Gathering depends for ports-mgmt/portsearch done]
---> Fresh installation of ports-mgmt/portsearch started at: Fri, 08 Aug 2008 21:44:15 +0200
[...]
---> Listing the results (+:done / -:ignored / *:skipped / !:failed)
+ ports-mgmt/portsearch
---> Packages processed: 1 done, 0 ignored, 0 skipped and 0 failed
---> Session ended at: Fri, 08 Aug 2008 21:44:34 +0200 (consumed 00:00:20)
{code}

Gondolom már éppen felmerült a kérdés, hogy mivel tudunk keresni a 19 ezer csomag között... a válasz a _portsearch_, amely ezen probléma megoldására született, használata egyszerű, bár az első használat eltart egy ideig, ugyanis beindexeli a _ports_ adatbázist:
{code:title=Parancssor}
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ portsearch -u -vv
Creating store
Previous store does not exist, creating from scratch
==> accessibility/accerciser
==> accessibility/at-poke
[...]
==> x11-wm/xmonad
==> x11-wm/xmonad-contrib
{code}

Amíg dolgozik, addig térjünk vissza a _make_ parancs segítségével feltelepített _portsaudit_ programra, amely a feltelepített csomagok biztonsági hibáit figyeli napi rendszerességgel, és erről a napi összefoglaló levélben olvashatunk, amelyet a _root_ felhasználó kap meg az éjjel három órakor induló karbantartási műveletek eredményeképp. A _portaudit_ másik feladata, hogy egy program feltelepítése előtt figyelmeztessen annak - még nem javított - biztonsági hibájára.

Ha a _portsearch_ végzett a csomagok feldolgozásával, akkor nézzük, mire képes (a részletes használati útmutató a program _man_ oldalán):
{code:title=Parancssor}
[root@freebsd:/usr/ports/ports-mgmt/portaudit]$ portsearch -n apache-2.2
Port: apache-2.2.9
Path: /usr/ports/www/apache22
Info: Version 2.2 of Apache web server with prefork MPM.
Maint: clement@FreeBSD.org
B-deps: autoconf-2.61_2 autoconf-wrapper-20071109 expat-2.0.1 libiconv-1.11_1 libtool-1.5.26 m4-1.4.11,1 perl-5.8.8_1
R-deps: expat-2.0.1 libiconv-1.11_1 perl-5.8.8_1
WWW: http://httpd.apache.org/

1 ports
{code}

A kapott eredmény minden lényeges információt megad, ami zavaró lehet, az a _B-deps_ és az _R-deps_, amelyek a _ports_ két függőségét mutatja:
* a _B-deps_ azokat a csomagokat, amelyek a fordításhoz szükségesek
* az _R-deps_ pedig azokat, amelyek a program futásakor szükségesek

A leglényegesebb dolog mindig a _port_ neve, amely jelen esetben az _apache-2.2.9_, ezt a nevet megadva tudjuk feltelepíteni.
----
[Előző fejezet|FREEBSD:Operational] [Tartalomjegyzék|FREEBSD:FreeBSD in my server] [Következő fejezet|FREEBSD:Jails]
----
Auth Gábor [auth.gabor@javaforum.hu|mailto:auth.gabor@javaforum.hu]
----