Създайте свое собствено Pkg-хранилище с Poudriere

От версия 9.2, FreeBSD въведе нов инструмент за замяна на старите pkg_*-commands - pkg, известен също като pkgng. Той е много подобен на този на Debian aptили Fedora, yumно има някои много готини функции. Едно от тях е възможността лесно да използвате собствено частно хранилище на пакети.

Защо бихте искали да направите това? Официалните pkg-хранилища са изградени от дървото на портовете на FreeBSD с много ограничен набор от опции. Например в официалния пакет за PHP липсва поддръжка за MySQL. Друга причина може да е, че искате да имате две хранилища, едно с активиран X11 - за вашия работен плот - и едно с деактивиран X11 - за вашите сървъри. Има много опции и възможности и този урок ще ви покаже как да изградите свое собствено хранилище с Poudriere , инструмент за масово изграждане на пакети.

Предполагам, че имате нов VPS с инсталиран FreeBSD 10 x64. На първо място, имате нужда от дървото на портовете във вашата система:

cd /usr
portsnap fetch extract

След това трябва да инсталирате Poudriere от източник (Опциите по подразбиране са добре!):

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

Вместо да използва обикновения portstree на вашата система, Poudriere използва свое собствено копие. Трябва да го получите със следната команда:

poudriere ports -c

Сега създайте затвор, в който строителят да работи:

poudriere jail -c -j testjail -v 10.0-RELEASE -a amd64

Преди да можете да започнете да създавате пакети, всъщност ще трябва да кажете на Poudriere какво трябва да изгради. Отворете любимия си текстов редактор и добавете няколко пакета:

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

Времето, което отнема тази операция, ще варира в зависимост от скоростта на процесора на вашия VPS. След като процесът приключи, вашите нови пакети могат да бъдат намерени, сортирани по build-jail, в /usr/local/poudriere/data/packages/.

Сега имате нужда от уеб сървър, за да обслужвате тези пакети на другите ви машини. Избрах Nginx, тъй като е ефективен и лек. Инсталирайте го чрез портове (Опциите по подразбиране са добре!):

cd /usr/ports/www/nginx
make install clean

След като инсталационният процес приключи, трябва да конфигурирате Nginx да обслужва директорията с пакети. За да направите това, редактирайте /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

Възможностите с Poudriere са огромни. Можете да научите повече за Poudriere, като прочетете записа на ръчната страница. Ако планирате да използвате настройка като тази в производствена среда, би било във ваш интерес да прочетете и за подписването на пакети и да помислите за осигуряване на връзката с вашия уеб сървър с TLS. Но засега сте готови да се разтърсите!

За да активирате хранилището на клиента, изпълнете тези команди на клиентската машина:

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

Вече можете да инсталирате пакети от новото си хранилище!

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече