4.4 Χρησιμοποιώντας το σύστημα Packages

Συνεισφορά του Chern Lee.

4.4.1 Εγκαθιστώντας ένα Package

Μπορείς να χρησιμοποιήσεις το εργαλείο pkg_add(1) για να εγκαταστήσεις ένα FreeBSD package λογισμικού από ένα τοπικό αρχείο ή από έναν διακομιστή στο δίκτυο.

Παράδειγμα 4-1. “Κατέβασμα” ενός Package χειροκίνητα και εγκατάσταση του τοπικά

# ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-     This machine is in Vienna, VA, USA, hosted by Verio.
230-         Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375       00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
# pkg_add lsof-4.56.4.tgz

Εάν δεν έχεις μία τοπική πηγή packages (όπως είναι ένα FreeBSD CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσεις την επιλογή -r για το pkg_add(1). Αυτό θα κάνει το εργαλείο να καθορίσει αυτόματα το σωστή μορφή και έκδοση και έπειτα να ανακτήσει και να εγκαταστήσει το package από ένα FTP site.

# pkg_add -r lsof

Το παραπάνω παράδειγμα θα “κατέβαζε” το σωστό package και θα εγκαθιστούσε χωρίς περαιτέρω επέμβαση του χρήστη. Αν θέλεις να καθορίσεις ένα εναλλακτικό FreeBSD Packages Mirror, αντί του κύριου site διανομής, πρέπει να ρυθμίσεις το PACKAGESITE σωστά, για να παρακάμψουν τις αρχικές ρυθμίσεις. Το pkg_add(1) χρησιμοποιεί το fetch(3) για να "κατεβάσει" τα αρχεία, το οποίο χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβάνοντας τις FTP_PASSIVE_MODE, FTP_PROXY, και FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσεις μία ή περισσότερες αν βρίσκεσαι πίσω από ένα firewall, ή ίσως να χρειαστεί να χρησιμοποιήσεις έναν FTP/HTTP proxy. Δες το fetch(3) για πλήρη λίστα. Πρόσεξε ότι στο παραπάνω παράδειγμα το lsof χρησιμοποιείται αντί του lsof-4.56.4. Όταν γίνεται απομακρυσμένη λήψη, ο αριθμός έκδοσης του package πρέπει να αφαιρεθεί. Το pkg_add(1) αυτόματα θα “κατεβάσει” την τελευταία έκδοση της εφαρμογής.

Σημείωση: Το pkg_add(1) θα “κατεβάσει” την τελευταία έκδοση της εφαρμογής αν χρησιμοποιείς FreeBSD-CURRENT ή FreeBSD-STABLE. Αν τρέχεις μια -RELEASE έκδοση, θα “κατεβάσει” την έκδοση του package που έχει μεταγλωττιστεί με την εκδοσή σου. Είναι δυνατό να το αλλάξεις αυτό αλλάζοντας την μεταβλητή περιβάλλοντος PACKAGESITE . Για παράδειγμα, αν τρέχεις ένα FreeBSD 5.4-RELEASE σύστημα, προκαθορισμένα το pkg_add(1) θα προσπαθήσει να “κατεβάσει” packages από το ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Αν θέλεις να αναγκάσεις το pkg_add(1) να “κατεβάσει” FreeBSD 5-STABLE packages, θέσε την PACKAGESITE ως ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.

Τα αρχεία Package διανέμονται με τις μορφές .tgz και .tbz. Μπορείς να τα βρεις στο ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ή στα FreeBSD CD-ROM διανομής. Κάθε CD στο FreeBSD 4-CD set (και στο PowerPak, κλπ.) περιέχει packages στον κατάλογο /packages. Η κατανομή των packages είναι παρόμοια με αυτή του /usr/ports δέντρου. Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε package μπορεί να βρεθεί στον All κατάλογο.

Η μορφή του καταλόγου του package system ταιριάζει με την κατανομή των ports; συνεργάζονται για να δημιουργήσουν ολόκληρο το σύστημα package/port.

4.4.2 Διαχειρίζοντας τα Packages

Το pkg_info(1) είναι ένα εργαλείο που παραθέτει και περιγράφει τα διάφορα packages που είναι εγκαταστημένα.

# pkg_info
cvsup-16.1          A general network file distribution system optimized for CV
docbook-1.2         Meta-port for the different versions of the DocBook DTD
...

Το pkg_version(1) είναι ένα εργαλείο που συνοψίζει τις εκδόσεις όλων των εγκαταστημένων packages. Συγκρίνει την εκδόσεις του package με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των ports.

# pkg_version
cvsup                       =
docbook                     =
...

Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία των εγκατεστημένων εκδόσεων και των εκδόσεων που βρίσκονται διαθέσιμες στο τοπικό δέντρο των ports.

Σύμβολο Σημασία
= Η έκδοση του εγκατεστημένου package ταιριάζει με αυτή που βρίσκεται διαθέσιμη στο τοπικό δέντρο των ports.
< Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που βρίσκεται διαθέσιμη στο δέντρο των ports.
> Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που βρίσκεται διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των ports είναι πιθανότατα απαρχαιωμένο.)
? Το εγκατεστημένο package δεν βρίσκεται στα περιεχόμενα των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα εγκατεστημένο port αφαιρείται από το Ports Collection ή μετονομάζεται.)
* Υπάρχουν πολλαπλές εκδόσεις του package.

4.4.3 Αφαιρώντας ένα Package

Για να αφαιρέσεις ένα εγκατεστημένο πακέτο λογισμικού, χρησιμοποίησε το εργαλείο pkg_delete(1) .

# pkg_delete xchat-1.7.1

4.4.4 Διάφορα

Όλες οι πληροφορίες για τα packages είναι αποθηκευμένες στον κατάλογο /var/db/pkg . Το αρχείο με την λίστα των εγκατεστημένων και περιγραφή για κάθε package μπορεί να βρεθεί σε αρχεία μέσα σε αυτόν τον κατάλογο.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.