Από την έκδοση 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
Ο χρόνος που χρειάζεται αυτή η λειτουργία θα ποικίλλει ανάλογα με την ταχύτητα CPU του 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 διαβάζοντας την καταχώριση της manpage. Εάν σκοπεύετε να χρησιμοποιήσετε μια εγκατάσταση όπως αυτή σε ένα περιβάλλον παραγωγής, θα ήταν προς το συμφέρον σας να διαβάσετε επίσης για την υπογραφή πακέτου και να εξετάσετε το ενδεχόμενο να εξασφαλίσετε τη σύνδεση με τον διακομιστή ιστού σας με 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
Τώρα μπορείτε να εγκαταστήσετε πακέτα από το νέο σας αποθετήριο!