Од верзије 9.2, ФрееБСД је представио нови алат за замену старих пкг_*-наредби - pkg, такође познат као pkgng. Веома је сличан Дебиановом aptили Федорином, yumали има неке веома добре карактеристике. Једна од њих је могућност да лако користите сопствено, приватно складиште пакета.
Зашто бисте то желели да урадите? Званична пкг-спремишта су изграђена од ФрееБСД-овог стабла портова са веома ограниченим скупом опција. На пример, званичном пакету за ПХП недостаје подршка за МиСКЛ. Други разлог може бити тај што желите да имате два спремишта, једно са омогућеним Кс11 - за ваш десктоп - и једно са онемогућеним Кс11 - за ваше сервере. Постоји много опција и могућности, а овај водич ће вам показати како да направите сопствено спремиште помоћу Поудриере-а , алата за масовну прављење пакета.
Претпостављам да имате нови ВПС са инсталираним ФрееБСД 10 к64. Пре свега, потребно вам је стабло портова на вашем систему:
cd /usr
portsnap fetch extract
Затим морате да инсталирате Поудриере из извора (подразумеване опције су у реду!):
cd /usr/ports/ports-mgmt/poudriere
make install clean
Затим креирајте основну конфигурациону датотеку:
cp /usr/local/etc/poudriere.conf.sample /usr/local/etc/poudriere.conf
... и уредите га према вашим потребама. Следеће је добар почетак:
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
Уместо да користи уобичајени портстрее вашег система, Поудриере користи сопствену копију. Морате га добити следећом командом:
poudriere ports -c
Сада направите затвор у којем ће градитељ радити:
poudriere jail -c -j testjail -v 10.0-RELEASE -a amd64
Пре него што почнете да правите пакете, мораћете да кажете Поудриеру шта треба да направи. Отворите свој омиљени уређивач текста и додајте неке пакете:
www/firefox
im/pidgin
sysutils/tmux
editors/vim
... и сачувајте датотеку под /usr/local/etc/buildlist. Ако не желите подразумеване опције, онда можете да конфигуришете опције за сваки пакет у тој датотеци. Ово се ради издавањем следеће команде:
poudriere options -cf /usr/local/etc/buildlist
У супротном, можете започети изградњу:
poudriere bulk -f /usr/local/etc/buildlist -j testjail
Време које је потребно за ову операцију ће варирати у зависности од брзине процесора вашег ВПС-а. Након што се процес заврши, ваши нови пакети се могу пронаћи, сортирани по буилд-затвору, у /usr/local/poudriere/data/packages/.
Сада вам је потребан веб сервер да би те пакете заиста послужио вашим другим машинама. Изабрао сам Нгинк јер је ефикасан и лаган. Инсталирајте га преко портова (подразумеване опције су у реду!):
cd /usr/ports/www/nginx
make install clean
Након што се процес инсталације заврши, потребно је да конфигуришете Нгинк да служи директоријуму пакета. Да бисте то урадили, уредите /usr/local/etc/nginx/nginx.confпомоћу свог омиљеног уређивача текста:
server {
listen 80;
server_name localhost;
root /usr/local/poudriere/data/packages/testjail-default;
location / {
autoindex on;
}
}
На крају, проверите да ли веб сервер почиње при покретању:
echo "nginx_enable=YES" >> /etc/rc.conf
... и покрените сервер:
/usr/local/etc/rc.d/nginx start
Могућности са Поудриереом су огромне. Можете сазнати више о Поудриереу читањем уноса на страници ман. Ако планирате да користите овакво подешавање у производном окружењу, било би у вашем најбољем интересу да прочитате и о потписивању пакета и да размислите о обезбеђивању везе са вашим веб сервером помоћу ТЛС-а. Али за сада сте спремни за роцк!
Да бисте активирали спремиште на клијенту, покрените ове команде на клијентској машини:
mkdir -p /usr/local/etc/repos
vi /usr/local/etc/repos/myrepo.conf
Попуните myrepo.confследећим садржајем. Можете користити било које име за ову датотеку, под условом да има .confсуфикс.
poudriere: {
url: "http://yoururl"
mirror_type: "http",
enabled: yes
}
Затим ажурирајте базу података пакета командом:
pkg update
Сада можете да инсталирате пакете из вашег новог спремишта!