A 9.2-es verzió óta a FreeBSD egy új eszközt vezetett be a régi pkg_*-commands - pkg, más néven , helyére pkgng. Nagyon hasonlít a Debianhoz aptvagy a Fedorához, yumde van néhány nagyon klassz funkciója. Ezek egyike a saját, privát csomagtárak egyszerű használatának lehetősége.
Miért akarod ezt megtenni? A hivatalos pkg-tárolók a FreeBSD portfájából épülnek fel, nagyon korlátozott lehetőségekkel. Például a PHP hivatalos csomagja nem támogatja a MySQL-t. Egy másik ok lehet, hogy két tárolót szeretne létrehozni, az egyikben az X11 engedélyezve van - az asztalon -, a másikban pedig az X11 letiltva - a szerverei számára. Rengeteg lehetőség és lehetőség kínálkozik, és ez az oktatóanyag megmutatja, hogyan hozhat létre saját adattárat a Poudriere segítségével , amely a csomagok tömeges összeállítására szolgáló eszköz.
Feltételezem, hogy van egy friss VPS-ed, amelyen FreeBSD 10 x64 van telepítve. Először is szüksége van a rendszeren lévő portfára:
cd /usr
portsnap fetch extract
Ezután telepítenie kell a Poudriere-t a forrásból (az alapértelmezett beállítások rendben vannak!):
cd /usr/ports/ports-mgmt/poudriere
make install clean
Ezután hozzon létre egy alapvető konfigurációs fájlt:
cp /usr/local/etc/poudriere.conf.sample /usr/local/etc/poudriere.conf
... és igény szerint szerkessze. A következő jó kezdés:
FREEBSD_HOST=http://ftp.freebsd.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
POUDRIERE_DATA=$/data
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles
CHECK_CHANGED_DEPS=yes
# Edit this according to your VPS' CPU.
PARALLEL_JOBS=1
NOLINUX=yes
A rendszer szokásos portstree-jének használata helyett a Poudriere a saját másolatát használja. A következő paranccsal kell beszereznie:
poudriere ports -c
Most hozzon létre egy börtönt, amelyben az építő futhat:
poudriere jail -c -j testjail -v 10.0-RELEASE -a amd64
Mielőtt elkezdené a csomagok összeállítását, el kell mondania a Poudriere-nek , hogy mit kell építenie. Nyissa meg kedvenc szövegszerkesztőjét, és adjon hozzá néhány csomagot:
www/firefox
im/pidgin
sysutils/tmux
editors/vim
... és mentse a fájlt a alatt /usr/local/etc/buildlist. Ha nem szeretné az alapértelmezett beállításokat, akkor az adott fájlban lévő egyes csomagokhoz beállíthatja a beállításokat. Ez a következő parancs kiadásával történik:
poudriere options -cf /usr/local/etc/buildlist
Ellenkező esetben elkezdheti az építést:
poudriere bulk -f /usr/local/etc/buildlist -j testjail
A művelet időtartama a VPS processzorának sebességétől függően változik. A folyamat befejezése után a friss csomagok megtalálhatók build-jail szerint rendezve a következő helyen: /usr/local/poudriere/data/packages/.
Most szüksége van egy webszerverre, hogy ténylegesen kiszolgálja ezeket a csomagokat a többi gépen. Az Nginxet választottam, mivel hatékony és könnyű. Telepítse portokon keresztül (az alapértelmezett beállítások rendben vannak!):
cd /usr/ports/www/nginx
make install clean
A telepítési folyamat befejezése után be kell állítania az Nginxet a csomagok könyvtárának kiszolgálására. Ehhez szerkessze /usr/local/etc/nginx/nginx.confkedvenc szövegszerkesztőjével:
server {
listen 80;
server_name localhost;
root /usr/local/poudriere/data/packages/testjail-default;
location / {
autoindex on;
}
}
Végül győződjön meg arról, hogy a webszerver elindul a rendszerindításkor:
echo "nginx_enable=YES" >> /etc/rc.conf
... és indítsa el a szervert:
/usr/local/etc/rc.d/nginx start
A Poudriere-ben hatalmasak a lehetőségek. A Poudriere-ről többet tudhat meg, ha elolvassa a manoldali bejegyzést. Ha egy ilyen beállítást éles környezetben tervez használni, akkor érdemes a csomagaláírásról is olvasni, és megfontolni a webszerverrel való kapcsolat biztosítását TLS segítségével. De most készen állsz a ringatásra!
A lerakat kliensen történő aktiválásához futtassa a következő parancsokat az ügyfélgépen:
mkdir -p /usr/local/etc/repos
vi /usr/local/etc/repos/myrepo.conf
Töltse myrepo.conffel a következő tartalommal. Bármilyen nevet használhat ehhez a fájlhoz, feltéve, hogy rendelkezik az .confutótaggal.
poudriere: {
url: "http://yoururl"
mirror_type: "http",
enabled: yes
}
Ezután frissítse a csomagadatbázist a következő paranccsal:
pkg update
Most már telepíthet csomagokat az új tárolóból!