Od verzije 9.2, FreeBSD je predstavio novi alat koji zamjenjuje stare pkg_*-naredbe - pkg, također poznate kao pkgng. Vrlo je sličan Debianovom aptili Fedorinom, yumali ima neke vrlo cool značajke. Jedna od njih je mogućnost jednostavnog korištenja vlastitog, privatnog spremišta paketa.
Zašto biste to htjeli učiniti? Službena pkg-repozitorija izgrađena su od FreeBSD-ovog stabla portova s vrlo ograničenim skupom opcija. Na primjer, službenom paketu za PHP nedostaje podrška za MySQL. Drugi razlog može biti taj što želite imati dva spremišta, jedno s omogućenim X11 - za vašu radnu površinu - i jedno s onemogućenim X11 - za vaše poslužitelje. Postoji mnogo opcija i mogućnosti, a ovaj vodič će vam pokazati kako izgraditi vlastito spremište s Poudriereom , alatom za masovnu izgradnju paketa.
Pretpostavljam da imate novi VPS s instaliranim FreeBSD 10 x64. Prije svega, trebate stablo portova na vašem sustavu:
cd /usr
portsnap fetch extract
Zatim morate instalirati Poudriere iz izvora (Zadane opcije su u redu!):
cd /usr/ports/ports-mgmt/poudriere
make install clean
Zatim stvorite osnovnu konfiguracijsku datoteku:
cp /usr/local/etc/poudriere.conf.sample /usr/local/etc/poudriere.conf
... i uredite ga prema vašim potrebama. Sljedeće je dobar početak:
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
Umjesto korištenja obične portstree vašeg sustava, Poudriere koristi vlastitu kopiju. Morate ga dobiti sljedećom naredbom:
poudriere ports -c
Sada stvorite zatvor u kojem će graditelj raditi:
poudriere jail -c -j testjail -v 10.0-RELEASE -a amd64
Prije nego što počnete graditi pakete, zapravo ćete morati reći Poudriereu što bi trebao graditi. Otvorite svoj omiljeni uređivač teksta i dodajte neke pakete:
www/firefox
im/pidgin
sysutils/tmux
editors/vim
... i spremite datoteku pod /usr/local/etc/buildlist. Ako ne želite zadane opcije, tada možete konfigurirati opcije za svaki paket u toj datoteci. To se radi izdavanjem sljedeće naredbe:
poudriere options -cf /usr/local/etc/buildlist
Inače, možete početi graditi:
poudriere bulk -f /usr/local/etc/buildlist -j testjail
Vrijeme potrebno za ovu operaciju ovisit će o brzini CPU-a vašeg VPS-a. Nakon završetka procesa, vaši svježi paketi se mogu pronaći, razvrstani po build-zatvoru, u /usr/local/poudriere/data/packages/.
Sada vam je potreban web-poslužitelj koji će zapravo posluživati te pakete vašim drugim strojevima. Odabrao sam Nginx jer je učinkovit i lagan. Instalirajte ga putem portova (Zadane opcije su u redu!):
cd /usr/ports/www/nginx
make install clean
Nakon dovršetka postupka instalacije, morate konfigurirati Nginx da služi direktoriju paketa. Da biste to učinili, uredite /usr/local/etc/nginx/nginx.confu svom omiljenom uređivaču teksta:
server {
listen 80;
server_name localhost;
root /usr/local/poudriere/data/packages/testjail-default;
location / {
autoindex on;
}
}
Konačno, provjerite pokreće li web poslužitelj pri pokretanju:
echo "nginx_enable=YES" >> /etc/rc.conf
... i pokrenite poslužitelj:
/usr/local/etc/rc.d/nginx start
Mogućnosti s Poudriereom su ogromne. Možete saznati više o Poudriereu čitajući unos na stranici na stranici. Ako planirate koristiti ovakvu postavku u proizvodnom okruženju, u vašem bi interesu također bilo pročitati o potpisivanju paketa i razmisliti o osiguranju veze s vašim web poslužiteljem pomoću TLS-a. Ali za sada ste spremni za rock!
Da biste aktivirali spremište na klijentu, pokrenite ove naredbe na klijentskom stroju:
mkdir -p /usr/local/etc/repos
vi /usr/local/etc/repos/myrepo.conf
Popunite myrepo.confsljedećim sadržajem. Možete koristiti bilo koji naziv za ovu datoteku, pod uvjetom da ima .confsufiks.
poudriere: {
url: "http://yoururl"
mirror_type: "http",
enabled: yes
}
Zatim ažurirajte bazu podataka paketa naredbom:
pkg update
Sada možete instalirati pakete iz svog novog spremišta!