diff --git a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml index 5a413a957a..f109cb1547 100644 --- a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml @@ -1,3421 +1,3236 @@ Που θα Βρείτε το &os; Εκδόσεις σε CDROM και DVD Retail Εκδόσεις Το &os; είναι διαθέσιμο ως εμπορικό προϊόν (&os; CD, επιπρόσθετο λογισμικό, και τυπωμένη τεκμηρίωση) από διάφορους προμηθευτές:
CompUSA WWW:
Frys Electronics WWW:
CD και DVD διανομές Το &os; είναι διαθέσιμο σε CD και DVD για αγορά μέσω διαδικτύου από τους παρακάτω προμηθευτές:
BSD Mall by Daemon News PO Box 161 Nauvoo, IL 62354 USA Phone: +1 866 273-6255 Fax: +1 217 453-9956 Email: sales@bsdmall.com WWW:
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 USA Phone: +1 925 674-0783 Fax: +1 925 674-0821 Email: info@freebsdmall.com WWW:
Dr. Hinner EDV St. Augustinus-Str. 10 D-81825 München Germany Phone: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre France WWW:
JMC Software Ireland Phone: 353 1 6291282 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA United Kingdom Phone: +44 1491 837010 Fax: +44 1491 837016 WWW:
Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Poland Phone: +48 22 860 18 18 Email: editors@lpmagazine.org WWW:
Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Australia Phone: +61 3 9857 5918 Fax: +61 3 9857 8974 WWW:
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Phone: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Διανομείς Αν είστε μεταπωλητής και μπορείτε να διανείμετε σε CD-ROM προϊόντα βασισμένα στο &os;, παρακαλούμε επικοινωνήστε με κάποιον από τους διανομείς:
Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 USA Phone: +1 650 694-4949 Fax: +1 650 694-4953 Email: sales@cylogistics.com WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 USA Phone: 1 (800) 456-8000 WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 USA Phone: +1 952 947-0822 Fax: +1 952 947-0876 Email: sales@kudzuenterprises.com
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Phone: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Navarre Corp 7400 49th Ave South New Hope, MN 55428 USA Phone: +1 763 535-8333 Fax: +1 763 535-0341 WWW:
Εξυπηρετητές FTP Οι επίσημες εκδόσεις του &os; είναι διαθέσιμες μέσω ανώνυμης FTP σύνδεσης από διάφορους εξυπηρετητές FTP σε όλο τον κόσμο. Ο κεντρικός εξυπηρετητής έχει πολύ καλή σύνδεση με τον υπόλοιπο κόσμο, και επιτρέπει ένα μεγάλο αριθμό ταυτόχρονων συνδέσεων. Ακόμα κι έτσι όμως, είναι μάλλον καλή ιδέα να βρείτε κάποιο εξυπηρετητή FTP που είναι πιο κοντά σας (ειδικά αν θέλετε να στήσετε κάποιο τοπικό mirror site). Η βάση των mirror sites του &os; είναι πιο ενημερωμένη και έγκυρη από την αντίστοιχη λίστα στο Εγχειρίδιο του &os;, κυρίως επειδή παίρνει τις πληροφορίες της από το DNS κι όχι από μια στατική λίστα από ονόματα εξυπηρετητών. Το &os; είναι επίσης διαθέσιμο μέσω σύνδεσης ανώνυμου FTP από τα παρακάτω mirror sites. Αν επιλέξετε να κατεβάσετε το &os; μέσω ανώνυμου FTP, σας παρακαλούμε να διαλέξετε κάποιο εξυπηρετητή ο οποίος είναι κοντά σας. Τα mirror sites που αναφέρονται ως Κύρια Mirror Sites έχουν συνήθως την πλήρη συλλογή αρχείων του &os; (όλες τις διαθέσιμες εκδόσεις, για κάθε διαθέσιμη αρχιτεκτονική συστήματος), αλλά είναι πιθανόν να πετύχετε καλύτερες ταχύτητες εξυπηρέτησης με κάποιο εξυπηρετητή που είναι στη δική σας χώρα ή περιοχή. Τα τοπικά sites έχουν συνήθως τις πιο πρόσφατες εκδόσεις για τις πιο δημοφιλείς αρχιτεκτονικές συστήματος, οπότε μπορεί να μην έχουν όλες τις πιθανές εκδόσεις του &os;. Όλα τα sites δέχονται συνδέσεις μέσω ανώνυμου FTP. Μερικά από αυτά μπορεί να υποστηρίζουν και άλλης μορφής συνδέσεις. Οι εναλλακτικές μορφές σύνδεσης αναφέρονται ξεχωριστά για κάθε site παρακάτω: &chap.mirrors.ftp.inc; Ανώνυμο CVS <anchor id="anoncvs-intro">Εισαγωγή CVS anonymous Η σύνδεση ανώνυμου CVS (ή anoncvs όπως λέγεται μερικές φορές) υποστηρίζεται από τα εργαλεία CVS που διανέμονται με το ίδιο το &os; για συγχρονισμό τοπικών αρχείων με ένα απομακρυσμένο repository. Ένα από τα χαρακτηριστικά του CVS είναι ότι επιτρέπει στους χρήστες του &os; να συγχρονίζουν, χωρίς ιδιαίτερα δικαιώματα χρήστη, τα τοπικά αντίγραφα πηγαίου κώδικα που έχουν με τους κεντρικούς, επίσημους εξυπηρετητές CVS του &os; project. Για να χρησιμοποιήσει κανείς το CVS αρκεί: (α) να ορίσει την τιμή της μεταβλητής περιβάλλοντος CVSROOT έτσι ώστε να δείχνει προς έναν από τους επίσημους εξυπηρετητές, και (β) να δώσει τον κωδικό anoncvs στην προτροπή της εντολής cvs login. Τότε μπορεί να χρησιμοποιήσει το εργαλείο &man.cvs.1; για να προσπελάσει το απομακρυσμένο CVS repository του &os; σαν ένα οποιοδήποτε τοπικό repository. Η εντολή cvs login αποθηκεύει τους κωδικούς που χρησιμοποιούνται για πιστοποίησης της ταυτότητάς σας στον εξυπηρετητή CVS σε ένα αρχείο με όνομα .cvspass στον HOME κατάλογο του τοπικού σας λογαριασμού. Αν αυτό το αρχείο δεν υπάρχει ήδη, μπορεί να αποτύχει η εντολή cvs login την πρώτη φορά. Μπορείτε απλά να δημιουργήσετε ένα άδειο αρχείο .cvspass και να ξανατρέξετε την εντολή cvs login. Μπορεί να πει κανείς ότι το CVSup και το anoncvs είναι ουσιαστικά παρόμοιοι τρόποι συγχρονισμού αρχείων και υποστηρίζουν την ίδια λειτουργικότητα, αλλά υπάρχουν κάποιες διαφορές οι οποίες μπορεί να παίξουν σημαντικό ρόλο στην επιλογή μεταξύ αυτών των δύο μεθόδων. Γενικά, το CVSup κάνει πολύ πιο αποδοτική χρήση της σύνδεσης που έχετε και χρησιμοποιεί ένα πολύ πιο έξυπνο πρωτόκολλο επικοινωνίας, αλλά υπάρχει και το αντίστοιχο τίμημα. Για να χρησιμοποιήσετε το CVSup πρέπει να εγκαταστήσετε και να ρυθμίσετε ένα ειδικό πρόγραμμα πελάτη, και τότε μπορείτε να συγχρονίσετε μόνο μεγάλες συλλογές αρχείων — τις οποίες το CVSup αποκαλεί συλλογές (collections). Το anoncvs, από την άλλη, μπορεί να χρησιμοποιηθεί για να εξετάσει κανείς τις αλλαγές ενός και μόνο αρχείου ή ενός μόνο προγράμματος και των συνοδευτικών του αρχείων (π.χ. τον πηγαίο κώδικα της εντολής ls ή της grep), με χρήση του ονόματος του κατάλληλου module. Το anoncvs είναι πιο βολικό για εργασίες που απαιτούν βέβαια μόνο ανάγνωση. Οπότε, αν θέλετε να υποστηρίξετε την ανάπτυξη προγραμμάτων τοπικά, το CVSup είναι μάλλον μονόδρομος. <anchor id="anoncvs-usage">Χρησιμοποιώντας Ανώνυμο CVS Η ρύθμιση του &man.cvs.1; ώστε να χρησιμοποιεί ένα ανώνυμο CVS repository γίνεται απλώς ρυθμίζοντας την μεταβλητή περιβάλλοντος CVSROOT ώστε να δείχνει σε έναν από τους anoncvs εξυπηρετητές του &os; project. Την ώρα που γράφονται αυτές οι γραμμές, είναι διαθέσιμοι οι ακόλουθοι εξυπηρετητές: Γαλλία: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (κωδικός anoncvs), ssh (χωρίς κωδικό)) Ιαπωνία: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Χρησιμοποιήστε την εντολή cvs login και δώστε τον κωδικό anoncvs όταν σας ζητηθεί.) Ταΐβάν: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (για τον pserver χρησιμοποιήστε την εντολή cvs login και δώστε οτιδήποτε για κωδικό όταν σας ζητηθεί, το ssh δεν έχει κωδικό.) SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub Ηνωμένες Πολιτείες Αμερικής: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (μόνο ssh - χωρίς κωδικό) SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub Ηνωμένες Πολιτείες Αμερικής: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (μόνο ssh2 - χωρίς κωδικό) SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub Καθώς το CVS σας επιτρέπει να κάνετε check out ουσιαστικά οποιαδήποτε έκδοση του πηγαίου κώδικα του &os; υπήρξε ποτέ (και σε ορισμένες περιπτώσεις ακόμα και εκδόσεις που δεν έχουν κυκλοφορήσει ακόμα), θα πρέπει να είστε εξοικειωμένος με την επιλογή του &man.cvs.1; με την οποία επιλέγεται το revision (πρόκειται για την ) και ποιες είναι οι επιτρεπτές τιμές της για το repository του &os; project. Υπάρχουν δύο είδη tags (ετικετών), τα revision tags (ετικέτες έκδοσης) και τα branch tags. Ένα revision tag αναφέρεται σε μια συγκεκριμένη έκδοση. Η έννοια του παραμένει σταθερή μέρα με τη μέρα. Από την άλλη, ένα branch tag δείχνει την τελευταία έκδοση μιας συγκεκριμένης πορείας ανάπτυξης, σε κάθε χρονική στιγμή. Καθώς το branch tag δεν αναφέρεται σε κάποια συγκεκριμένη έκδοση, μπορεί αύριο να σημαίνει κάτι διαφορετικό από ότι σημαίνει σήμερα. Το περιέχει revision tags τα οποία μπορεί να ενδιαφέρουν τους χρήστες. Υπενθυμίζουμε ότι κανένα από αυτά δεν είναι έγκυρο για την Συλλογή των Ports, καθώς αυτή δεν έχει πολλαπλές εκδόσεις (revisions). Όταν καθορίζετε κάποιο branch tag, φυσιολογικά λαμβάνετε τις τελευταίες εκδόσεις των αρχείων που υπάρχουν σε αυτή τη γραμμή ανάπτυξης. Αν θέλετε να λάβετε κάποια παλιότερη έκδοση, μπορείτε χρησιμοποιώντας την ημερομηνία σε συνδυασμό με την επιλογή . Δείτε τη σελίδα manual του &man.cvs.1; για περισσότερες λεπτομέρειες. Παραδείγματα Αν και πραγματικά συνίσταται να διαβάσετε προσεκτικά τη σελίδα manual του &man.cvs.1; πριν κάνετε οτιδήποτε, παρακάτω σας δίνουμε κάποια γρήγορα παραδείγματα τα οποία ουσιαστικά θα σας δείξουν πως να χρησιμοποιήσετε το Ανώνυμο CVS: Λήψη (Check out) Κάποιου Αρχείου από το -CURRENT (&man.ls.1;): &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Στην προτροπή, δώστε οποιαδήποτε λέξη για password. &prompt.user; cvs co ls Χρήση SSH για Λήψη (check out) του Δέντρου <filename>src/</filename>: &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. Λήψη της Έκδοσης του Αρχείου &man.ls.1; από το 6-STABLE Branch: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Στην προτροπή, δώστε οποιαδήποτε λέξη για password. &prompt.user; cvs co -rRELENG_6 ls Δημιουργία μιας Λίστας Αλλαγών (ως Unified Diffs) της &man.ls.1;: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Στην προτροπή, δώστε οποιαδήποτε λέξη για password. &prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls Βρίσκοντας Ποια Άλλα Ονόματα Modules μπορούν να Χρησιμοποιηθούν: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Στην προτροπή, δώστε οποιαδήποτε λέξη για password. &prompt.user; cvs co modules &prompt.user; more modules/modules Άλλες Πηγές Πληροφοριών Οι παρακάτω πηγές πληροφοριών ίσως σας φανούν χρήσιμες για να μάθετε το CVS: CVS Tutorial από τον Cal Poly. CVS Home, η ομάδα ανάπτυξης και υποστήριξης του CVS. CVSweb Διεπαφή Web για το CVS του &os; Project. Χρησιμοποιώντας το CTM CTM Το CTM είναι μια μέθοδος να διατηρούμε σε συγχρονισμό ένα απομακρυσμένο κατάλογο με ένα κεντρικό. Αναπτύχθηκε για χρήση με το δέντρο πηγαίου κώδικα του &os;, αν και άλλοι άνθρωποι μπορεί να το βρουν χρήσιμο και για διαφορετικούς σκοπούς καθώς περνάει ο καιρός. Τη δεδομένη στιγμή υπάρχει ελάχιστη ως ανύπαρκτη τεκμηρίωση για την διαδικασία δημιουργίας αρχείων διαφορών (deltas), και αν χρειάζεστε περισσότερες πληροφορίες, επικοινωνήστε με τη λίστα ταχυδρομείου &a.ctm-users.name; ειδικά αν θέλετε να χρησιμοποιήσετε το CTM για άλλες εφαρμογές. Γιατί Πρέπει να Χρησιμοποιήσω το <application>CTM</application>; Το CTM θα σας δώσει ένα τοπικό αντίγραφο του δέντρου πηγαίου κώδικα του &os;. Υπάρχει διαθέσιμος ένας αριθμός από γεύσεις του δέντρου. Το CTM μπορεί να σας παρέχει τις πληροφορίες που χρειάζεστε, είτε αποφασίσετε να παρακολουθείτε ολόκληρο το δέντρο, είτε κάποιο από τα παρακλάδια του. Αν ανήκετε στα ενεργά μέλη ανάπτυξης του &os; αλλά έχετε κακής ποιότητας (ή καθόλου) TCP/IP συνδεσιμότητα, ή απλά θέλετε οι αλλαγές να σας έρχονται αυτόματα, το CTM έχει φτιαχτεί για σας. Θα χρειαστεί να παίρνετε ως τρία deltas την ημέρα για τα κλαδιά του δέντρου που έχουν την πιο ενεργή ανάπτυξη. Θα πρέπει ωστόσο να θεωρήσετε ως καλύτερη λύση την αυτόματη αποστολή τους μέσω email. Τα μεγέθη των ανανεώσεων κρατούνται πάντα όσο το δυνατόν πιο μικρά. Συνήθως είναι μικρότερα από 5Κ, περιστασιακά (ένα στα δέκα) είναι από 10-50Κ και ορισμένες φορές εμφανίζονται και κάποια που είναι 100Κ ή και μεγαλύτερα. Θα πρέπει επίσης να εξοικειωθείτε με τις διάφορες παγίδες που σχετίζονται με την απευθείας εργασία στον υπό ανάπτυξη πηγαίο κώδικα σε σχέση με μια έτοιμη, προκατασκευασμένη έκδοση. Αυτό ισχύει ακόμα περισσότερο αν επιλέξετε να χρησιμοποιήσετε τον πηγαίο κώδικα από το current. Σας συνιστούμε να διαβάσετε πως να χρησιμοποιήσετε το current στο &os;. Τι Χρειάζομαι για να Χρησιμοποιήσω το <application>CTM</application>; Θα χρειαστείτε δύο πράγματα: Την εφαρμογή CTM και τις αρχικές αλλαγές (deltas) για να τις εισάγετε σε αυτήν (ώστε να φτάσετε στο επίπεδο του current). Το CTM είναι μέρος του &os; από την έκδοση 2.0, και βρίσκεται στον κατάλογο /usr/src/usr.sbin/ctm εφόσον έχετε εγκατεστημένο τον πηγαίο κώδικα. Τα deltas με τα οποία τροφοδοτείτε το CTM μπορείτε να τα αποκτήσετε με δύο τρόπους, μέσω FTP ή μέσω email. Αν έχετε γενική FTP πρόσβαση στο Internet, θα βρείτε υποστήριξη για το CTM στις ακόλουθες τοποθεσίες FTP: ή δείτε το τμήμα mirrors. Κάντε FTP στο σχετικό κατάλογο και διαβάστε το αρχείο README για να ξεκινήσετε. Αν θέλετε να λαμβάνετε τα deltas μέσω email: Γραφτείτε συνδρομητής σε μια από τις λίστες διανομής του CTM. Η λίστα &a.ctm-cvs-cur.name; υποστηρίζει ολόκληρο το δέντρο του CVS. Η λίστα &a.ctm-src-cur.name; υποστηρίζει την κεφαλή (head) του κλάδου ανάπτυξης (development branch). Η λίστα &a.ctm-src-4.name; υποστηρίζει την έκδοση 4.X κ.ο.κ. Αν δεν γνωρίζετε πως να εγγραφείτε σε μια λίστα, κάντε κλικ στο όνομα της λίστας που εμφανίζεται παραπάνω ή πηγαίνετε στο &a.mailman.lists.link; και κάντε κλικ στη λίστα που θέλετε να εγγραφείτε. Η σελίδα της λίστας θα πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες σχετικά με τις συνδρομές. Όταν αρχίσετε να λαμβάνετε ανανεώσεις CTM μέσω mail, μπορείτε να χρησιμοποιήσετε το πρόγραμμα ctm_rmail για να τις αποσυμπιέσετε και να τις εφαρμόσετε. Μπορείτε στην πραγματικότητα να χρησιμοποιήσετε το πρόγραμμα ctm_rmail απευθείας μέσω μιας εγγραφής στο /etc/aliases αν θέλετε η διαδικασία να εκτελείται αυτοματοποιημένα. Δείτε τη σελίδα manual του ctm_rmail για περισσότερες λεπτομέρειες. Άσχετα με τη μέθοδο που θα χρησιμοποιήσετε για να λάβετε τα deltas του CTM θα πρέπει να εγγραφείτε στη λίστα &a.ctm-announce.name;. Στο μέλλον, αυτό θα είναι και το μόνο μέρος στο οποίο θα δημοσιεύονται πληροφορίες σχετικά με τις λειτουργίες του συστήματος CTM. Κάντε κλικ στο όνομα της παραπάνω λίστας, και ακολουθείστε τις οδηγίες για να εγγραφείτε. Χρησιμοποιώντας το <application>CTM</application> για Πρώτη Φορά Πριν αρχίσετε να χρησιμοποιείτε CTM deltas, θα πρέπει να έχετε ένα σημείο εκκίνησης για τα delta που έχουν δημιουργηθεί μετά από αυτό. Θα πρέπει πρώτα να καθορίσετε τι έχετε ήδη. Οποιοσδήποτε μπορεί να αρχίσει από ένα άδειο κατάλογο. Θα πρέπει να ξεκινήσετε με ένα αρχικό Κενό delta για να αρχίσετε με το CTM δέντρο σας. Από κάποιο σημείο θεωρούμε ότι ένα από αυτά τα αρχικά deltas θα διανέμονται σε CD για τη δική σας διευκόλυνση, ωστόσο αυτό δεν συμβαίνει τη δεδομένη στιγμή. Καθώς τα δέντρα είναι αρκετές δεκάδες megabytes, είναι προτιμότερο να ξεκινήσετε από κάτι που έχετε ήδη. Αν έχετε CD κάποιας διανομής (RELEASE), μπορείτε να αντιγράψετε ή να αποσυμπιέσετε από εκεί τον αρχικό πηγαίο κώδικα. Έτσι θα γλυτώσετε σημαντικό μέρος της μεταφοράς δεδομένων. Μπορείτε να αναγνωρίσετε αυτά τα αρχικά deltas από το X που ακολουθεί τον αριθμό τους (για παράδειγμα src-cur.3210XEmpty.gz). Ο χαρακτηρισμός μετά το X αντιστοιχεί στην πηγή του αρχικού σας seed. Το Empty είναι ένας άδειος κατάλογος. Κατά κανόνα δημιουργείται μια μετάβαση από το Empty κάθε 100 deltas. Επίσης τα αρχεία αυτά είναι μεγάλα! Συνηθισμένο μέγεθος για XEmpty deltas είναι τα 70 ως 80 MB συμπιεσμένων με gzip δεδομένων. Μόλις επιλέξετε ένα βασικό delta για να ξεκινήσετε, θα χρειαστείτε επίσης όλα τα deltas με μεγαλύτερους από αυτό αριθμούς. Χρησιμοποιώντας το <application>CTM</application> στην Καθημερινή σας Ζωή Για να εφαρμόσετε τα deltas, απλώς γράψτε: &prompt.root; cd /where/ever/you/want/the/stuff &prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.* Το CTM αντιλαμβάνεται deltas τα οποία έχουν συμπιεστεί μέσω gzip, και έτσι δεν χρειάζεται να χρησιμοποιήσετε την gunzip, γλυτώνοντας με αυτό τον τρόπο χώρο στο δίσκο. Το CTM δεν πρόκειται να πειράξει τα αρχεία σας αν δεν είναι απόλυτα σίγουρο για τη διαδικασία ανανέωσης. Για να επαληθεύσετε ένα delta μπορείτε επίσης να χρησιμοποιήσετε την επιλογή και το CTM δεν θα πειράξει τίποτα, απλώς θα επαληθεύσει την ακεραιότητα του delta και θα δει αν μπορεί να το εφαρμόσει χωρίς προβλήματα στο τρέχον δέντρο. Υπάρχουν και άλλες επιλογές στο CTM, δείτε τις αντίστοιχες σελίδες manual ή κοιτάξτε τον πηγαίο κώδικα για περισσότερες πληροφορίες. Αυτό είναι όλο στην πραγματικότητα. Κάθε φορά που λαμβάνετε ένα νέο delta, απλώς περάστε το στο CTM ώστε να έχετε πάντοτε ανανεωμένο τον πηγαίο σας κώδικα. Μην σβήνετε τα deltas αν είναι δύσκολο να τα κατεβάσετε ξανά. Ίσως θέλετε να τα φυλάξετε για την περίπτωση που κάτι πάει στραβά. Ακόμα και αν το μόνο μέσο που έχετε είναι δισκέτες, κάντε αντίγραφο χρησιμοποιώντας την fdwrite. Κρατώντας τις Τοπικές σας Αλλαγές Ως προγραμματιστής, θα θέλετε να πειραματιστείτε και να αλλάξετε αρχεία στο δέντρο του πηγαίου κώδικα. Το CTM υποστηρίζει περιορισμένου τύπου τοπικές αλλαγές: πριν ελέγξει για την παρουσία ενός αρχείου foo, ελέγχει πρώτα για το foo.ctm. Αν το αρχείο αυτό υπάρχει, το CTM θα χρησιμοποιήσει αυτό αντί για το foo. Η συμπεριφορά αυτή μας παρέχει ένα απλό τρόπο να διατηρήσουμε τοπικές αλλαγές: απλώς αντιγράψτε τα αρχεία που σκοπεύετε να αλλάξετε σε αντίστοιχα αρχεία με κατάληξη .ctm. Μπορείτε κατόπιν να κάνετε ότι αλλαγές θέλετε στον κώδικα ενώ το CTM θα διατηρεί ανανεωμένο το αρχείο .ctm. Άλλες Ενδιαφέρουσες Επιλογές του <application>CTM</application> Βρίσκοντας τι Ακριβώς θα Αλλάξει σε μια Ανανέωση Μπορείτε να προσδιορίσετε τις αλλαγές που θα προκαλέσει το CTM στο repository του πηγαίου σας κώδικα, χρησιμοποιώντας την επιλογή . Αυτό θα είναι χρήσιμο αν θέλετε να κρατήσετε ημερολόγιο των αλλαγών, αν θέλετε να επεξεργαστείτε τα τροποποιημένα αρχεία πριν ή μετά την τροποποίηση τους, ή αν απλώς αισθάνεστε ελαφρώς παρανοϊκός. Δημιουργώντας Αντίγραφα Ασφαλείας πριν την Ανανέωση Μερικές φορές θα θέλετε να κρατήσετε αντίγραφο ασφαλείας όλων των αρχείων που πρόκειται να αλλαχθούν από μια ανανέωση μέσω CTM. Δίνοντας την επιλογή το CTM θα δημιουργήσει αντίγραφο ασφαλείας όλων των αρχείων που πρόκειται να αλλαχθούν από κάποιο συγκεκριμένο delta στο αρχείο backup-file. Περιορίζοντας τα Αρχεία που θα Αλλαχθούν από Κάποια Ανανέωση Μερικές φορές ίσως να ενδιαφέρεστε να περιορίσετε την περιοχή δράσης μιας συγκεκριμένης ανανέωσης μέσω CTM ή ίσως σας ενδιαφέρει να πάρετε μόνο λίγα αρχεία από κάποια σειρά από deltas. Μπορείτε να ελέγξετε τη λίστα των αρχείων στα οποία θα λειτουργήσει το CTM χρησιμοποιώντας ως φίλτρα, regular expressions με τις επιλογές και . Για παράδειγμα, για να εξάγετε ένα ανανεωμένο αντίγραφο του αρχείου lib/libc/Makefile από την συλλογή σας των αποθηκευμένων CTM deltas, εκτελέστε τις εντολές: &prompt.root; cd /where/ever/you/want/to/extract/it/ &prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* Για κάθε αρχείο που καθορίζεται σε ένα CTM delta, οι επιλογές και εφαρμόζονται με τη σειρά που εμφανίζονται στη γραμμή εντολών. Στο αρχείο γίνεται επεξεργασία από το CTM, μόνο αν μαρκαριστεί ως έγκυρο προς ανανέωση μετά την εφαρμογή όλων των επιλογών και . Μελλοντικά Σχέδια για το <application>CTM</application> Είναι πάρα πολλά: Χρήση κάποιου είδους πιστοποίησης στο σύστημα CTM ώστε να αναγνωρίζονται τυχόν ψεύτικες ανανεώσεις. Ξεκαθάρισμα των επιλογών του CTM, καθώς προκαλούν σύγχυση και δεν είναι προφανείς. Διάφορα Υπάρχει επίσης και μια σειρά από deltas για την συλλογή των ports, αλλά δεν έχει εκδηλωθεί ακόμα αρκετό ενδιαφέρον για αυτή. CTM Mirrors Το CTM/FreeBSD διατίθεται μέσω ανώνυμου FTP από τα ακόλουθα mirrors. Αν επιλέξετε να κατεβάσετε το CTM μέσω ανώνυμου FTP, σας παρακαλούμε προσπαθήστε να επιλέξετε μια τοποθεσία κοντά σε σας. Σε περίπτωση προβλημάτων, παρακαλούμε επικοινωνήστε με τη λίστα &a.ctm-users.name;. Καλιφόρνια, Bay Area, επίσημη πηγή Νότια Αφρική, αντίγραφα ασφαλείας για παλιά deltas Ταιβάν/R.O.C. Αν δεν βρήκατε κάποιο mirror στην περιοχή σας, ή αν το mirror δεν είναι πλήρες, προσπαθήστε να χρησιμοποιήσετε μια μηχανή αναζήτησης όπως η alltheweb. Χρησιμοποιώντας το CVSup Εισαγωγή Το CVSup είναι ένα λογισμικό για την διανομή και ανανέωση δέντρων πηγαίου κώδικα από ένα κεντρικό (master) CVS repository το οποίο βρίσκεται σε κάποιο απομακρυσμένο υπολογιστή. Το repository του &os; βρίσκεται σε ένα κεντρικό μηχάνημα στην Καλιφόρνια. Με το CVSup, οι χρήστες του &os; μπορούν εύκολα να διατηρήσουν ανανεωμένα τα αντίγραφα του πηγαίου τους κώδικα. Το CVSup χρησιμοποιεί ένα μοντέλο ανανέωσης γνωστό ως pull. Στο μοντέλο αυτό, κάθε πελάτης ζητά τις ανανεώσεις από τον εξυπηρετητή, όταν και αν τις επιθυμεί. Ο εξυπηρετητής περιμένει, παθητικά, τις απαιτήσεις από τους πελάτες. Με τον τρόπο αυτό, κάθε ανανέωση ξεκινάει κατόπιν απαίτησης του πελάτη. Ο εξυπηρετητής ποτέ δεν στέλνει ανανεώσεις που δεν έχουν ζητηθεί. Οι χρήστες θα πρέπει είτε να εκτελέσουν το CVSup χειροκίνητα για να λάβουν μια ανανέωση, είτε θα πρέπει να ρυθμίσουν κατάλληλα το cron ώστε να το εκτελεί αυτόματα κατά τακτά χρονικά διαστήματα. Ο όρος CVSup, γραμμένος με κεφαλαία και μικρά όπως φαίνεται, αναφέρεται σε ολόκληρο το πακέτο λογισμικού. Τα βασικά του τμήματα είναι η εντολή πελάτη cvsup η οποία εκτελείται στο μηχάνημα του κάθε χρήστη, και το πρόγραμμα του εξυπηρετητή cvsupd το οποίο εκτελείται σε κάθε ένα από τα mirror sites του &os;. Καθώς διαβάζετε την τεκμηρίωση και τις λίστες ταχυδρομείου του &os;, μπορεί να βρείτε αναφορές στην εφαρμογή sup. Το sup ήταν ο πρόγονος του CVSup, και εξυπηρετούσε παρόμοιο σκοπό. Το CVSup χρησιμοποιείται με αρκετά όμοιο τρόπο με το sup, και στην πραγματικότητα, χρησιμοποιεί αρχεία ρυθμίσεων τα οποία έχουν πίσω συμβατότητα με αυτά του sup. Το sup δεν χρησιμοποιείται πλέον στο &os; Project, επειδή το CVSup είναι ταχύτερο και προσφέρει μεγαλύτερη ευελιξία. Το πρόγραμμα csup είναι το CVSup ξαναγραμμένο σε γλώσσα C. Το μεγαλύτερο του πλεονέκτημα είναι ότι είναι ταχύτερο, και δεν εξαρτάται από την γλώσσα προγραμματισμού Modula-3, την οποία και δεν χρειάζεται πλέον να εγκαταστήσετε. Επίσης, αν χρησιμοποιείτε έκδοση &os; 6.2 ή μεταγενέστερη, μπορείτε να το χρησιμοποιήσετε άμεσα, καθώς περιλαμβάνεται στο βασικό σύστημα. Παλιότερες εκδόσεις του &os; δεν έχουν το &man.csup.1; στο βασικό σύστημα, αλλά μπορείτε να το εγκαταστήσετε εύκολα από το port net/csup port, ή από έτοιμο πακέτο. Ωστόσο, το csup δεν υποστηρίζει κατάσταση λειτουργίας CVS. Αν θέλετε να κάνετε mirror ολόκληρα repositories, θα χρειαστεί να χρησιμοποιήσετε το CVSup. Αν αποφασίσετε να χρησιμοποιήσετε το csup, απλώς παραλείψτε τα βήματα για την εγκατάσταση του CVSup και αντικαταστήστε κάθε αναφορά στο CVSup σε αυτό το άρθρο, με csup. Εγκατάσταση Ο ευκολότερος τρόπος για να εγκαταστήσετε το CVSup είναι μέσω του έτοιμου πακέτου net/cvsup από την συλλογή πακέτων του &os;. Αν προτιμάτε να μεταγλωττίσετε το CVSup από τον πηγαίο κώδικα, μπορείτε να χρησιμοποιήσετε το port net/cvsup. Σας προειδοποιούμε ωστόσο ότι το port net/cvsup εξαρτάται από την Modula-3, η οποία χρειάζεται αρκετό χρόνο και χώρο στο δίσκο για να κατέβει και να μεταγλωττιστεί. Αν πρόκειται να χρησιμοποιήσετε το CVSup σε ένα μηχάνημα το οποίο δεν θα διαθέτει γραφικό περιβάλλον μέσω &xfree86; ή &xorg;, όπως π.χ. σε ένα εξυπηρετητή, βεβαιωθείτε ότι εγκαθιστάτε το αντίστοιχο port το οποίο δεν περιλαμβάνει γραφικό περιβάλλον, δηλαδή το net/cvsup-without-gui. Αν θέλετε να εγκαταστήσετε το csup στο &os; 6.1 ή προγενέστερο, μπορείτε να χρησιμοποιήσετε το έτοιμο πακέτο net/csup από την συλλογή πακέτων του &os;. Αν θέλετε να μεταγλωττίσετε το csup από τον πηγαίο κώδικα, μπορείτε να χρησιμοποιήσετε το port, net/csup. Ρύθμιση του CVSup Η λειτουργία του CVSup ελέγχεται από ένα αρχείο ρυθμίσεων που καλείται supfile. Υπάρχουν κάποια υποδείγματα από supfiles στον κατάλογο /usr/share/examples/cvsup/. Οι πληροφορίες στο supfile απαντούν τις ακόλουθες ερωτήσεις για το CVSup: Ποια αρχεία θέλετε να λάβετε; Ποιες εκδόσεις των αρχείων θέλετε; Από που θέλετε να τα λάβετε; Που θέλετε να τα αποθηκεύσετε στο μηχάνημα σας; Που θέλετε να αποθηκεύσετε τα αρχεία κατάστασης; Στα επόμενα τμήματα, θα δημιουργήσουμε ένα τυπικό supfile απαντώντας κάθε μια από τις ερωτήσεις αυτές με τη σειρά. Πρώτα, θα περιγράψουμε τη συνολική δομή ενός supfile. Ένα supfile είναι ένα αρχείο κειμένου. Τα σχόλια ξεκινάνε με # και επεκτείνονται ως το τέλος της γραμμής. Οι κενές γραμμές, καθώς και αυτές που περιέχουν μόνο σχόλια, αγνοούνται. Κάθε γραμμή από τις υπόλοιπες περιγράφει ένα σετ αρχείων τα οποία επιθυμεί να λάβει ο χρήστης. Η γραμμή ξεκινάει με το όνομα μιας συλλογής, ενός λογικού γκρουπ από αρχεία που ορίζεται από τον εξυπηρετητή. Το όνομα της συλλογής δηλώνει στον εξυπηρετητή ποια αρχεία επιθυμείτε. Μετά το όνομα της συλλογής, μπορεί να υπάρχουν από μηδέν ως κάποια πεδία, τα οποία χωρίζονται μεταξύ τους με κενά διαστήματα. Τα πεδία αυτά απαντούν τις ερωτήσεις που τέθηκαν παραπάνω. Υπάρχουν δύο τύποι πεδίων: πεδία σήμανσης (flags) και πεδία τιμών. Ένα πεδίο σήμανσης αποτελείται από μια μόνο λέξη κλειδί π.χ. delete ή compress. Ένα πεδίο τιμής ξεκινάει επίσης με μια λέξη κλειδί, αλλά αυτή ακολουθείτε χωρίς την παρεμβολή κενού διαστήματος από = και μια δεύτερη λέξη. Για παράδειγμα το release=cvs αποτελεί ένα πεδίο τιμής. Ένα supfile τυπικά καθορίζει προς λήψη περισσότερες από μία συλλογές. Ένα τρόπος για να δομήσετε ένα supfile είναι να καθορίσετε όλα τα σχετικά πεδία χωριστά για κάθε συλλογή. Με τον τρόπο αυτό ωστόσο το supfile θα καταλάβει αρκετές γραμμές και θα είναι άβολο, επειδή τα περισσότερα πεδία είναι ίδια για όλες τις συλλογές που περιέχονται σε αυτό. Το CVSup παρέχει ένα μηχανισμό χρήσης προεπιλεγμένων τιμών, ώστε να αποφεύγονται αυτά τα προβλήματα. Οι γραμμές που ξεκινάνε με το ειδικό όνομα ψευτό-συλλογής *default μπορούν να χρησιμοποιηθούν για να θέσουν πεδία σήμανσης και τιμών τα οποία θα χρησιμοποιηθούν ως προεπιλογές για τις συλλογές του supfile που βρίσκονται μετά από αυτά. Μια προεπιλεγμένη τιμή μπορεί να αλλάξει αν καθοριστεί ξανά με νέα τιμή μέσα στην ίδια τη συλλογή. Οι προεπιλογές μπορούν επίσης να αλλάξουν, ή να προστεθούν νέες, βάζοντας πρόσθετα *default σε οποιοδήποτε σημείο μέσα στο supfile. Γνωρίζοντας τα παραπάνω, θα προχωρήσουμε τώρα στη δόμηση ενός supfile για λήψη και ανανέωση του κυρίως δέντρου πηγαίου κώδικα για το &os;-CURRENT. Ποια αρχεία θέλετε να λάβετε; Τα αρχεία που είναι διαθέσιμα μέσω της CVSup είναι οργανωμένα σε γκρουπ που ονομάζονται συλλογές. Περιγραφή των διαθέσιμων συλλογών θα βρείτε στο ακόλουθο τμήμα. Στο παράδειγμα μας, θέλουμε να λάβουμε το πλήρες δέντρο πηγαίου κώδικα του &os; συστήματος. Υπάρχει μια μεγάλη συλλογή src-all η οποία θα μας την δώσει όλη. Σαν πρώτο βήμα για την δόμηση του supfile, απλώς γράφουμε τις συλλογές, μία σε κάθε γραμμή (στην περίπτωση μας έχουμε μόνο μια γραμμή): src-all Ποιες εκδόσεις των αρχείων θέλετε να λάβετε; Με το CVSup, μπορείτε ουσιαστικά να λάβετε οποιαδήποτε έκδοση του πηγαίου κώδικα υπήρξε ποτέ. Αυτό είναι δυνατόν επειδή ο εξυπηρετητής cvsupd λειτουργεί απευθείας από το CVS repository, το οποίο περιέχει όλες τις εκδόσεις. Δηλώνετε ποια από αυτές θέλετε χρησιμοποιώντας τα πεδία τιμών tag= και . Θα πρέπει να δώσετε ιδιαίτερη προσοχή στον καθορισμό των πεδίων tag= ώστε να είναι σωστά. Κάποια tags είναι έγκυρα μόνο για συγκεκριμένες συλλογές αρχείων. Αν καθορίσετε λανθασμένο tag (ή κάνετε ορθογραφικό λάθος) το CVSup θα σβήσει αρχεία τα οποία πιθανώς δεν θέλετε να σβηστούν. Ειδικότερα, για την συλλογή των ports-*, χρησιμοποιήστε μόνο το tag=.. Το πεδίο tag= δείχνει προς ένα συμβολικό tag στο repository. Υπάρχουν δύο είδη tags, τα tags εκδόσεων (revision tags) και τα tags κλάδων (branch tags). Ένα revision tag αναφέρεται σε μια συγκεκριμένη έκδοση. Η σημασία του διατηρείται ίδια από τη μια μέρα στην άλλη. Από την άλλη, ένα branch tag, αναφέρεται στην τελευταία έκδοση μια συγκεκριμένης γραμμής ανάπτυξης, σε κάθε χρονική στιγμή. Επειδή ένα branch tag δεν αναφέρεται σε κάποια συγκεκριμένη έκδοση, μπορεί αύριο να σημαίνει κάτι διαφορετικό από ότι σημαίνει σήμερα. Στο θα βρείτε branch tags τα οποία μπορεί να σας ενδιαφέρουν. Όταν καθορίζετε ένα tag στο αρχείο ρυθμίσεων του CVSup, θα πρέπει πριν από αυτό να βάζετε τη λέξη κλειδί tag= (δηλ. το RELENG_4 θα γίνει tag=RELENG_4). Να έχετε υπόψιν σας ότι για την συλλογή των Ports, το tag=. είναι το μόνο έγκυρο. Να είστε ιδιαίτερα προσεκτικός, ώστε να γράψετε το tag ακριβώς όπως φαίνεται. Το CVSup δεν μπορεί να διαχωρίσει μεταξύ έγκυρων και μη-έγκυρων tags. Αν γράψετε λάθος το tag, το CVSup θα συμπεριφερθεί σαν να έχετε δώσει ένα έγκυρο tag το οποίο δεν αναφέρεται σε κανένα αρχείο. Στην περίπτωση αυτή θα διαγράψει τα υπάρχοντα αρχεία σας πηγαίου κώδικα. Όταν καθορίσετε κάποιο branch tag, φυσιολογικά θα λάβετε τις τελευταίες εκδόσεις των αρχείων που υπάρχουν σε αυτή τη γραμμή ανάπτυξης. Αν θέλετε να λάβετε κάποιες παλιότερες εκδόσεις, μπορείτε να το κάνετε καθορίζοντας μια ημερομηνία μέσω του πεδίου τιμών . Η σελίδα manual &man.csup.1; εξηγεί πως μπορείτε να το κάνετε. Στο παράδειγμα μας, επιθυμούμε να λάβουμε το &os;-CURRENT. Προσθέτουμε τη γραμμή αυτή στην αρχή του supfile αρχείου μας: *default tag=. Υπάρχει μια σημαντική ειδική περίπτωση όταν δεν καθορίσετε ούτε πεδίο tag= ούτε πεδίο date=. Στην περίπτωση αυτή θα λάβετε τα κανονικά αρχεία RCS απευθείας από το CVS repository του εξυπηρετητή, αντί για να λάβετε κάποια συγκεκριμένη έκδοση. Οι προγραμματιστές γενικά προτιμούν αυτό τον τρόπο λειτουργίας. Διατηρώντας πλήρες αντίγραφο του CVS repository στα συστήματα τους έχουν την ικανότητα να βλέπουν το ιστορικό αλλαγών κάθε έκδοσης και να εξετάζουν παλιότερες εκδόσεις των αρχείων. Τα παραπάνω πλεονεκτήματα ωστόσο έχουν το κόστος της μεγαλύτερης χρήσης χώρου στο σκληρό δίσκο. Από που θέλετε να τα λάβετε; Χρησιμοποιούμε το πεδίο host= για να πούμε στο cvsup από που να λάβει τις ανανεώσεις του. Οποιοδήποτε από τα CVSup mirror sites είναι κατάλληλο, αν και θα πρέπει να προσπαθήσετε να επιλέξετε κάποιο το οποίο να βρίσκεται κοντά σας. Στο παράδειγμα μας, θα χρησιμοποιήσουμε μια φανταστική τοποθεσία διανομής του &os;, το cvsup99.FreeBSD.org: *default host=cvsup99.FreeBSD.org Θα πρέπει να αλλάξετε το host σε κάποιο που πραγματικά υπάρχει πριν εκτελέσετε το CVSup. Κάθε φορά που εκτελείτε το cvsup, έχετε την δυνατότητα να ανατρέπετε αυτή τη ρύθμιση μέσω της γραμμής εντολών με την επιλογή . Που θέλετε να τα αποθηκεύσετε στο μηχάνημα σας; Το πεδίο prefix= δηλώνει στην cvsup που να αποθηκεύσει τα αρχεία που λαμβάνει. Στο παράδειγμα μας, θα βάλουμε τα αρχεία του πηγαίου κώδικα, απευθείας στο κύριο δέντρο πηγαίου κώδικα, /usr/src. Ο κατάλογος src θεωρείται δεδομένος για τις συλλογές που έχουμε επιλέξει να λάβουμε, και έτσι ο σωστός προσδιορισμός είναι αυτός που φαίνεται παρακάτω: *default prefix=/usr Που θα αποθηκεύσει το cvsup τα αρχεία κατάστασης του; Ο πελάτης CVSup διατηρεί κάποια αρχεία κατάστασης (status files) σε αυτό που αποκαλείται κατάλογος base. Τα αρχεία αυτά βοηθούν το CVSup να λειτουργεί πιο αποδοτικά κρατώντας λογαριασμό των ανανεώσεων που έχετε ήδη λάβει. Θα χρησιμοποιήσουμε τον προεπιλεγμένο κατάλογο base, /var/db: *default base=/var/db Αν ο base κατάλογος σας δεν υπάρχει ήδη, τώρα είναι μια καλή στιγμή να τον δημιουργήσετε. O πελάτης cvsup δεν θα εκτελείται αν ο base κατάλογος δεν υπάρχει. Διάφορες ρυθμίσεις για το supfile: Υπάρχει ακόμα μια κοινή γραμμή ρυθμίσεων, η οποία τυπικά υπάρχει στο supfile: *default release=cvs delete use-rel-suffix compress Το release=cvs δείχνει ότι ο εξυπηρετητής θα πρέπει να λάβει τις πληροφορίες του μέσω του κύριου CVS repository του &os;. Αυτό ισχύει σχεδόν πάντα, αλλά υπάρχουν και άλλες πιθανότητες που ξεφεύγουν από το σκοπό αυτής της συζήτησης. Η λέξη delete δίνει δικαιώματα στο CVSup να διαγράφει αρχεία. Θα πρέπει πάντοτε να έχετε την επιλογή αυτή, ώστε το CVSup να μπορεί να κρατήσει το δέντρο του πηγαίου σας κώδικα πλήρως ανανεωμένο. Το CVSup είναι αρκετά προσεκτικό ώστε να σβήνει μόνο τα αρχεία που βρίσκονται υπό την ευθύνη του. Αν τυχόν βάλετε έξτρα αρχεία στον ίδιο κατάλογο, δεν θα τα αγγίξει. Η επιλογή use-rel-suffix είναι... αρχαιολογική. Αν πραγματικά θέλετε να μάθετε σχετικά με αυτήν, διαβάστε τη σελίδα manual &man.cvsup.1;. Αλλιώς, απλώς χρησιμοποιήστε την, και μην ανησυχείτε ιδιαίτερα για αυτή. Η επιλογή compress ενεργοποιεί τη χρήση συμπίεσης τύπου gzip στο κανάλι επικοινωνίας. Αν έχετε σύνδεση δικτύου τύπου T1 ή και πιο γρήγορη, μάλλον δεν θα πρέπει να χρησιμοποιήσετε συμπίεση. Σε διαφορετική περίπτωση, θα βοηθήσει εξαιρετικά. Όλες οι επιλογές μαζί: Εδώ είναι το πλήρες supfile για το παράδειγμα μας: *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all Το Αρχείο <filename>refuse</filename> Όπως αναφέραμε παραπάνω, το CVSup χρησιμοποιεί μέθοδο pull. Βασικά αυτό σημαίνει ότι συνδέεστε στον εξυπηρετητή CVSup, αυτός λέει Αυτά είναι τα αρχεία που μπορείτε να κατεβάσετε από μένα.., και το δικό σας πρόγραμμα απαντάει Εντάξει, θα πάρω αυτό, αυτό, αυτό, και αυτό. Στην προεπιλεγμένη ρύθμιση, ο πελάτης CVSup θα πάρει κάθε αρχείο που συνδέεται με την συλλογή και το tag που έχετε καθορίσει στο αρχείο ρυθμίσεων. Ωστόσο μπορεί να μην το επιθυμείτε αυτό πάντα, ειδικά αν συγχρονίζετε τα δέντρα doc, ports ή www — οι περισσότεροι άνθρωποι δεν μπορούν να διαβάσουν τέσσερις ή πέντε γλώσσες και έτσι δεν χρειάζεται να κατεβάσουν αρχεία που αναφέρονται ειδικά σε αυτές. Αν χρησιμοποιείτε το CVSup για την συλλογή των Ports, μπορείτε να ξεπεράσετε αυτή τη συμπεριφορά καθορίζοντας συγκεκριμένες συλλογές (π.χ. ports-astrology, ports-biology αντί για ports-all). Ωστόσο, επειδή τα δέντρα doc και www δεν διαθέτουν συλλογές χωρισμένες ανά γλώσσα, μπορείτε να χρησιμοποιήσετε ένα από τα βολικά χαρακτηριστικά του CVSup: το αρχείο refuse. Το αρχείο refuse ουσιαστικά λέει στο CVSup ότι δεν πρέπει να πάρει κάθε αρχείο από μια συλλογή. Με άλλα λόγια, λέει στον πελάτη να αρνηθεί συγκεκριμένα αρχεία που προσφέρει ο εξυπηρετητής. Το αρχείο refuse μπορεί να βρεθεί (ή να δημιουργηθεί αν δεν έχετε ήδη) στο base/sup/. Το base καθορίζεται στο supfile. Το δικό μας base είναι στο /var/db, το οποίο σημαίνει ότι το προεπιλεγμένο αρχείο refuse θα είναι το /var/db/sup/refuse. Το αρχείο refuse έχει ιδιαίτερα απλή μορφή. Απλώς περιέχει τα ονόματα των αρχείων και καταλόγων τα οποία δεν επιθυμείτε να κατεβάσετε. Για παράδειγμα, αν δεν μιλάτε γλώσσες εκτός από Αγγλικά και λίγα Γερμανικά, και δεν αισθάνεστε την ανάγκη να διαβάσετε την Γερμανική μετάφραση της τεκμηρίωσης, μπορείτε να βάλετε τα ακόλουθα στο δικό σας αρχείο refuse: doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/it_* doc/ja_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/ru_* doc/sr_* doc/tr_* doc/zh_* κ.ο.κ. για τις υπόλοιπες γλώσσες (μπορείτε να βρείτε την πλήρη λίστα στο &os; CVS repository). Με αυτή τη χρήσιμη δυνατότητα, οι χρήστες που έχουν αργή σύνδεση ή πληρώνουν το Internet με χρονοχρέωση ανά λεπτό, θα μπορέσουν να εξοικονομήσουν πολύτιμο χρόνο καθώς δεν θα χρειάζεται πλέον να κατεβάσουν αρχεία που δεν πρόκειται να χρησιμοποιήσουν ποτέ. Για περισσότερες πληροφορίες σχετικά με τα αρχεία refuse και άλλα χρήσιμα χαρακτηριστικά του CVSup, παρακαλούμε διαβάστε την αντίστοιχη σελίδα του manual. Εκτελώντας το <application>CVSup</application> Είστε τώρα έτοιμοι να δοκιμάσετε μια ανανέωση. Η γραμμή εντολής για το σκοπό αυτό είναι ιδιαίτερα απλή: &prompt.root; cvsup supfile όπου το supfile είναι φυσικά το όνομα του αρχείου supfile που μόλις δημιουργήσατε. Υποθέτοντας ότι χρησιμοποιείτε τα X11, η εντολή cvsup θα σας εμφανίσει ένα γραφικό παράθυρο με κάποια πλήκτρα συνηθισμένων λειτουργιών. Πιέστε το πλήκτρο go, και παρακολουθήστε την εκτέλεση. Καθώς στην περίπτωση μας ανανεώνεται το πραγματικό δέντρο /usr/src, θα χρειαστεί να εκτελέσετε το πρόγραμμα ως root ώστε η cvsup να έχει τα δικαιώματα που χρειάζεται για να ανανεώσει τα αρχεία σας. Καθώς μόλις έχετε δημιουργήσει το αρχείο ρυθμίσεων, και δεν έχετε ποτέ πριν χρησιμοποιήσει το πρόγραμμα, ίσως αισθάνεστε λίγο άβολα. Υπάρχει εύκολος τρόπος να κάνετε δοκιμαστική εκτέλεση χωρίς να πειράξετε τα πολύτιμα αρχεία σας. Απλώς δημιουργήστε ένα άδειο κατάλογο σε ένα βολικό μέρος, και δώστε το σαν έξτρα παράμετρο στην γραμμή εντολών: &prompt.root; mkdir /var/tmp/dest &prompt.root; cvsup supfile /var/tmp/dest Ο κατάλογος που καθορίσατε θα χρησιμοποιηθεί ως προορισμός για όλες τις ανανεώσεις αρχείων. Το CVSup θα εξετάσει τα κανονικά αρχεία σας στο /usr/src, αλλά δεν θα τροποποιήσει ούτε θα διαγράψει κανένα από αυτά. Κάθε ανανέωση αρχείου θα γίνει στον κατάλογο /var/tmp/dest/usr/src. Το CVSup όταν εκτελείται με αυτό τον τρόπο αφήνει επίσης ανέπαφα τα αρχεία κατάστασης του στον κατάλογο base. Οι νέες εκδόσεις των αρχείων αυτών θα γραφούν στον καθορισμένο κατάλογο. Αν έχετε απλώς πρόσβαση ανάγνωσης στο /usr/src, δεν χρειάζεστε να είστε καν root για να κάνετε αυτή τη δοκιμαστική εκτέλεση. Αν δεν εκτελείτε τα X11 ή απλώς δεν σας αρέσουν τα γραφικά περιβάλλοντα, μπορείτε να δώσετε κάποιες επιλογές στην γραμμή εντολών όταν εκτελείτε την cvsup: &prompt.root; cvsup -g -L 2 supfile Η επιλογή λέει στο CVSup να μη χρησιμοποιήσει το γραφικό του περιβάλλον. Αυτό γίνεται αυτόματα αν δεν εκτελούνται τα X11, αλλά διαφορετικά θα πρέπει να το καθορίσετε. Η επιλογή λέει στο CVSup να εμφανίσει όλες τις λεπτομέρειες για όλες τις ανανεώσεις αρχείων που εκτελεί. Υπάρχουν τρία επίπεδα περιγραφής, από το ως το . Η προεπιλογή είναι το 0, που σημαίνει απόλυτη σιωπή εκτός από μηνύματα λάθους. Υπάρχουν διαθέσιμες αρκετές ακόμα επιλογές. Για μια περιληπτική λίστα, γράψτε cvsup -H. Για περισσότερο λεπτομερείς περιγραφές, δείτε τη σελίδα του manual. Όταν μείνετε ικανοποιημένος από τον τρόπο που γίνονται οι ανανεώσεις, μπορείτε να κανονίσετε την σε τακτά διαστήματα εκτέλεση του CVSup με την χρήση του &man.cron.8;. Προφανώς δεν θα πρέπει να αφήσετε το CVSup να χρησιμοποιεί το γραφικό του περιβάλλον όταν το εκτελείτε μέσω του &man.cron.8;. Συλλογές Αρχείων του<application>CVSup</application> Οι συλλογές αρχείων που διατίθενται μέσω του CVSup είναι οργανωμένες ιεραρχικά. Υπάρχουν λίγες μεγάλες συλλογές, και αυτές χωρίζονται σε μικρότερες υπο-συλλογές. Η λήψη μιας μεγάλης συλλογής, ισοδυναμεί με την λήψη κάθε μιας από τις υπο-συλλογές τις. Οι ιεραρχικές σχέσεις μεταξύ των συλλογών, αντικατοπτρίζονται παρακάτω με την χρήση των εσοχών. Οι πιο συχνά χρησιμοποιούμενες συλλογές είναι η src-all, και η ports-all. Οι άλλες συλλογές χρησιμοποιούνται μόνο από μικρές ομάδες ανθρώπων για ειδικούς σκοπούς, και κάποια mirror sites μπορεί να μην τις έχουν καθόλου. cvs-all release=cvs Το κύριο CVS repository του &os;, που περιλαμβάνει και τον κώδικα κρυπτογραφίας. distrib release=cvs Αρχεία που αναφέρονται στην διανομή και το mirroring του &os;. doc-all release=cvs Πηγαίος κώδικας για το &os; Handbook και την υπόλοιπη τεκμηρίωση. Δεν περιλαμβάνει αρχεία για το web site του &os;. ports-all release=cvs Η συλλογή Ports του &os;. Αν δεν θέλετε να ανανεώσετε όλο το ports-all (το πλήρες δέντρο των ports), αλλά να χρησιμοποιήσετε μια από τις υποσυλλογές που φαίνονται παρακάτω, βεβαιωθείτε ότι πάντα ανανεώνετε την υποσυλλογή ports-base! Όταν κάτι αλλάζει στο σύστημα μεταγλώττισης των ports που αντιπροσωπεύεται από το ports-base, είναι πρακτικά βέβαιο ότι οι αλλαγές αυτές πολύ σύντομα θα χρησιμοποιηθούν από πραγματικά ports. Έτσι, αν ανανεώνετε μόνο τα πραγματικά ports και αυτά χρησιμοποιούν κάποιες από τις νέες δυνατότητες, υπάρχει μεγάλη πιθανότητα η μεταγλώττιση τους να αποτύχει με κάποιο μυστηριώδες μήνυμα λάθους. Το πρώτο πράγμα που πρέπει να κάνετε σε αυτή την περίπτωση είναι να βεβαιωθείτε ότι είναι ενημερωμένη η συλλογή σας ports-base. Αν σκοπεύετε να δημιουργήσετε το δικό σας τοπικό αντίγραφο του ports/INDEX, θα πρέπει να δεχτείτε τη συλλογή ports-all (ολόκληρο το δέντρο των ports). H δημιουργία του ports/INDEX από μη-πλήρες δέντρο δεν υποστηρίζεται. Δείτε το FAQ. ports-accessibility release=cvs Λογισμικό για την βοήθεια χρηστών με αναπηρίες. ports-arabic release=cvs Υποστήριξη Αραβικής Γλώσσας. ports-archivers release=cvs Εργαλεία αποθήκευσης και συμπίεσης. ports-astro release=cvs Ports σχετικά με αστρονομία. ports-audio release=cvs Υποστήριξη ήχου. ports-base release=cvs Βασικά αρχεία των ports για υποστήριξη του συστήματος μεταγλώττισης. Διάφορα αρχεία που βρίσκονται στους υποκαταλόγους Mk/ και Tools/ του /usr/ports. Παρακαλούμε δείτε την σημαντική προειδοποίηση παραπάνω: θα πρέπει πάντοτε να ενημερώνετε αυτή την υποσυλλογή, όταν ενημερώνετε οποιοδήποτε τμήμα της συλλογής Ports του &os;. ports-benchmarks release=cvs Προγράμματα μέτρησης απόδοσης (Benchmarks). ports-biology release=cvs Βιολογία. ports-cad release=cvs Εργαλεία σχεδίασης με τη βοήθεια υπολογιστή. ports-chinese release=cvs Υποστήριξη Κινεζικής Γλώσσας. ports-comms release=cvs Λογισμικό επικοινωνιών. ports-converters release=cvs Μετατροπείς χαρακτήρων. ports-databases release=cvs Βάσεις Δεδομένων. ports-deskutils release=cvs Αντικείμενα που βρίσκονταν συνήθως σε ένα γραφείο πριν την εφεύρεση των υπολογιστών. ports-devel release=cvs Βοηθητικά προγράμματα για την ανάπτυξη λογισμικού. ports-dns release=cvs Λογισμικό σχετικό με DNS. ports-editors release=cvs Συντάκτες κειμένου. ports-emulators release=cvs Εξομοιωτές άλλων λειτουργικών συστημάτων. ports-finance release=cvs Χρηματοοικονομικά προγράμματα. ports-ftp release=cvs Προγράμματα FTP (πελάτες και εξυπηρετητές). ports-games release=cvs Παιχνίδια. ports-german release=cvs Υποστήριξη Γερμανικής γλώσσας. ports-graphics release=cvs Εργαλεία γραφικών. ports-hebrew release=cvs Υποστήριξη εβραϊκής γλώσσας. ports-hungarian release=cvs Υποστήριξη Ουγγαρέζικης γλώσσας. ports-irc release=cvs Προγράμματα για το IRC. ports-japanese release=cvs Υποστήριξη Ιαπωνικής γλώσσας. ports-java release=cvs Εργαλεία για την &java;. ports-korean release=cvs Υποστήριξη Κορεατικής γλώσσας. ports-lang release=cvs Γλώσσες προγραμματισμού. ports-mail release=cvs Προγράμματα ηλεκτρονικού ταχυδρομείου. ports-math release=cvs Λογισμικό μαθηματικών υπολογισμών. ports-mbone release=cvs Εφαρμογές MBone. ports-misc release=cvs Διάφορα βοηθητικά προγράμματα. ports-multimedia release=cvs Λογισμικό πολυμέσων. ports-net release=cvs Λογισμικό δικτύων. ports-net-im release=cvs Λογισμικό άμεσων μηνυμάτων (instant messaging). ports-net-mgmt release=cvs Λογισμικό διαχείρισης δικτύων. ports-net-p2p release=cvs Δικτύωση peer-to-peer. ports-news release=cvs Λογισμικό για το USENET. ports-palm release=cvs Λογισμικό για την υποστήριξη συσκευών τύπου Palm. ports-polish release=cvs Υποστήριξη Πολωνικής γλώσσας. ports-ports-mgmt release=cvs Εργαλεία για τη διαχείριση πακέτων και ports. ports-portuguese release=cvs Υποστήριξη Πορτογαλικής γλώσσας. ports-print release=cvs Λογισμικό εκτυπώσεων. ports-russian release=cvs Υποστήριξη Ρωσικής γλώσσας. ports-science release=cvs Επιστημονικά προγράμματα. ports-security release=cvs Εργαλεία ασφαλείας. ports-shells release=cvs Shells για την γραμμή εντολών. ports-sysutils release=cvs Βοηθητικά προγράμματα συστήματος. ports-textproc release=cvs Εργαλεία επεξεργασίας κειμένου (δεν περιλαμβάνει επιτραπέζια τυπογραφία). ports-ukrainian release=cvs Υποστήριξη Ουκρανικής γλώσσας. ports-vietnamese release=cvs Υποστήριξη Βιετναμέζικης γλώσσας. ports-www release=cvs Λογισμικό που σχετίζεται με τον παγκόσμιο ιστό (World Wide Web). ports-x11 release=cvs Ports για υποστήριξη του συστήματος X Windows. ports-x11-clocks release=cvs Ρολόγια για το X11. ports-x11-drivers release=cvs Προγράμματα οδήγησης για τα X11. ports-x11-fm release=cvs Διαχειριστές αρχείων για τα X11. ports-x11-fonts release=cvs Γραμματοσειρές και εργαλεία γραμματοσειρών για X11. ports-x11-toolkits release=cvs Εργαλειοθήκες X11. ports-x11-servers release=cvs Εξυπηρετητές X11. ports-x11-themes release=cvs Θέματα για X11. ports-x11-wm release=cvs Διαχειριστές παραθύρων (window managers) για X11. projects-all release=cvs Πηγαίος κώδικας για το projects repository του &os;. src-all release=cvs Ο βασικός πηγαίος κώδικα του &os;, συμπεριλαμβανομένου του κώδικα κρυπτογραφίας. src-base release=cvs Διάφορα αρχεία στην κορυφή του /usr/src. src-bin release=cvs Εργαλεία που πιθανόν να απαιτούνται σε κατάσταση λειτουργίας ενός χρήστη (single-user) (/usr/src/bin). src-cddl release=cvs Εργαλεία και βιβλιοθήκες που καλύπτονται από την άδεια χρήσης CDDL (/usr/src/cddl). src-contrib release=cvs Εργαλεία και βιβλιοθήκες που δεν ανήκουν στο &os; Project, και τα οποία χρησιμοποιούνται ουσιαστικά αναλλοίωτα (/usr/src/contrib). src-crypto release=cvs Εργαλεία και βιβλιοθήκες κρυπτογράφησης που δεν ανήκουν στο &os; project και τα οποία χρησιμοποιούνται ουσιαστικά αναλλοίωτα (/usr/src/crypto). src-eBones release=cvs Kerberos και DES (/usr/src/eBones). Δεν χρησιμοποιούνται στις τρέχουσες εκδόσεις του &os;. src-etc release=cvs Αρχεία ρυθμίσεων του συστήματος (/usr/src/etc). src-games release=cvs Παιχνίδια (/usr/src/games). src-gnu release=cvs Εργαλεία που καλύπτονται από την άδεια χρήσης GNU Public License (/usr/src/gnu). src-include release=cvs Αρχεία επικεφαλίδων (/usr/src/include). src-kerberos5 release=cvs Πακέτο ασφαλείας Kerberos5 (/usr/src/kerberos5). src-kerberosIV release=cvs Πακέτο ασφαλείας KerberosIV (/usr/src/kerberosIV). src-lib release=cvs Βιβλιοθήκες (/usr/src/lib). src-libexec release=cvs Προγράμματα συστήματος τα οποία φυσιολογικά εκτελούνται από άλλα προγράμματα (/usr/src/libexec). src-release release=cvs Αρχεία που απαιτούνται για την παραγωγή μιας έκδοσης του &os; (/usr/src/release). src-rescue release=cvs Προγράμματα με στατική μεταγλώττιση για χρήση σε έκτακτες περιπτώσεις επαναφοράς του συστήματος. Δείτε το &man.rescue.8; (/usr/src/rescue). src-sbin release=cvs Εργαλεία συστήματος για λειτουργία σε κατάσταση ενός χρήστη (single user mode) (/usr/src/sbin). src-secure release=cvs Βιβλιοθήκες και εντολές κρυπτογράφησης (/usr/src/secure). src-share release=cvs Αρχεία τα οποία μπορεί να είναι κοινά ανάμεσα σε πολλαπλά συστήματα (/usr/src/share). src-sys release=cvs Ο πυρήνας (/usr/src/sys). src-sys-crypto release=cvs Κώδικας κρυπτογραφίας του πυρήνα (/usr/src/sys/crypto). src-tools release=cvs Διάφορα εργαλεία για τη συντήρηση του &os; (/usr/src/tools). src-usrbin release=cvs Εργαλεία χρήστη (/usr/src/usr.bin). src-usrsbin release=cvs Εργαλεία συστήματος (/usr/src/usr.sbin). www release=cvs Ο πηγαίος κώδικας για την τοποθεσία WWW του &os;. distrib release=self Τα αρχεία ρυθμίσεων του ίδιου του εξυπηρετητή CVSup. Χρησιμοποιείται από CVSup mirror sites. gnats release=current H βάση δεδομένων του συστήματος παρακολούθησης προβλημάτων GNATS. mail-archive release=current Τα αρχεία της λίστας ταχυδρομείου του &os;. www release=current Προ-επεξεργασμένα αρχεία της δικτυακής τοποθεσίας (WWW) του &os; (όχι ο πηγαίος κώδικας). Χρησιμοποιείται από WWW mirror sites. Για Περισσότερες Πληροφορίες Για το FAQ του CVSup και άλλες πληροφορίες σχετικά με αυτό, δείτε τη Σελίδα του CVSup. Συζητήσεις σχετικά με τη χρήση του CVSup στο &os; λαμβάνουν χώρα στην &a.hackers;. Στη λίστα αυτή, καθώς και στην &a.announce; ανακοινώνονται και οι νέες εκδόσεις του προγράμματος. Για ερωτήσεις ή αναφορές σφαλμάτων σχετικά με το CVSup ρίξτε μια ματιά στο CVSup FAQ. Τοποθεσίες CVSup Μπορείτε να βρείτε εξυπηρετητές CVSup για το &os; στις ακόλουθες τοποθεσίες: &chap.mirrors.cvsup.inc; - - - Χρησιμοποιώντας το Portsnap - - - Εισαγωγή - - Το Portsnap είναι ένα σύστημα για την - ασφαλή διανομή του δέντρου των ports του &os;. Κάθε μια ώρα περίπου, - δημιουργείται ένα φωτογραφικό αντίγραφο, snapshot - ολόκληρου του δέντρου των ports, το οποίο και υπογράφεται - κρυπτογραφικά. Τα αρχεία που προκύπτουν, διανέμονται μέσω HTTP. - - - Όπως και το CVSup το, - Portsnap χρησιμοποιεί το μοντέλο ανανέωσης - pull: Τα δέντρα των ports, αφού πακεταριστούν και - υπογραφούν, διατίθενται σε ένα web server ο οποίος παθητικά περιμένει - τα μηχανήματα-πελάτες που θα ζητήσουν αρχεία. Οι χρήστες πρέπει να - εκτελέσουν το &man.portsnap.8; για να κατεβάσουν τις ανανεώσεις, είτε - χειροκίνητα, είτε μέσω του &man.cron.8; ώστε η διαδικασία να γίνεται - αυτόματα σε τακτά διαστήματα. - - Για τεχνικούς λόγους, το Portsnap - δεν ανανεώνει απευθείας το εν χρήσει δέντρο των ports - στο /usr/ports/. Αντί για αυτό, εργάζεται σε ένα - συμπιεσμένο αντίγραφο του δέντρου, το οποίο αποθηκεύεται από - προεπιλογή στο /var/db/portsnap/. Το συμπιεσμένο - αυτό αντίγραφο χρησιμοποιείται για την μετέπειτα ανανέωση του - κανονικού δέντρου των ports. - - - Αν εγκαταστήσετε τον Portsnap από - την συλλογή των Ports του &os;, η προεπιλεγμένη θέση για το - συμπιεσμένο snapshot θα είναι - /usr/local/portsnap/ αντί για - /var/db/portsnap/. - - - - - Εγκατάσταση - - Από το &os; 6.0 και μετά, το - Portsnap περιέχεται στο βασικό σύστημα του - &os;. Σε παλιότερες εκδόσεις του &os; μπορεί να εγκατασταθεί μέσω του - port ports-mgmt/portsnap. - - - - Ρύθμιση του Portsnap - - Η λειτουργία του Portsnap ελέγχεται από - το αρχείο ρυθμίσεων /etc/portsnap.conf. Για τους - περισσότερους χρήστες, οι προεπιλεγμένες ρυθμίσεις είναι σωστές. Για - περισσότερες πληροφορίες, δείτε τη σελίδα manual - &man.portsnap.conf.5;. - - - Αν εγκαταστήσετε το Portsnap από την - συλλογή των Ports, θα χρησιμοποιεί το αρχείο ρυθμίσεων - /usr/local/etc/portsnap.conf αντί για το - /etc/portsnap.conf. Αυτό το αρχείο ρυθμίσεων - δεν δημιουργείται κατά την εγκατάσταση του Port, δημιουργείται όμως - ένα υπόδειγμα του αρχείου ρυθμίσεων. Για να το βάλετε στη σωστή θέση - εκτελέστε την ακόλουθη εντολή: - - &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf - - - - - Εκτελώντας το <application>Portsnap</application> για Πρώτη - Φορά - - Την πρώτη φορά που θα εκτελέσετε το &man.portsnap.8;, θα χρειαστεί - να κατεβάσει ένα συμπιεσμένο snapshot ολόκληρου του δέντρου των ports - στο /var/db/portsnap/ (ή στο - /usr/local/portsnap/ αν το - Portsnap εγκαταστάθηκε από την συλλογή των - Ports). Στις αρχές του 2006, το snapshot είχε μέγεθος περίπου - 41 MB. - - &prompt.root; portsnap fetch - - Μετά το κατέβασμα του συμπιεσμένου snapshot, είναι πλέον δυνατή - η εξαγωγή του πραγματικού (live) αντιγράφου του δέντρου - των ports στον κατάλογο /usr/ports/. Αυτό είναι - απαραίτητο, ακόμα και αν έχετε ήδη δημιουργήσει δέντρο ports στον - κατάλογο αυτό (π.χ. με χρήση της CVSup), - καθώς με αυτό τον τρόπο, το portsnap δημιουργεί μια - βασική αναφορά από την οποία κάθε φορά ανακαλύπτει ποια τμήματα του - δέντρου των ports πρέπει να ανανεωθούν αργότερα. - - &prompt.root; portsnap extract - - - Κατά την προεπιλεγμένη εγκατάσταση, δεν δημιουργείται ο - κατάλογος /usr/ports. Αν - χρησιμοποιείτε το &os; 6.0-RELEASE, θα πρέπει να τον - δημιουργήσετε πριν εκτελέσετε την portsnap. - Σε πιο πρόσφατες εκδόσεις του &os; ή του - Portsnap, η εργασία αυτή θα γίνει - αυτόματα την πρώτη φορά που θα χρησιμοποιήσετε την εντολή - portsnap. - - - - - Ανανέωση του Δέντρου των Ports - - Μετά το αρχικό κατέβασμα και εξαγωγή ενός δέντρου ports στον - κατάλογο /usr/ports/, η ανανέωση των ports - αποτελείται βασικά από δύο βήματα: - Να γίνουν fetch οι ανανεώσεις στο συμπιεσμένο - snapshot, και να χρησιμοποιηθούν για την - ανανέωση (update) στο πραγματικό δέντρο των - ports. Τα δύο αυτά βήματα, μπορούν να δοθούν στην - portsnap ως μια μόνο εντολή: - - &prompt.root; portsnap fetch update - - - Μερικές παλιότερες εκδόσεις της portsnap - δεν υποστηρίζουν αυτή τη σύνταξη. Αν το παραπάνω αποτύχει, - δοκιμάστε αντί για αυτό το παρακάτω: - - &prompt.root; portsnap fetch -&prompt.root; portsnap update - - - - - Εκτελώντας το Portsnap από το cron - - Για να αποφευχθούν προβλήματα συνωστισμού κατά την - πρόσβαση στους εξυπηρετητές Portsnap, η - portsnap fetch δεν εκτελείται μέσω εργασίας του - &man.cron.8;. Αντί για αυτό, υπάρχει η ειδική εντολή - portsnap cron, η οποία περιμένει ένα τυχαίο - διάστημα ως και 3600 δευτερόλεπτα πριν κατεβάσει τις ανανεώσεις. - - - Επιπρόσθετα, σας συνιστούμε να μην εκτελείτε την εντολή - portsnap update μέσω εργασίας του - cron, καθώς μπορεί να προκαλέσετε σημαντικά - προβλήματα αν τύχει να εκτελεστεί την ίδια ώρα που γίνεται - μεταγλώττιση ή εγκατάσταση κάποιου port. Είναι ωστόσο ασφαλές να - ανανεώσετε τα αρχεία INDEX των ports και αυτό - μπορεί να γίνει περνώντας την επιλογή στο - portsnap. (Προφανώς αν εκτελέσετε το - portsnap -I update μέσω του - cron, θα είναι απαραίτητο να εκτελέσετε αργότερα το - portsnap update χωρίς την επιλογή - για να ανανεωθεί το υπόλοιπο τμήμα του δέντρου.) - - - Προσθέτοντας την ακόλουθη γραμμή στο - /etc/crontab, το portsnap θα - ανανεώσει το συμπιεσμένο snapshot και τα αρχεία - INDEX στον κατάλογο - /usr/ports/, και θα σας στείλει email αν κάποια - εγκαταστημένα ports χρειάζονται ανανέωση: - - 0 3 * * * root portsnap -I cron update && pkg_version -vIL= - - - Αν το ρολόι του συστήματος δεν είναι ρυθμισμένο στην τοπική ζώνη - ώρας, σας παρακαλούμε να αντικαταστήσετε το 3 με - μια τυχαία τιμή μεταξύ 0 και 23, ώστε να γίνεται πιο ομοιόμορφη - κατανομή του φορτίου στους εξυπηρετητές του - Portsnap. - - - Κάποιες παλιότερες εκδόσεις του portsnap - δεν υποστηρίζουν πολλαπλές εντολές - (π.χ., cron update) στην ίδια γραμμή εντολής - του portsnap. Αν η παραπάνω γραμμή αποτύχει, - δοκιμάστε να αντικαταστήσετε την - portsnap -I cron update με - portsnap cron && portsnap -I update. - - - - Ετικέτες (Tags) για το CVS Όταν κατεβάζετε ή ανανεώνετε τον πηγαίο κώδικα μέσω της cvs η της CVSup, θα πρέπει να καθορίσετε μια ετικέτα έκδοσης (revision tag). Ένα revision tag αναφέρεται είτε σε μια συγκεκριμένη πορεία ανάπτυξης του &os;, είτε σε ένα συγκεκριμένο χρονικό σημείο. Ο πρώτος τύπος ονομάζεται ετικέτα κλάδου (branch tag), και ο δεύτερος ονομάζεται ετικέτα έκδοσης (release tag). Ετικέτες Κλάδων (Branch Tags) Όλες αυτές, με την εξαίρεση του HEAD (το οποίο είναι πάντα έγκυρη ετικέτα), ισχύουν μόνο για το δέντρο src/. Τα δέντρα ports/, doc/, και www/ δεν έχουν κλάδους. HEAD Πρόκειται για το συμβολικό όνομα της κύριας γραμμής ανάπτυξης, ή &os;-CURRENT. Είναι επίσης το προεπιλεγμένο tag αν δεν καθοριστεί κάποιο συγκεκριμένο revision. Στο CVSup, το tag αυτό αντιπροσωπεύεται από μια . (δεν πρόκειται για σημείο στίξης της πρότασης, αλλά για τον πραγματικό χαρακτήρα .). Στο CVS, αυτή είναι και η προεπιλογή αν δεν καθοριστεί revision tag. Συνήθως δεν είναι καλή ιδέα να κάνετε checkout και ανανέωση στον πηγαίο κώδικα του CURRENT σε ένα μηχάνημα STABLE, εκτός αν αυτή είναι πραγματικά η πρόθεση σας. RELENG_7 Η γραμμή ανάπτυξης για το &os;-7.X, γνωστή επίσης και ως &os; 7-STABLE RELENG_7_0 Η γραμμή έκδοσης του &os;-7.0, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_6 Η γραμμή ανάπτυξης για το &os;-6.X, γνωστή επίσης και ως &os; 6-STABLE RELENG_6_3 Η γραμμή έκδοσης του &os;-6.3, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_6_2 Η γραμμή έκδοσης του &os;-6.2, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_6_1 Η γραμμή έκδοσης του &os;-6.1, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_6_0 Η γραμμή έκδοσης του &os;-6.0, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5 Η γραμμή ανάπτυξης για το &os;-5.X, γνωστή επίσης ως &os; 5-STABLE. RELENG_5_5 Η γραμμή έκδοσης του &os;-5.5, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5_4 Η γραμμή έκδοσης του &os;-5.4, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5_3 Η γραμμή έκδοσης του &os;-5.3, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5_2 Η γραμμή έκδοσης &os;-5.2 και &os;-5.2.1, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5_1 Η γραμμή έκδοσης για το &os;-5.1, χρησιμοποιείται μόνο για για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_5_0 Η γραμμή έκδοσης για το &os;-5.0, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4 Η γραμμή ανάπτυξης για το &os;-4.X, γνωστή επίσης και ως &os; 4-STABLE. RELENG_4_11 Η γραμμή έκδοσης για το &os;-4.11, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_10 Η γραμμή έκδοσης για το &os;-4.10, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_9 Η γραμμή έκδοσης για το &os;-4.9, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_8 Η γραμμή έκδοσης για το &os;-4.8, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_7 Η γραμμή έκδοσης για το &os;-4.7, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_6 Η γραμμή έκδοσης για τα &os;-4.6 και &os;-4.6.2, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_5 Η γραμμή έκδοσης για το &os;-4.5, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_4 Η γραμμή έκδοσης για το &os;-4.4, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_4_3 Η γραμμή έκδοσης για το &os;-4.3, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_3 Η γραμμή ανάπτυξης για το &os;-3.X, γνωστή επίσης και ως 3.X-STABLE. RELENG_2_2 Η γραμμή ανάπτυξης για το &os;-2.2.X, γνωστή επίσης και ως 2.2-STABLE. Η γραμμή αυτή θεωρείται ουσιαστικά παρωχημένη. Ετικέτες Εκδόσεων (Release Tags) Οι ετικέτες αυτές αναφέρονται σε μια συγκεκριμένη χρονική στιγμή κατά την οποία έγινε μια κανονική έκδοση (release) του &os;. Η διαδικασία της έκδοσης τεκμηριώνεται με περισσότερες λεπτομέρειες στα έγγραφα Πληροφορίες Διαδικασίας Έκδοσης και Διαδικασία Έκδοσης. Το δέντρο src χρησιμοποιεί ονόματα ετικετών που ξεκινούν με τη λέξη RELENG_. Τα δέντρα ports και doc χρησιμοποιούν ετικέτες που ξεκινούν με τη λέξη RELEASE. Τέλος, στο δέντρο www δεν δίνεται κάποια ειδική ετικέτα που να έχει σχέση με τις εκδόσεις. RELENG_7_0_0_RELEASE &os; 7.0 RELENG_6_3_0_RELEASE &os; 6.3 RELENG_6_2_0_RELEASE &os; 6.2 RELENG_6_1_0_RELEASE &os; 6.1 RELENG_6_0_0_RELEASE &os; 6.0 RELENG_5_5_0_RELEASE &os; 5.5 RELENG_5_4_0_RELEASE &os; 5.4 RELENG_4_11_0_RELEASE &os; 4.11 RELENG_5_3_0_RELEASE &os; 5.3 RELENG_4_10_0_RELEASE &os; 4.10 RELENG_5_2_1_RELEASE &os; 5.2.1 RELENG_5_2_0_RELEASE &os; 5.2 RELENG_4_9_0_RELEASE &os; 4.9 RELENG_5_1_0_RELEASE &os; 5.1 RELENG_4_8_0_RELEASE &os; 4.8 RELENG_5_0_0_RELEASE &os; 5.0 RELENG_4_7_0_RELEASE &os; 4.7 RELENG_4_6_2_RELEASE &os; 4.6.2 RELENG_4_6_1_RELEASE &os; 4.6.1 RELENG_4_6_0_RELEASE &os; 4.6 RELENG_4_5_0_RELEASE &os; 4.5 RELENG_4_4_0_RELEASE &os; 4.4 RELENG_4_3_0_RELEASE &os; 4.3 RELENG_4_2_0_RELEASE &os; 4.2 RELENG_4_1_1_RELEASE &os; 4.1.1 RELENG_4_1_0_RELEASE &os; 4.1 RELENG_4_0_0_RELEASE &os; 4.0 RELENG_3_5_0_RELEASE &os;-3.5 RELENG_3_4_0_RELEASE &os;-3.4 RELENG_3_3_0_RELEASE &os;-3.3 RELENG_3_2_0_RELEASE &os;-3.2 RELENG_3_1_0_RELEASE &os;-3.1 RELENG_3_0_0_RELEASE &os;-3.0 RELENG_2_2_8_RELEASE &os;-2.2.8 RELENG_2_2_7_RELEASE &os;-2.2.7 RELENG_2_2_6_RELEASE &os;-2.2.6 RELENG_2_2_5_RELEASE &os;-2.2.5 RELENG_2_2_2_RELEASE &os;-2.2.2 RELENG_2_2_1_RELEASE &os;-2.2.1 RELENG_2_2_0_RELEASE &os;-2.2.0 Τοποθεσίες AFS Εξυπηρετητές AFS για το &os; θα βρείτε στις ακόλουθες τοποθεσίες: Σουηδία Η διαδρομή για τα αρχεία είναι: /afs/stacken.kth.se/ftp/pub/FreeBSD/ stacken.kth.se # Stacken Computer Club, KTH, Sweden 130.237.234.43 #hot.stacken.kth.se 130.237.237.230 #fishburger.stacken.kth.se 130.237.234.3 #milko.stacken.kth.se Υπεύθυνος Συντήρησης: ftp@stacken.kth.se Τοποθεσίες rsync Το &os; είναι διαθέσιμο μέσω του πρωτοκόλλου rsync στις ακόλουθες τοποθεσίες. Το βοηθητικό πρόγραμμα rsync λειτουργεί με περίπου τον ίδιο τρόπο με την εντολή &man.rcp.1;, αλλά έχει περισσότερες επιλογές και χρησιμοποιεί το πρωτόκολλο απομακρυσμένης ανανέωσης το οποίο μεταφέρει μόνο τις διαφορές μεταξύ δύο σετ αρχείων, επιταχύνοντας έτσι ιδιαίτερα το συγχρονισμό μέσω του δικτύου. Αυτό είναι περισσότερο χρήσιμο αν διατηρείτε mirror του διακομιστή FTP ή του CVS Repository του &os;. Η συλλογή εφαρμογών rsync διατίθεται για πολλά λειτουργικά συστήματα, στο &os; δείτε το port net/rsync ή χρησιμοποιήστε το αντίστοιχο πακέτο. Δημοκρατία της Τσεχίας rsync://ftp.cz.FreeBSD.org/ Διαθέσιμες Συλλογές: ftp: Μερικό mirror του διακομιστή FTP του &os;. &os;: Πλήρες mirror του διακομιστή FTP του &os;. Γερμανία rsync://grappa.unix-ag.uni-kl.de/ Διαθέσιμες Συλλογές: freebsd-cvs: Το πλήρες CVS Repository του &os;. Στο μηχάνημα αυτό διατηρούνται, μεταξύ άλλων, mirrors των CVS Repositories των NetBSD και OpenBSD projects. Ολλανδία rsync://ftp.nl.FreeBSD.org/ Διαθέσιμες Συλλογές: vol/4/freebsd-core: Πλήρες mirror του διακομιστή FTP του &os;. Ρωσία rsync://cvsup4.ru.FreeBSD.org/ Διαθέσιμες Συλλογές: &os;-gnats: Η βάση δεδομένων του συστήματος παρακολούθησης σφαλμάτων GNATS. Ταΐβάν rsync://ftp.tw.FreeBSD.org/ rsync://ftp2.tw.FreeBSD.org/ rsync://ftp6.tw.FreeBSD.org/ Διαθέσιμες Συλλογές: &os;: Πλήρες mirror του διακομιστή FTP του &os;. Ηνωμένο Βασίλειο rsync://rsync.mirror.ac.uk/ Διαθέσιμες Συλλογές: ftp.FreeBSD.org: Πλήρες mirror του διακομιστή FTP του &os;. Ηνωμένες Πολιτείες Αμερικής rsync://ftp-master.FreeBSD.org/ Ο διακομιστής αυτός μπορεί να χρησιμοποιηθεί μόνο από κύρια mirror sites του &os;. Διαθέσιμες Συλλογές: &os;: To κύριο (master) σύστημα αρχείων του διακομιστή FTP του &os;. acl: Η κύρια λίστα ACL του &os;. rsync://ftp13.FreeBSD.org/ Διαθέσιμες Συλλογές: &os;: Πλήρες mirror του διακομιστή FTP του &os;.
diff --git a/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml index adf0d78610..ba567978a1 100644 --- a/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml @@ -1,1645 +1,1645 @@ Εγκατάσταση Εφαρμογών: Πακέτα και Ports Σύνοψη ports Packages Το &os; συνοδεύεται από μία πλούσια συλλογή από προγράμματα σαν μέρος του βασικού συστήματος. Όμως, λίγα μπορεί να κάνει κάποιος πριν βρεθεί στην ανάγκη να εγκαταστήσει μια πρόσθετη εφαρμογή για να υλοποιήσει μια πραγματική εργασία. Το &os; παρέχει δυο συμπληρωματικές τεχνολογίες για να εγκαταστήσετε πρόσθετες εφαρμογές στο σύστημα σας: τη Συλλογή των Ports (Ports Collection, για εγκατάσταση από τον πηγαίο κώδικα), και τα πακέτα (packages, για εγκατάσταση από προ-μεταγλωττισμένα εκτελέσιμα πακέτα). Κάθε μία από τις δυο μεθόδους μπορεί να χρησιμοποιηθεί για να εγκαταστήσετε τις νεότερες εκδόσεις από τις αγαπημένες σας εφαρμογές, από τοπικά αποθηκευτικά μέσα ή απευθείας από το δίκτυο. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Πως να εγκαθιστάτε προ-μεταγλωττισμένα πακέτα λογισμικού. Πως να μεταγλωττίζετε πρόσθετο λογισμικό από τον πηγαίο κώδικα χρησιμοποιώντας την Συλλογή των Ports. Πως να κάνετε απεγκατάσταση εγκαταστημένων πακέτων ή ports. Πως να αλλάζετε τις προκαθορισμένες ρυθμίσεις που χρησιμοποιεί η Συλλογή των Ports. Πως να βρίσκετε τα κατάλληλα πακέτα λογισμικού. Πως να αναβαθμίζετε τις εφαρμογές σας. Επισκόπησή της εγκατάστασης λογισμικού Αν έχετε χρησιμοποιήσει ένα &unix; σύστημα στο παρελθόν, θα γνωρίζετε ότι η συνηθισμένη διαδικασία για την εγκατάσταση πρόσθετου λογισμικού είναι περίπου η παρακάτω: Κατέβασμα του λογισμικού, που μπορεί να διανέμεται σε μορφή πηγαίου κώδικα, ή σαν εκτελέσιμο. Αποσυμπίεση του λογισμικού από την μορφή της διανομής του (συνήθως ένα tarball συμπιεσμένο με το &man.compress.1;, &man.gzip.1;, ή &man.bzip2.1;). Εντοπισμός της τεκμηρίωσης (πιθανώς ένα αρχείο INSTALL ή README ή μερικά αρχεία μέσα σε ένα υποκατάλογο doc/) και ανάγνωσή τους για το πως θα εγκατασταθεί το λογισμικό. Αν το λογισμικό διανέμεται με τη μορφή πηγαίου κώδικα, μεταγλώττιση του. Αυτό μπορεί να περιλαμβάνει την επεξεργασία ενός Makefile, ή την εκτέλεση ενός configure script, και άλλες εργασίες. Δοκιμή και εγκατάσταση του λογισμικού. Και αυτά μόνο αν όλα πάνε καλά. Αν εγκαθιστάτε ένα λογισμικό που δεν έχει μεταφερθεί στο &os; ίσως να πρέπει να τροποποιήσετε τον πηγαίο κώδικα για να δουλέψει σωστά. Αν το θέλετε, μπορείτε να συνεχίσετε να εγκαθιστάτε λογισμικό με τον παραδοσιακό τρόπο στο &os;. Όμως, το &os; παρέχει δυο τεχνολογίες που μπορούν να σας γλιτώσουν από πολύ κόπο: τα πακέτα και τα ports. Την στιγμή που γράφτηκε αυτό το κείμενο, διατίθονταν με αυτόν τον τρόπο πάνω από &os.numports; πρόσθετες εφαρμογές. Για οποιαδήποτε εφαρμογή, το αντίστοιχο &os; πακέτο της είναι ένα μοναδικό αρχείο που πρέπει εσείς να κατεβάσετε. Το πακέτο περιέχει προ-μεταγλωττισμένα αντίγραφα από όλες τις εντολές της εφαρμογής, όπως επίσης και αρχεία παραμετροποίησης ή τεκμηρίωσης. Ένα τέτοιο πακέτο σε μορφή αρχείου, μπορείτε να το χειριστείτε με τις εντολές διαχείρισής πακέτων του &os;, όπως οι &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, και πάει λέγοντας. Η εγκατάσταση μιας νέας εφαρμογής μπορεί να γίνει με μία μόνο εντολή. Ένα &os; port για μία εφαρμογή είναι μια συλλογή από αρχεία σχεδιασμένα για να αυτοματοποιήσουν την διαδικασία μεταγλώττισης της εφαρμογής από τον πηγαίο κώδικα. Θυμηθείτε ότι υπάρχουν μερικά βήματα που θα πρέπει λογικά να κάνετε αν μεταγλωττίσετε ένα πρόγραμμα μόνος σας (κατέβασμα, αποσυμπίεση, προσαρμογή (patching), μεταγλώττιση, εγκατάσταση). Τα αρχεία που αποτελούν ένα port περιέχουν όλες τις απαραίτητες πληροφορίες για να επιτρέψουν στο σύστημα να κάνει όλα αυτά για εσάς. Εσείς εκτελείτε μερικές απλές εντολές, και ο πηγαίος κώδικας για την εφαρμογή αυτόματα κατεβαίνει, αποσυμπιέζεται, προσαρμόζεται, μεταγλωττίζεται, και εγκαθίσταται για εσάς. Στην πραγματικότητα, το σύστημα ports μπορεί επίσης να χρησιμοποιηθεί για να δημιουργηθούν πακέτα που μπορείτε αργότερα να διαχειριστείτε με την pkg_add και τις άλλες εντολές διαχείρισής πακέτων που θα αναφερθούν σε λίγο. Τόσο τα πακέτα, όσο και τα ports κατανοούν τις εξαρτήσεις (dependencies). Ας υποθέσουμε ότι θέλετε να εγκαταστήσετε μία εφαρμογή που εξαρτάται από μία συγκεκριμένη βιβλιοθήκη για να λειτουργήσει. Τόσο η εφαρμογή, όσο και η βιβλιοθήκη διατίθενται ως πακέτα και ports του &os;. Αν χρησιμοποιήσετε την εντολή pkg_add ή το σύστημα των ports για να εγκαταστήσετε την εφαρμογή, αμφότερα θα παρατηρήσουν ότι η βιβλιοθήκη δεν είναι εγκατεστημένη, και αυτόματα θα την εγκαταστήσουν πριν από το πρόγραμμα. Έχοντας αναφέρει ότι οι δύο τεχνολογίες είναι αρκετά όμοιες, ίσως να αναρωτιέστε γιατί το &os; προσφέρει και τις δύο. Τα πακέτα και τα ports αμφότερα έχουν τα δικά τους πλεονεκτήματα, και το τι θα χρησιμοποιήσετε εξαρτάται από την δική σας προτίμηση. Πλεονεκτήματα των Πακέτων Ένα συμπιεσμένο tarball πακέτου είναι συνήθως μικρότερο από το συμπιεσμένο tarball που περιέχει τον πηγαίο κώδικα για την εφαρμογή. Τα πακέτα δεν χρειάζονται μεταγλώττιση. Για μεγάλες εφαρμογές, όπως είναι ο Mozilla, το KDE, ή το GNOME αυτό μπορεί να είναι σημαντικό, ιδιαίτερα αν βρίσκεστε σε ένα αργό μηχάνημα. Τα πακέτα δεν απαιτούν να κατανοήσετε την διαδικασία που σχετίζεται με την μεταγλώττιση λογισμικού στο &os;. Πλεονεκτήματα των Ports Τα πακέτα συνήθως είναι μεταγλωττισμένα με συντηρητικές επιλογές, επειδή πρέπει να λειτουργούν στον μέγιστο αριθμό συστημάτων. Με εγκατάσταση από το port, μπορείτε να ρυθμίσετε τις επιλογές μεταγλώττισης (για παράδειγμα) να δημιουργήσουν εκτελέσιμο κώδικα που να εκμεταλλεύεται τις ικανότητες ενός Pentium 4 ή Athlon επεξεργαστή. Μερικές εφαρμογές έχουν επιλογές μεταγλώττισης που σχετίζονται με το τι μπορούν να κάνουν και τι όχι. Για παράδειγμα, ο Apache μπορεί να μεταγλωττιστεί με ένα ευρύ φάσμα από επιλογές. Μεταγλωττίζοντας τον από το port, δεν είναι ανάγκη να δεχτείτε τις προεπιλεγμένες επιλογές, μπορείτε να κάνετε τις δικές σας. Σε μερικές περιπτώσεις, μπορεί να υπάρχουν πολλαπλά πακέτα για την ίδια εφαρμογή, με διαφορετικές ρυθμίσεις. Για παράδειγμα, το Ghostscript διατίθεται ως ένα πακέτο ghostscript και ένα πακέτο ghostscript-nox11, αναλόγως αν θα εγκαταστήσετε ή όχι έναν X11 server. Αυτού του τύπου οι ρυθμίσεις είναι δυνατές με τα πακέτα, αλλά γρήγορα γίνονται αδύνατες αν μία εφαρμογή έχει περισσότερες από μία ή δύο διαφορετικές ρυθμίσεις μεταγλώττισης. Οι συνθήκες των αδειών διανομής από μερικές διανομές λογισμικού, απαγορεύουν την διανομή εκτελέσιμου κώδικα. Πρέπει να διανεμηθούν με την μορφή πηγαίου κώδικα. Μερικά άτομα δεν εμπιστεύονται τα έτοιμα εκτελέσιμα. Τουλάχιστον με τον πηγαίο κώδικα, μπορείτε (θεωρητικά) να τον διαβάσετε και να ψάξετε για πιθανά προβλήματα μόνος σας. Αν έχετε τοπικά, δικά σας patches, θα χρειαστείτε τον πηγαίο κώδικα για να τα εφαρμόσετε. Μερικά άτομα γουστάρουν να έχουν τον πηγαίο κώδικα, ώστε να τον διαβάσουν αν βαρεθούνε, να τον αλλάξουν (hack), να δανειστούν από αυτόν (αν βέβαια το επιτρέπει η άδεια), κ.λ.π. Για να είστε ενήμερος για τα ανανεωμένα ports, εγγραφείτε στην &a.ports; και στην &a.ports-bugs;. Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το για θέματα ασφαλείας που σχετίζονται με την εφαρμογή σας. Μπορείτε επίσης να εγκαταστήσετε το ports-mgmt/portaudit το οποίο αυτόματα θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την εντολή portaudit -F -a αφότου έχετε πρώτα εγκαταστήσει μερικά πακέτα. Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο λογισμικό στο &os;. Βρίσκοντας την Εφαρμογή σας Πριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι θέλετε να κάνει, και πως ονομάζεται η εφαρμογή. Η λίστα των διαθέσιμων εφαρμογών στο &os; μεγαλώνει συνεχώς. Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε: Στη δικτυακή τοποθεσία του &os; θα βρείτε μια λίστα από όλες τις διαθέσιμες εφαρμογές, στο http://www.FreeBSD.org/ports/. Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια κατηγορία. FreshPorts Ο Dan Langille διατηρεί το FreshPorts, στο . Το FreshPorts καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς συμβαίνουν, επιτρέποντάς σας να παρακολουθείτε ένα ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά ανανεώνονται. FreshMeat Αν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε, δοκιμάστε να χρησιμοποιήσετε ένα site σαν το FreshMeat () για να βρείτε μία εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του &os; για να δείτε αν η εφαρμογή έχει γίνει port. Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την εντολή &man.whereis.1;. Απλά γράψτε whereis αρχείο, όπου αρχείο είναι το πρόγραμμα που θέλετε να εγκαταστήσετε. Αν αυτό βρίσκεται στο σύστημα σας, η εντολή θα σας πει που είναι, όπως παρακάτω: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Αυτό μας λέει ότι το lsof (ένα εργαλείο συστήματος) μπορεί να βρεθεί στον κατάλογο /usr/ports/sysutils/lsof. Επιπρόσθετα, μπορείτε να χρησιμοποιήσετε μια απλή εντολή &man.echo.1; για να εντοπίσετε την τοποθεσία κάποιου προγράμματος μέσα στα ports. Για παράδειγμα: &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof Σημειώστε ότι το παραπάνω θα δείξει επίσης και οποιαδήποτε αρχεία έχουν κατέβει στον κατάλογο /usr/ports/distfiles εφόσον ταιριάζουν στην αναζήτηση. Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα χρειαστεί να βρίσκεστε στον κατάλογο /usr/ports. Όταν βρεθείτε σε αυτόν τον κατάλογο, εκτελέστε το make search name=όνομα--προγράμματος όπου όνομα--προγράμματος είναι το όνομα του προγράμματος που θέλετε να βρείτε. Για παράδειγμα, αν αναζητάτε το lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Το τμήμα της εξόδου που πρέπει να προσέξετε ιδιαίτερα είναι η γραμμή Path:, αφού αυτή σας λέει που να βρείτε το port. Οι υπόλοιπες πληροφορίες που παρέχονται δεν χρειάζονται για να εγκατασταθεί το port, για αυτό δεν θα αναλυθούν εδώ. Για πιο λεπτομερή αναζήτηση μπορείτε να χρησιμοποιήσετε επίσης make search key=φράση όπου φράση είναι κάποιο κείμενο προς αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα του προγράμματος που αναζητάτε. Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών). Η αναζήτηση για το LSOF, θα δώσει τα ίδια αποτελέσματα με την αναζήτηση για το lsof. Chern Lee Συνεισφορά του Χρησιμοποιώντας το Σύστημα των Πακέτων Εγκαθιστώντας ένα Πακέτο packages installing pkg_add Μπορείτε να χρησιμοποιήσετε το εργαλείο &man.pkg.add.1; για να εγκαταστήσετε ένα πακέτο λογισμικού του &os; από ένα τοπικά αποθηκευμένο αρχείο ή από έναν διακομιστή στο δίκτυο. <quote>Κατέβασμα</quote> ενός πακέτου χειροκίνητα και εγκατάσταση του τοπικά &prompt.root; 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 &prompt.root; pkg_add lsof-4.56.4.tgz Εάν δεν έχετε μία τοπική πηγή πακέτων (όπως είναι ένα &os; CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσετε την επιλογή για το &man.pkg.add.1;. Αυτή θα κάνει το εργαλείο να καθορίσει αυτόματα τη σωστή μορφή και έκδοση και έπειτα να ανακτήσει και να εγκαταστήσει το πακέτο από ένα FTP site. pkg_add &prompt.root; pkg_add -r lsof Το παραπάνω παράδειγμα θα κατεβάσει και θα εγκαταστήσει το σωστό πακέτο χωρίς περαιτέρω επέμβαση του χρήστη. Αν δεν θέλετε να χρησιμοποιήσετε το κύριο site διανομής πακέτων, μπορείτε να χρησιμοποιήσετε κάποιο mirror. Για το σκοπό αυτό, θα πρέπει να ρυθμίσετε σωστά την τιμή της PACKAGESITE, ώστε να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις. Το &man.pkg.add.1; χρησιμοποιεί το &man.fetch.3; για να κατεβάσει τα αρχεία, και αυτό με τη σειρά του χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των FTP_PASSIVE_MODE, FTP_PROXY, και FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή περισσότερες από αυτές αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το &man.fetch.3; για την πλήρη λίστα των μεταβλητών. Προσέξτε ότι στο παραπάνω παράδειγμα χρησιμοποιείται το lsof αντί του lsof-4.56.4. Όταν γίνεται απομακρυσμένη λήψη, πρέπει να αφαιρεθεί ο αριθμός έκδοσης του πακέτου. Το &man.pkg.add.1; θα κατεβάσει αυτόματα την τελευταία έκδοση της εφαρμογής. Το &man.pkg.add.1; θα κατεβάσει την τελευταία έκδοση της εφαρμογής αν χρησιμοποιείτε &os.current; ή &os.stable;. Αν τρέχετε μια -RELEASE έκδοση, θα κατεβάσει την έκδοση του πακέτου που έχει μεταγλωττιστεί με την έκδοση σας. Είναι δυνατό να το αλλάξετε αυτό, αλλάζοντας την PACKAGESITE. Για παράδειγμα, αν τρέχετε ένα σύστημα &os; 5.4-RELEASE, το &man.pkg.add.1;, από προεπιλογή, θα προσπαθήσει να κατεβάσει πακέτα από το ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Αν θέλετε να αναγκάσετε το &man.pkg.add.1; να κατεβάσει πακέτα του &os; 5-STABLE, θέστε την PACKAGESITE ως ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Τα αρχεία των πακέτων διανέμονται σε μορφές .tgz και .tbz. Μπορείτε να τα βρείτε στο , ή στα CD-ROM της διανομής του &os;. Κάθε CD στο &os; 4-CD set (και στο PowerPak, κλπ.) περιέχει πακέτα στον κατάλογο /packages. Η κατηγοριοποίηση των πακέτων ακολουθεί την δομή του δέντρου /usr/ports. Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε πακέτο μπορεί να βρεθεί στον κατάλογο All. Η δομή των καταλόγων του συστήματος πακέτων ταιριάζει με την αντίστοιχη των ports. Τα δύο συστήματα συνεργάζονται μεταξύ τους για να δημιουργήσουν το συνολικό σύστημα πακέτων/ports. Διαχείριση των Πακέτων packages managing Το &man.pkg.info.1; είναι ένα εργαλείο που παραθέτει και περιγράφει τα διάφορα πακέτα που είναι εγκαταστημένα. pkg_info &prompt.root; 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 ... Το &man.pkg.version.1; είναι ένα εργαλείο που συνοψίζει τις εκδόσεις όλων των εγκαταστημένων πακέτων. Συγκρίνει την έκδοση κάθε πακέτου, με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των ports. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία μεταξύ των εγκατεστημένων εκδόσεων και των εκδόσεων που είναι διαθέσιμες στο τοπικό δέντρο των ports. Σύμβολο Σημασία = Η έκδοση του εγκατεστημένου πακέτου ταιριάζει με αυτή που είναι διαθέσιμη στο τοπικό δέντρο των ports. < Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που είναι διαθέσιμη στο δέντρο των ports. > Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που είναι διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των ports είναι πιθανότατα απαρχαιωμένο.) ? Το εγκατεστημένο πακέτο δεν βρίσκεται στα περιεχόμενα των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα εγκατεστημένο port έχει αφαιρεθεί από την Συλλογή των Ports, ή έχει μετονομαστεί.) * Υπάρχουν πολλαπλές εκδόσεις του πακέτου. ! Το εγκατεστημένο πακέτο υπάρχει στο index, αλλά για κάποιο λόγο το pkg_version δεν κατάφερε να συγκρίνει την έκδοση του εγκατεστημένου πακέτου με την αντίστοιχη καταχώρηση στο index. Αφαιρώντας ένα Πακέτο pkg_delete packages deleting Για να αφαιρέσετε ένα εγκατεστημένο πακέτο λογισμικού, χρησιμοποιήστε το εργαλείο &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Σημειώστε ότι το &man.pkg.delete.1; απαιτεί το πλήρες όνομα και αριθμό έκδοσης του πακέτου. Η παραπάνω εντολή δεν θα λειτουργήσει αν δώσετε απλώς xchat αντί για xchat-1.7.1. Είναι ωστόσο εύκολο να χρησιμοποιήσετε την &man.pkg.version.1; για να βρείτε την έκδοση του εγκατεστημένου πακέτου. Αντί για αυτό, μπορείτε επίσης να χρησιμοποιήσετε ένα μπαλαντέρ: &prompt.root; pkg_delete xchat\* Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα τους αρχίζουν με xchat. Διάφορα Όλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον κατάλογο /var/db/pkg. Στα αρχεία αυτού του καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα των αρχείων που εγκαθιστά. Χρησιμοποιώντας την Συλλογή των Ports Τα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων επιλογών του make και των μεταβλητών περιβάλλοντος στο &man.ports.7;. Ανακτώντας την Συλλογή των Ports Πριν μπορέσετε να εγκαταστήσετε προγράμματα μέσω των ports, πρέπει πρώτα να ανακτήσετε την Συλλογή των Ports. Πρόκειται ουσιαστικά για μια συλλογή από Makefiles, patches, και αρχεία περιγραφής που τοποθετούνται στο /usr/ports. Όταν εγκαταστήσατε το &os; σύστημα σας, το sysinstall σας ρώτησε αν θέλατε να εγκαταστήσετε την Συλλογή των Ports. Αν επιλέξατε όχι, μπορείτε να ακολουθήσετε αυτές τις οδηγίες για να ανακτήσετε την Συλλογή των Ports: Μέθοδος CVSup Αυτή είναι μια γρήγορη μέθοδος για να ανακτήσετε και να διατηρήσετε ένα ανανεωμένο αντίγραφο της Συλλογής των Ports, χρησιμοποιώντας το πρωτόκολλο CVSup. Αν θέλετε να μάθετε περισσότερα για το CVSup, δείτε το Χρησιμοποιώντας το CVSup. Η υλοποίηση του CVSup που περιλαμβάνεται σε ένα σύστημα &os;, ονομάζεται csup. Εμφανίστηκε για πρώτη φορά στο &os; 6.2. Οι χρήστες παλαιότερων εκδόσεων του &os;, μπορούν να το εγκαταστήσουν μέσω του πακέτου ή port net/csup. Σιγουρευθείτε ότι το /usr/ports είναι άδειο πριν εκτελέσετε το csup για πρώτη φορά! Εάν έχετε ήδη ανακτήσει τη Συλλογή των Ports μέσω κάποιας άλλης πηγής, το csup δεν θα διαγράψει patches που έχουν αφαιρεθεί στο μεταξύ. Εκτελέστε το csup: &prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Αλλάξτε το cvsup.FreeBSD.org με έναν κοντινό σας διακομιστή CVSup. Δείτε το CVSup Mirrors () για την πλήρη λίστα των mirror sites. Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας ports-supfile, ώστε να αποφύγετε (για παράδειγμα) να δηλώσετε τον διακομιστή CVSup στην γραμμή εντολών. Σε αυτή την περίπτωση, ως root, αντιγράψτε το /usr/share/examples/cvsup/ports-supfile σε μία νέα τοποθεσία, όπως το /root ή τον δικό σας home κατάλογο. Τροποποιήστε το ports-supfile. Αλλάξτε το CHANGE_THIS.FreeBSD.org με έναν κοντινό σας διακομιστή CVSup.Δείτε το CVSup Mirrors () για την πλήρη λίστα των mirror sites. Εκτελέστε τώρα το csup, με τον ακόλουθο τρόπο: &prompt.root; csup -L 2 /root/ports-supfile Εκτελώντας την εντολή &man.csup.1; αργότερα, θα κατεβάσει και θα εφαρμόσει όλες τις πρόσφατες αλλαγές στην Συλλογή των Ports, εκτός από το να επανα-μεταγλωττίσει τα ports για το σύστημα σας. Μέθοδος Portsnap Το Portsnap είναι ένα εναλλακτικό σύστημα για την διανομή της Συλλογής των Ports. Διατέθηκε πρώτη φορά στο &os; 6.0. Σε παλαιότερα συστήματα, μπορείτε να το εγκαταστήσετε από το πακέτο ports-mgmt/portsnap: &prompt.root; pkg_add -r portsnap Παρακαλώ ελέγξτε το - Χρησιμοποιώντας το Portsnap + Χρησιμοποιώντας το Portsnap για μία λεπτομερή περιγραφή όλων των χαρακτηριστικών της εφαρμογής. Από την &os; 6.1-RELEΑSE και με τις νεότερες εκδόσεις του Portsnap, μπορείτε να αποφύγετε αυτό το βήμα με ασφάλεια. Το /usr/ports θα δημιουργηθεί αυτόματα με την πρώτη χρήση της εντολής &man.portsnap.8;. Με παλαιότερες εκδόσεις του Portsnap, πρέπει να δημιουργήσετε έναν άδειο κατάλογο /usr/ports αν δεν υπάρχει: &prompt.root; mkdir /usr/ports Κατεβάστε ένα συμπιεσμένο snapshot της Συλλογής των Ports /var/db/portsnap. Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από αυτό το βήμα. &prompt.root; portsnap fetch Αν εκτελείτε το Portsnap για πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο /usr/ports: &prompt.root; portsnap extract Εάν ήδη έχετε ένα γεμάτο /usr/ports και απλώς το ανανεώνετε, εκτελέστε την ακόλουθη εντολή: &prompt.root; portsnap update Μέθοδος Sysinstall Αυτή η μέθοδος χρησιμοποιεί το sysinstall για την εγκατάσταση της Συλλογής των Ports από το μέσο εγκατάστασης. Σημειώστε ότι με αυτό τον τρόπο θα εγκαταστήσετε το παλαιό αντίγραφο της Συλλογής των Ports, που αντιστοιχεί στην ημερομηνία της έκδοσης του &os; που χρησιμοποιείτε. Εάν έχετε πρόσβαση στο Διαδίκτυο, πρέπει πάντα να χρησιμοποιείτε μία από τις μεθόδους που αναφέρθηκαν πιο πάνω. Ως root, εκτελέστε το sysinstall (/stand/sysinstall σε εκδόσεις του &os; πριν την 5.2) όπως φαίνεται παρακάτω: &prompt.root; sysinstall Επιλέξτε το Configure, και πιέστε Enter. Επιλέξτε το Distributions, και πιέστε Enter. Μετακινηθείτε στο ports, και πιέστε Space. Μετακινηθείτε στο Exit, και πιέστε Enter. Επιλέξτε το μέσο εγκατάστασης της επιθυμίας σας, όπως CDROM, FTP, και πάει λέγοντας. Μετακινηθείτε στο Exit και πιέστε Enter. Πιέστε X για να βγείτε από το sysinstall. Εγκαθιστώντας Ports ports installing Το πρώτο πράγμα που πρέπει να διευκρινιστεί σχετικά με την Συλλογή των Ports είναι η έννοια του όρου skeleton (σκελετός). Με λίγα λόγια, ένα port skeleton είναι η ελάχιστη συλλογή αρχείων που καθοδηγούν ένα σύστημα &os; ώστε να μεταγλωττίσει και να εγκαταστήσει σωστά ένα πρόγραμμα. Κάθε port skeleton περιέχει: Ένα Makefile. Το Makefile περιέχει διάφορες δηλώσεις που ορίζουν πως πρέπει να μεταγλωττιστεί η εφαρμογή και που πρέπει να εγκατασταθεί στο σύστημά σας. Ένα αρχείο distinfo. Αυτό το αρχείο περιέχει πληροφορίες για τα αρχεία που πρέπει να κατέβουν για την μεταγλώττιση του port, και τα checksums τους (χρησιμοποιώντας τις &man.md5.1; και &man.sha256.1;), για να επιβεβαιωθεί ότι τα αρχεία δεν έχουν αλλοιωθεί κατά την διάρκεια της μεταφοράς τους. Έναν κατάλογο files. Αυτός ο κατάλογος περιέχει τα patches που επιτρέπουν στο πρόγραμμα να μεταγλωττιστεί και εγκατασταθεί στο &os; σύστημα σας. Τα patches είναι μικρά αρχεία που ορίζουν αλλαγές σε συγκεκριμένα αρχεία. Είναι σε μορφή κοινού κειμένου, και βασικά λένε Αφαίρεσε την γραμμή 10 ή Μετέτρεψε τη γραμμή 26 σε αυτό .... Τα patches είναι επίσης γνωστά ως diffs επειδή δημιουργούνται με το πρόγραμμα &man.diff.1;. Αυτός ο κατάλογος μπορεί να περιέχει και άλλα αρχεία που χρησιμοποιούνται για να μεταγλωττιστεί το port. Ένα αρχείο pkg-descr. Αυτό είναι μία πιο λεπτομερής, συχνά πολλών γραμμών, περιγραφή του προγράμματος. Ένα αρχείο pkg-plist. Αυτό περιέχει μια λίστα όλων των αρχείων που θα εγκατασταθούν από το port. Επίσης καθοδηγεί το σύστημα των ports τι αρχεία να αφαιρέσει κατά την απεγκατάσταση. Μερικά ports έχουν και άλλα αρχεία, όπως το pkg-message. Το σύστημα των ports χρησιμοποιεί αυτά τα αρχεία για να χειριστεί ειδικές περιστάσεις. Αν θέλετε περισσότερες λεπτομέρειες για αυτά τα αρχεία, και τα ports γενικότερα, δείτε το &os; Porter's Handbook. Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο. Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο, αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε οποιαδήποτε μορφή κι αν διατίθεται, λέγεται distfile. Οι δύο μέθοδοι για να εγκαταστήσετε ένα &os; port περιγράφονται παρακάτω. Πρέπει να συνδεθείτε ως root για να εγκαταστήσετε ports. Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε το για θέματα ασφαλείας σχετικά με το port που ενδιαφέρεστε. Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να χρησιμοποιήσετε το portaudit. Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports (ports-mgmt/portaudit). Είναι καλή ιδέα να εκτελέσετε το portaudit -F πριν εγκαταστήσετε ένα νέο port, για να ανακτήσετε την τρέχουσα βάση δεδομένων προβλημάτων ασφαλείας. Αντίστοιχος έλεγχος και ανανέωση της βάσης δεδομένων εκτελείται επίσης αυτόματα κατά τον καθημερινό έλεγχο ασφαλείας του συστήματος. Για περισσότερες πληροφορίες διαβάστε τις σελίδες manual &man.portaudit.1; και &man.periodic.8;. Η Συλλογή των Ports προϋποθέτει ότι έχετε λειτουργική σύνδεση με το Διαδίκτυο. Εάν δεν έχετε, θα χρειαστεί να βάλετε μόνος σας ένα αντίγραφο του distfile μέσα στο /usr/ports/distfiles. Αρχικά, μετακινηθείτε στον κατάλογο του port που θέλετε να εγκαταστήσετε: &prompt.root; cd /usr/ports/sysutils/lsof Μόλις βρεθείτε στον κατάλογο lsof, θα δείτε τον port skeleton. Το επόμενο βήμα είναι να μεταγλωττίσετε, ή να κτίσετε (build), το port. Αυτό γίνεται απλά πληκτρολογώντας make στην γραμμή εντολών. Όταν το κάνετε, θα δείτε κάτι όπως αυτό: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Προσέξτε ότι μόλις η μεταγλώττιση ολοκληρωθεί θα επιστρέψετε στην γραμμή εντολών. Το επόμενο βήμα είναι να εγκαταστήσετε το port. Για να το εγκαταστήσετε, χρειάζεται απλώς να προσθέσετε μια λέξη στην εντολή make, και αυτή η λέξη είναι install: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Μόλις επιστρέψετε στην γραμμή εντολών, θα πρέπει να μπορείτε να εκτελέσετε την εφαρμογή που μόλις εγκαταστήσατε. Θα δείτε μια προειδοποίηση ασφαλείας, επειδή το lsof είναι ένα πρόγραμμα που τρέχει με αυξημένα προνόμια. Κατά την μεταγλώττιση και εγκατάσταση των ports, θα πρέπει να προσέχετε οποιαδήποτε προειδοποίηση εμφανιστεί. Μια καλή ιδέα, είναι να διαγράψετε τον υποκατάλογο που περιέχει όλα τα προσωρινά αρχεία που χρησιμοποιήθηκαν κατά την μεταγλώττιση. Όχι μόνο καταναλώνουν πολύτιμο χώρο, άλλα μπορεί να προκαλέσουν προβλήματα αργότερα όταν θα θελήσετε να εγκαταστήσετε μια νεότερη έκδοση του port. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Μπορείτε να γλιτώσετε δύο πρόσθετα βήματα απλώς εκτελώντας make install clean αντί για make, make install και make clean ως τρία ξεχωριστά βήματα. Μερικά κελύφη κρατάνε μια λίστα από τις εντολές που βρίσκονται διαθέσιμες στους καταλόγους που αναφέρονται στην μεταβλητή περιβάλλοντος PATH, για να επιταχύνουν τις αναζητήσεις για τα εκτελέσιμα αρχεία αυτών των εντολών. Αν χρησιμοποιείτε ένα από αυτά τα κελύφη, θα πρέπει να χρησιμοποιήσετε την εντολή rehash μετά την εγκατάσταση ενός port, πριν μπορέσετε να χρησιμοποιήσετε τις νέες εντολές. Αυτή η εντολή λειτουργεί σε κελύφη όπως το tcsh. Χρησιμοποιήστε την εντολή hash -r για κελύφη όπως το sh. Δείτε την τεκμηρίωση του κελύφους σας για περισσότερες πληροφορίες. Μερικά προϊόντα τρίτων κατασκευαστών σε DVD-ROM, όπως το &os; Toolkit από το &os; Mall, περιέχουν distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports. Προσαρτήστε το DVD-ROM στο /cdrom. Αν χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την μεταβλητή CD_MOUNTPTS του make. Τα αναγκαία distfiles θα χρησιμοποιηθούν αυτόματα αν υπάρχουν στο δισκάκι. Πρέπει να γνωρίζετε ότι οι άδειες μερικών ports δεν επιτρέπουν την διανομή τους σε CD-ROM. Αυτό μπορεί να οφείλεται π.χ. στο ότι πρέπει να συμπληρώσετε μια φόρμα εγγραφής πριν κατεβάσετε την εφαρμογή, ή στο ότι δεν επιτρέπεται η επαναδιανομή, ή σε κάποιο άλλο λόγο. Εάν θέλετε να εγκαταστήσετε ένα port που δεν περιλαμβάνεται στο CD-ROM, θα χρειαστεί να είστε συνδεδεμένος στο Διαδίκτυο για να το επιτύχετε. Το σύστημα των ports χρησιμοποιεί το &man.fetch.3; για να κατεβάσει τα αρχεία. Το &man.fetch.3; χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των FTP_PASSIVE_MODE, FTP_PROXY, και FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή περισσότερες αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το &man.fetch.3; για μια πλήρη λίστα των μεταβλητών αυτών. Για χρήστες που δεν μπορούν να είναι συνδεδεμένοι όλη την ώρα, διατίθεται η επιλογή make fetch. Απλώς εκτελέστε την εντολή στον κατάλογο (/usr/ports) και τα απαραίτητα αρχεία θα κατέβουν για εσάς. Η εντολή αυτή θα λειτουργήσει και σε υποκαταλόγους, όπως για παράδειγμα: /usr/ports/net. Προσέξτε ότι αν ένα port εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή δεν θα ανακτήσει τα distfiles τους. Αντικαταστήστε το fetch με το fetch-recursive αν θέλετε μαζί με το port να ανακτήσετε και όλες τις εξαρτήσεις του. Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή ακόμα και σε όλες, εκτελώντας το make στον αρχικό κατάλογο, όπως με την προαναφερθείσα make fetch μέθοδο. Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο όνομα. Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα MASTER_SITES (η τοποθεσία από όπου κατεβαίνουν τα αρχεία). Μπορείτε να αλλάξετε την επιλογή MASTER_SITES με την ακόλουθη εντολή: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Σε αυτό το παράδειγμα αλλάξαμε την επιλογή MASTER_SITES σε ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων ports είναι τα www/mozilla, security/gpgme, και το mail/sylpheed-claws. Όταν υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη σας σχετικό μήνυμα. Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των Ports Μερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές WRKDIRPREFIX και PREFIX μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για παράδειγμα, η εντολή: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install θα μεταγλωττίσει το port στο /usr/home/example/ports και θα εγκαταστήσει τα πάντα στο /usr/local, ενώ η εντολή: &prompt.root; make PREFIX=/usr/home/example/local install θα μεταγλωττίσει το port στο /usr/ports και θα το εγκαταστήσει στο /usr/home/example/local. Και φυσικά η εντολή: &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install θα συνδυάσει και τα δυο (είναι πολύ μεγάλη για να την δείξουμε εδώ, άλλα πρέπει να πήρατε την γενική ιδέα). Εναλλακτικά, αυτές οι μεταβλητές μπορούν να ρυθμιστούν ως μέρος του περιβάλλοντος σας. Διαβάστε την σελίδα manual για το κέλυφος σας, για να βρείτε τις σχετικές οδηγίες. Αντιμετωπίζοντας το <command>imake</command> Μερικά ports που χρησιμοποιούν το imake (μέρος του X Window System) δεν συνεργάζονται σωστά με το PREFIX, και επιμένουν να εγκατασταθούν στο /usr/X11R6. Όμοια, μερικά Perl ports αγνοούν το PREFIX και εγκαθίστανται στο δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το PREFIX είναι μία δύσκολη ή αδύνατη δουλειά. Επαναρύθμιση Επιλογών Ports Όταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού, για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές, μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε στον κατάλογο του port και να γράψετε make config, με το οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την εντολή make showconfig, με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port. Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή make rmconfig η οποία θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα περισσότερες, εξηγούνται στη σελίδα manual του &man.ports.7;. Αφαιρώντας Εγκατεστημένα Ports ports removing Τώρα που γνωρίσατε πως να εγκαθιστάτε ports, πιθανώς θα αναρωτιέστε πως αφαιρούνται, στην περίπτωση που εγκαταστήσατε ένα και αργότερα αποφασίσατε ότι εγκαταστήσατε το λάθος port. Θα αφαιρέσουμε το προηγούμενο παράδειγμα (που ήταν το lsof για όσους δεν το πρόσεξαν). Τα ports αφαιρούνται όπως και τα πακέτα (το αναλύσαμε στην ενότητα Χρησιμοποιώντας το Σύστημα των Πακέτων), χρησιμοποιώντας την εντολή &man.pkg.delete.1;: &prompt.root; pkg_delete lsof-4.57 Αναβαθμίζοντας τα Ports ports upgrading Αρχικά, δείτε τα παρωχημένα ports για τα οποία υπάρχουν διαθέσιμες νεότερες εκδόσεις στην Συλλογή των Ports, με την εντολή &man.pkg.version.1;: &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> Μόλις ανανεώσετε την Συλλογή των Ports, πρέπει να ελέγξετε το αρχείο /usr/ports/UPDATING, πριν επιχειρήσετε την αναβάθμιση ενός port. Αυτό το αρχείο περιγράφει διάφορα πιθανά προβλήματα, καθώς και ενδεχόμενα πρόσθετα βήματα που πρέπει να εκτελέσετε όταν ανανεώνετε ένα port. Παραδείγματα των παραπάνω, είναι η αλλαγή μορφής κάποιων αρχείων, αλλαγή στην τοποθεσία των αρχείων ρυθμίσεων, ή άλλες ασυμβατότητες με παλαιότερες εκδόσεις. Αν το UPDATING αναιρεί κάτι που διαβάσατε εδώ, θεωρήστε ότι ισχύει το UPDATING. Αναβαθμίζοντας Ports με το Portupgrade portupgrade Το εργαλείο portupgrade είναι σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports. Διατίθεται από το ports-mgmt/portupgrade port. Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή make install clean: &prompt.root; cd /usr/ports/ports-mgmt/portupgrade &prompt.root; make install clean Η εντολή pkgdb -F θα διαβάσει και θα διορθώσει όλες τις ασυνέπειες που ίσως υπάρχουν στη λίστα των εγκατεστημένων ports. Είναι καλή ιδέα είναι να την εκτελείτε συχνά, ενδεχομένως πριν από κάθε αναβάθμιση. Όταν εκτελείτε το portupgrade -a, το portupgrade θα αρχίσει να αναβαθμίζει όλα τα παρωχημένα ports που είναι εγκατεστημένα στο σύστημα σας. Χρησιμοποιήστε την επιλογή αν θέλετε να σας ρωτά για επιβεβαίωση για κάθε ξεχωριστή αναβάθμιση. &prompt.root; portupgrade -ai Αν θέλετε να αναβαθμίσετε μόνο μία συγκεκριμένη εφαρμογή, και όχι όλα τα διαθέσιμα ports, χρησιμοποιήστε το portupgrade pkgname. Συμπεριλάβετε την επιλογή αν το portupgrade πρέπει πρώτα να αναβαθμίσει όλα τα ports που απαιτούνται για την συγκεκριμένη εφαρμογή. &prompt.root; portupgrade -R firefox Για να χρησιμοποιήσετε πακέτα αντί για ports στην εγκατάσταση, δώστε την επιλογή . Με αυτή την επιλογή το portupgrade αναζητά τους τοπικούς καταλόγους που ορίζονται στο PKG_PATH, ή ανακτά τα πακέτα από απομακρυσμένα sites εάν δεν βρεθούν τοπικά. Αν τα πακέτα δεν μπορούν να ανακτηθούν με τους παραπάνω τρόπους, το portupgrade θα χρησιμοποιήσει τα ports. Για να αποφύγετε εντελώς την χρήση των ports, καθορίστε την επιλογή . &prompt.root; portupgrade -PR gnome2 Για να ανακτήσετε απλώς τα distfiles (ή τα πακέτα, αν έχετε ορίσει την επιλογή ) χωρίς να μεταγλωττίσετε ή να εγκαταστήσετε τίποτα, χρησιμοποιήστε το . Για περισσότερες πληροφορίες, δείτε το &man.portupgrade.1;. Αναβαθμίζοντας Ports με το Portmanager portmanager Το Portmanager είναι ένα ακόμα εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται από το ports-mgmt/portmanager port: &prompt.root; cd /usr/ports/ports-mgmt/portmanager &prompt.root; make install clean Όλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν χρησιμοποιώντας αυτή την απλή εντολή: &prompt.root; portmanager -u Μπορείτε να προσθέσετε την επιλογή για να ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το Portmanager. Το Portmanager μπορεί επίσης να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα. Σε αντίθεση με την εντολή make install clean, το Portmanager θα αναβαθμίσει όλες τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του επιλεγμένου port. &prompt.root; portmanager x11/gnome2 Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το Portmanager για να τις επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό port. &prompt.root; portmanager graphics/gimp -f Για περισσότερες πληροφορίες δείτε τη σελίδα manual &man.portmanager.1;. Αναβαθμίζοντας τα Ports μέσω του Portmaster portmaster Το Portmaster είναι ένα ακόμα εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το Portmaster σχεδιάστηκε ώστε να χρησιμοποιεί τα εργαλεία που παρέχει το βασικό σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις πληροφορίες του /var/db/pkg για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω του port ports-mgmt/portmaster: &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Το Portmaster ομαδοποιεί τα ports σε τέσσερις κατηγορίες: Root ports (δεν εξαρτώνται από άλλα, και ούτε άλλα εξαρτώνται από αυτά) Trunk ports (δεν εξαρτώνται από άλλα, ωστόσο κάποια πακέτα εξαρτώνται από αυτά) Branch ports (έχουν εξαρτήσεις και προς τις δύο κατευθύνσεις) Leaf ports (εξαρτώνται από άλλα, αλλά όχι το αντίθετο) Μπορείτε να δείτε μια λίστα όλων των εγκατεστημένων ports και να ψάξετε για ενημερωμένες εκδόσεις, χρησιμοποιώντας την επιλογή : &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available Μπορείτε να αναβαθμίσετε όλα τα εγκατεστημένα ports με την παρακάτω απλή εντολή: &prompt.root; portmaster -a Από προεπιλογή, το Portmaster θα δημιουργήσει αντίγραφο ασφαλείας του εγκατεστημένου πακέτου πριν το διαγράψει. Αν η εγκατάσταση της νέας έκδοσης είναι επιτυχής, το Portmaster θα σβήσει το αντίγραφο αυτό. Αν χρησιμοποιήσετε την επιλογή , το Portmaster δεν θα σβήσει αυτόματα το αντίγραφο. Αν χρησιμοποιήσετε την επιλογή , θα θέσετε το Portmaster σε διαδραστική λειτουργία, όπου θα σας ζητάει επιβεβαίωση πριν την αναβάθμιση κάθε port. Αν αντιμετωπίσετε λάθη κατά τη διαδικασία της αναβάθμισης, μπορείτε να χρησιμοποιήσετε την επιλογή για να αναβαθμίσετε και να μεταγλωττίσετε ξανά όλα τα ports: &prompt.root; portmaster -af Μπορείτε επίσης να χρησιμοποιήσετε το Portmaster για να εγκαταστήσετε νέα ports στο σύστημα σας, αναβαθμίζοντας και όλες τις εξαρτήσεις τους πριν τη μεταγλώττιση και εγκατάσταση τους: &prompt.root; portmaster shells/bash Παρακαλούμε δείτε τη σελίδα manual του &man.portmaster.8; για περισσότερες πληροφορίες. Ports και Αποθηκευτικός Χώρος ports disk-space Η Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς καταλόγους work χρησιμοποιώντας την εντολή make clean. Mπορείτε να καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή: &prompt.root; portsclean -C Με την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής πηγαίου κώδικα στον κατάλογο distfiles. Μπορείτε να τα αφαιρέσετε χειροκίνητα, ή μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να διαγράψετε όλα τα distfiles που δεν σχετίζονται πλέον με κανένα port: &prompt.root; portsclean -D Ή για να αφαιρέσετε όλα τα distfiles που δεν σχετίζονται με κανένα port που βρίσκεται εγκατεστημένο στο σύστημα σας: &prompt.root; portsclean -DD Το εργαλείο portsclean εγκαθίσταται ως μέρος του portupgrade. Μην ξεχνάτε να αφαιρείτε τα εγκατεστημένα ports όταν δεν τα χρειάζεστε πλέον. Ένα καλό εργαλείο για να αυτοματοποιηθεί αυτή η εργασία, είναι το port ports-mgmt/pkg_cutleaves. Ενέργειες μετά την Εγκατάσταση Μετά την εγκατάσταση μιας νέας εφαρμογής, λογικά θα θέλετε να διαβάσετε ότι τεκμηρίωση υπάρχει, να τροποποιήσετε τα αρχεία ρυθμίσεων που χρειάζεται, να βεβαιωθείτε ότι η εφαρμογή ξεκινάει κατά την εκκίνηση (αν είναι daemon), κ.λ.π. Τα ακριβή βήματα που θα χρειαστούν για να ρυθμίσετε κάθε εφαρμογή, θα είναι προφανώς διαφορετικά. Όμως, αν μόλις εγκαταστήσατε μια νέα εφαρμογή και αναρωτιέστε Τώρα τι; οι παρακάτω συμβουλές μπορεί να σας βοηθήσουν: Χρησιμοποιήστε το &man.pkg.info.1; για να δείτε τι αρχεία εγκαταστάθηκαν, και που. Για παράδειγμα, αν μόλις εγκαταστήσατε το FooPackage version 1.0.0, τότε η εντολή: &prompt.root; pkg_info -L foopackage-1.0.0 | less θα σας δείξει όλα τα αρχεία που εγκαταστάθηκαν από αυτό το πακέτο. Προσέξτε τα αρχεία στον κατάλογο man/, που θα είναι σελίδες manual, τους κατάλογους etc/, όπου θα είναι τα αρχεία ρυθμίσεων, και το doc/, όπου θα βρίσκεται πιο περιεκτική τεκμηρίωση. Αν δεν είστε σίγουρος ποια έκδοση της εφαρμογής εγκαταστήσατε, μια εντολή όπως αυτή: &prompt.root; pkg_info | grep -i foopackage θα βρει όλα τα εγκατεστημένα πακέτα που έχουν το foopackage στο όνομα του πακέτου. Αντικαταστήστε το foopackage στην γραμμή εντολών με το πακέτο που αναζητάτε. Μόλις δείτε που βρίσκονται τα manual pages της εφαρμογής, δείτε τα με την &man.man.1;. Όμοια, δείτε τα παραδείγματα των αρχείων ρύθμισης, και όποια άλλη πρόσθετη τεκμηρίωση διατίθεται. Αν υπάρχει web site για την εφαρμογή, ελέγξτε το για πρόσθετη τεκμηρίωση, συχνές ερωτήσεις (FAQ), και άλλα. Αν δεν είστε σίγουρος για την διεύθυνσή του web site, ίσως το βρείτε στην έξοδο της εντολής: &prompt.root; pkg_info foopackage-1.0.0 Αν υπάρχει γραμμή WWW:, θα πρέπει να έχει το URL για το web site της εφαρμογής. Ports που πρέπει να ξεκινούν κατά την εκκίνηση (όπως διακομιστές Internet) συνήθως εγκαθιστούν ένα script στο /usr/local/etc/rc.d. Πρέπει να ελέγξετε το script για την ορθότητα του και να το τροποποιήσετε ή να το μετονομάσετε αν χρειάζεται. Δείτε το Εκκινώντας Υπηρεσίες για περισσότερες πληροφορίες. Αντιμετωπίζοντας Χαλασμένα Ports Αν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί, υπάρχουν κάποια πράγματα που μπορείτε να κάνετε: Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο Problem Report database. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη προτεινόμενη διόρθωση. Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε make maintainer ή διαβάστε το Makefile για να βρείτε την διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή $&os;: από το Makefile) καθώς και την έξοδο του σφάλματος. Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο, αλλά από κάποια mailing list. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις έχουν την μορφή freebsd-listname@FreeBSD.org. Παρακαλούμε να το έχετε υπόψη σας κατά τη διατύπωση των ερωτήσεων σας. Συγκεκριμένα, τα ports που φαίνονται ότι συντηρούνται από την freebsd-ports@FreeBSD.org, δεν συντηρούνται από κανέναν στην πραγματικότητα. Διορθώσεις και υποστήριξη, αν υπάρχουν, έρχονται γενικά από την κοινότητα που συμμετέχει στην συγκεκριμένη mailing list. Χρειαζόμαστε πάντοτε περισσότερους εθελοντές! Αν δεν λάβετε απάντηση, μπορείτε να χρησιμοποιήσετε το &man.send-pr.1; για να στείλετε μια αναφορά σφάλματος (δείτε το Γράφοντας Αναφορές Σφάλματος για το &os;). Διορθώστε το! Το Porter's Handbook περιέχει λεπτομερείς πληροφορίες για την υποδομή των Ports ώστε να μπορείτε να διορθώσετε το περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα δικό σας port! Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η κύρια συλλογή πακέτων βρίσκεται στο ftp.FreeBSD.org, στον κατάλογο πακέτων. Πριν τη χρησιμοποιήσετε, ελέγξτε πρώτα το τοπικό σας mirror. Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν, από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα &man.pkg.add.1; για να εγκαταστήσετε το πακέτο στο σύστημα σας.