diff --git a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml index a26a57dcac..c373eb8229 100644 --- a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml @@ -1,700 +1,701 @@ Βιβλιογραφία Αν και τα manual pages παρέχουν μία επίσημη αναφορά για ξεχωριστά τμήματα του FreeBSD λειτουργικού συστήματος, έχουν κακή φήμη για το ότι δεν επεξηγούν πως να ενώσεις τα τμήματα μαζί για να κάνεις όλο το λειτουργικό σύστημα να λειτουργεί ομαλά. Για αυτό, δεν υπάρχει υποκατάστατο από ένα καλό βιβλίο στην διαχείριση συστημάτων &unix; και ένα καλό εγχειρίδιο χρήστη. Βιβλία & Περιοδικά σχετικά με το FreeBSD Διεθνή βιβλία & περιοδικά: Using FreeBSD (σε Παραδοσιακά Κινέζικα). FreeBSD Unleashed (Μετάφραση σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-10201-0. FreeBSD From Scratch First Edition (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-07482-3. FreeBSD From Scratch Second Edition (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-10286-X. FreeBSD Handbook Second Edition (Μετάφραση σε Απλοποιημένα Κινέζικα), εκδόθηκε από την Posts & Telecom Press. ISBN 7-115-10541-3. FreeBSD 3.x Internet (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την Tsinghua University Press. ISBN 7-900625-66-6. FreeBSD & Windows (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Railway Publishing House. ISBN 7-113-03845-X FreeBSD Internet Services HOWTO (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Railway Publishing House. ISBN 7-113-03423-3 FreeBSD for PC 98'ers (στα Γιαπωνέζικα), εκδόθηκε από την SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την CUTT. ISBN 4-906391-22-2 C3055 P2400E. Complete Introduction to FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την ASCII. ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (Γιαπωνέζικη μετάφραση), εκδόθηκε από την ASCII. ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. FreeBSD 4 - Installieren, Konfigurieren, Administrieren (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag, 2001. ISBN 3-932311-88-4. FreeBSD 5 - Installieren, Konfigurieren, Administrieren (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag, 2003. ISBN 3-936546-06-1. FreeBSD de Luxe (στα Γερμανικά), εκδόθηκε από την Verlag Modere Industrie, 2003. ISBN 3-8266-1343-0. FreeBSD Install and Utilization Manual (στα Γιαπωνέζικα), εκδόθηκε από την Mainichi Communications Inc.. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo Building Internet Server with FreeBSD (στην Ινδονησιακή γλώσσα), εκδόθηκε από την Elex Media Komputindo. Absolute BSD: The Ultimate Guide to FreeBSD (Μετάφραση σε Παραδοσιακά Κινέζικα), εκδόθηκε από την GrandTech Press, 2003. ISBN 986-7944-92-5. The FreeBSD 6.0 Book (σε Παραδοσιακά Κινέζικα), εκδόθηκε από την Drmaster, 2006. ISBN 9-575-27878-X. Βιβλία & περιοδικά στην Αγγλική γλώσσα: - Absolute - BSD: The Ultimate Guide to FreeBSD, εκδόθηκε από την - No Starch Press, 2002. - ISBN: 1886411743 + Absolute + FreeBSD, 2nd Edition: The Complete Guide to FreeBSD, + εκδόθηκε από την No Starch Press, 2007. + ISBN: 978-1-59327-151-0 The Complete FreeBSD, εκδόθηκε από την O'Reilly, 2003. ISBN: 0596005164 The FreeBSD Corporate Networker's Guide, εκδόθηκε από την Addison-Wesley, 2000. ISBN: 0201704811 FreeBSD: An Open-Source Operating System for Your Personal Computer, εκδόθηκε από την The Bit Tree Press, 2001. ISBN: 0971204500 Teach Yourself FreeBSD in 24 Hours, εκδόθηκε από την Sams, 2002. ISBN: 0672324245 FreeBSD 6 Unleashed, εκδόθηκε από την Sams, 2006. ISBN: 0672328755 FreeBSD: The Complete Reference, εκδόθηκε από την McGrawHill, 2003. ISBN: 0072224096 BSD Magazine, εκδίδεται από την Software Press Sp. z o.o. SK. ISSN 1898-9144 Οδηγοί χρήστη Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD User's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Can't Find Your UNIX System Administrator. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6 Το Ohio State University έγραψε τα Εισαγωγικά μαθήματα UNIX που διατίθενται σε HTML και σε μορφή PostScript. Μια Ιταλική μετάφραση αυτού του κειμένου διατίθεται ως μέρος του FreeBSD Italian Documentation Project. Jpman Project, Japan FreeBSD Users Group. FreeBSD User's Reference Manual (Japanese translation). Mainichi Communications Inc., 1998. ISBN4-8399-0088-4 P3800E. Το Edinburgh University έγραψε ένα Online οδηγό για νέους στο περιβάλλον του UNIX. Οδηγοί διαχειριστή Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, Æleen. Essential System Administration, 2nd Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook. 3rd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group. FreeBSD System Administrator's Manual (Γιαπωνέζικη μετάφραση). Mainichi Communications Inc., 1998. ISBN4-8399-0109-0 P3300E. Dreyfus, Emmanuel. Cahiers de l'Admin: BSD 2nd Ed. (στα Γαλλικά), Eyrolles, 2004. ISBN 2-212-11463-X Οδηγοί προγραμματιστών Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language. 2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8 Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Spinellis, Diomidis. Code Reading: The Open Source Perspective. Addison-Wesley, 2003. ISBN 0-201-79940-5 Spinellis, Diomidis. Code Quality: The Open Source Perspective. Addison-Wesley, 2006. ISBN 0-321-16607-8 Stevens, W. Richard and Stephen A. Rago. Advanced Programming in the UNIX Environment. 2nd Ed. Reading, Mass. : Addison-Wesley, 2005. ISBN 0-201-43307-9 Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobb's Journal. 19(15), December 1994. pp68-71, 97-99. Το εσωτερικό του λειτουργικού συστήματος Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobb's Journal. January 1991-July 1992. Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 (Το κεφάλαιο 2 από αυτό το βιβλίο διατίθεται online ως μέρος του FreeBSD Documentation Project, και το κεφάλαιο 9 εδώ.) Marshall Kirk McKusick, George V. Neville-Neil The Design and Implementation of the FreeBSD Operating System. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2 Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X Αναφορές ασφαλείας Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8 Αναφορές υλικού Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 Η Intel Corporation δημοσιεύει τεκμηρίωση για τις CPUs, τα chipsets και πρότυπα στο developer web site, συνήθως ως αρχεία PDF. Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4 Ιστορία του &unix; Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Γνωστό και ως το Jargon File Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Εκτός κυκλοφορίας, αλλά διατίθεται online. Don Libes, Sandy Ressler Life with UNIX — special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. η το /usr/share/misc/bsd-family-tree σε ένα FreeBSD μηχάνημα. Networked Computer Science Technical Reports Library. Παλαιές BSD εκδόσεις από το Computer Systems Research group (CSRG). : Το 4CD set έχει όλες τις BSD εκδόσεις από την 1BSD μέχρι την 4.4BSD και την 4.4BSD-Lite2 (αλλά όχι την 2.11BSD, δυστυχώς). Το τελευταίο δισκάκι περιέχει επίσης τον τελικό πηγαίο κώδικα συν τα αρχεία SCCS. Περιοδικά και εφημερίδες The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin — The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688 freeX — Das Magazin für Linux - BSD - UNIX (στα Γερμανικά) Computer- und Literaturverlag GmbH, ISSN 1436-7033 diff --git a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml index c4ba2745d4..17c8efc503 100644 --- a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml @@ -1,3437 +1,3437 @@ Jim Mock Αναδομήθηκε, αναδιοργανώθηκε, και τμήματα του ανανεώθηκαν από τον Jordan Hubbard Αρχική συνεισφορά από τους Poul-Henning Kamp John Polstra Nik Clayton Ενημέρωση και Αναβάθμιση του &os; Σύνοψη Το &os; βρίσκεται υπό συνεχή εξέλιξη μεταξύ των επίσημων εκδόσεων του. Μερικοί άνθρωποι προτιμούν να χρησιμοποιούν τις επίσημες εκδόσεις, ενώ άλλοι προτιμούν να κρατούν το σύστημα τους ενημερωμένο με τις τελευταίες εξελίξεις. Ωστόσο, ακόμα και οι επίσημες εκδόσεις ενημερώνονται συχνά με διορθώσεις κρίσιμων σφαλμάτων και ασφαλείας. Όποια έκδοση και να χρησιμοποιήσετε, το &os; παρέχει όλα τα απαραίτητα εργαλεία για να κρατήσετε το σύστημα σας ενημερωμένο, και επίσης σας επιτρέπει να αναβαθμιστείτε εύκολα σε κάποια επόμενη έκδοση. Το κεφάλαιο αυτό θα σας βοηθήσει να αποφασίσετε αν θέλετε να παρακολουθείτε το σύστημα ανάπτυξης, ή αν θα προτιμήσετε να παραμείνετε σε μια από τις παγιωμένες εκδόσεις. Θα παρουσιάσουμε επίσης τα βασικά εργαλεία που απαιτούνται για την ενημέρωση και αναβάθμιση του συστήματος. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Ποια βοηθητικά προγράμματα μπορείτε να χρησιμοποιήσετε για να ενημερώσετε το σύστημα και την Συλλογή των Ports. Πως να διατηρείτε το σύστημα σας ενημερωμένο με τα προγράμματα freebsd-update CVSup, CVS, ή CTM. Πως να συγκρίνετε την κατάσταση ενός εγκατεστημένου συστήματος, με αναφορά ένα γνωστό και εγγυημένα σωστό σύστημα. Πως να διατηρήσετε την τεκμηρίωση σας ενημερωμένη μέσω του CVSup ή των ports της τεκμηρίωσης . Τη διαφορά μεταξύ των δύο κλάδων που βρίσκονται σε εξέλιξη: του &os.stable; και του &os.current;. Πως να ξαναφτιάξετε και να επανεγκαταστήσετε ολόκληρο το βασικό σύστημα με την make buildworld (κλπ). Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να ρυθμίσετε σωστά τη σύνδεση σας στο δίκτυο (). Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (). Στο κεφάλαιο αυτό γίνεται συχνά χρήση της εντολής cvsup για την ανάκτηση ή ενημέρωση των αρχείων πηγαίου κώδικα του &os;. Για να την χρησιμοποιήσετε, θα πρέπει να εγκαταστήσετε ένα πακέτο ή port όπως το net/cvsup-without-gui. Αν χρησιμοποιείτε &os; 6.2-RELEASE ή νεώτερο, μπορείτε να αντικαταστήσετε αυτή την εντολή με την &man.csup.1; η οποία ανήκει πλέον στο βασικό σύστημα. Tom Rhodes Γράφηκε από τον Colin Percival Βασίστηκε σε σημειώσεις που παρείχε ο Ενημερώνοντας το &os; Updating and Upgrading FreeBSD freebsd-update updating-upgrading Η εφαρμογή ενημερώσεων ασφαλείας αποτελεί ένα σημαντικό τμήμα της συντήρησης λογισμικού, ειδικά όταν πρόκειται για το λειτουργικό σύστημα. Για μεγάλο διάστημα, η διαδικασία αυτή δεν ήταν εύκολη στο &os;. Έπρεπε να εφαρμοστούν patches στον πηγαίο κώδικα, να γίνει μεταγλώττιση του από την αρχή, και να εγκατασταθούν ξανά τα νέα εκτελέσιμα. Αυτό δεν είναι πλέον αναγκαίο, καθώς το &os; διαθέτει τώρα ένα βοηθητικό πρόγραμμα, το freebsd-update. Το πρόγραμμα παρέχει δύο διαφορετικές λειτουργίες. Η πρώτη είναι η δυνατότητα δυαδικής (binary) ενημέρωσης του βασικού συστήματος με τις τελευταίες διορθώσεις ασφάλειας και λαθών, χωρίς να χρειάζεται ξανά μεταγλώττιση και εγκατάσταση. Η δεύτερη είναι η δυνατότητα αναβάθμισης του συστήματος σε μια νέα μικρή ή μεγάλη επίσημη έκδοση (release). Δυαδικές διορθώσεις λαθών και ασφάλειας, διατίθενται για όλες τις αρχιτεκτονικές και εκδόσεις που υποστηρίζονται από την ομάδα ασφάλειας. Ωστόσο, ορισμένα χαρακτηριστικά όπως η δυνατότητα αναβάθμισης του λειτουργικού σε μια νέα έκδοση, απαιτούν την τελευταία έκδοση του &man.freebsd-update.8; και του &os; 6.3. Πριν προχωρήσετε στην αναβάθμιση σε μια νέα έκδοση, θα πρέπει να διαβάσετε τις σχετικές με αυτήν ανακοινώσεις, καθώς μπορεί να περιέχουν σημαντικές πληροφορίες. Μπορείτε να δείτε τις ανακοινώσεις εκδόσεων στην παρακάτω τοποθεσία: . Αν υπάρχει κάποιο crontab που χρησιμοποιεί τις δυνατότητες του freebsd-update, θα πρέπει να απενεργοποιηθεί πριν ξεκινήσει η παρακάτω διαδικασία. Μπορείτε να εγκαταστήσετε την τελευταία έκδοση του freebsd-update κατεβάζοντας το συμπιεσμένο πακέτο από το παραπάνω URL και εκτελώντας τις παρακάτω εντολές: &prompt.root; gunzip -c freebsd-update-upgrade.tgz | tar xvf - &prompt.root; mv freebsd-update.sh /usr/sbin/freebsd-update &prompt.root; mv freebsd-update.conf /etc Δεν απαιτείται να κατεβάσετε την τελευταία έκδοση, αν χρησιμοποιείτε κάποια από τις τρέχουσες εκδόσεις του &os;. Το Αρχείο Ρυθμίσεων Κάποιοι χρήστες ίσως θέλουν να αλλάξουν το προεπιλεγμένο αρχείο ρυθμίσεων /etc/freebsd-update.conf, ώστε να έχουν καλύτερο έλεγχο της διαδικασίας. Οι επιλογές είναι γενικά αρκετά καλά τεκμηριωμένες, αλλά οι παρακάτω ίσως να χρειάζονται κάποιες επιπλέον επεξηγήσεις: # Components of the base system which should be kept updated. Components src world kernel Αυτή η παράμετρος ελέγχει ποια τμήματα του &os; θα διατηρούνται ενημερωμένα. Η προεπιλογή είναι να ενημερώνεται ο πηγαίος κώδικας, όλο το βασικό σύστημα, και ο πυρήνας. Τα τμήματα είναι τα ίδια που διατίθενται και κατά την εγκατάσταση, για παράδειγμα αν βάλετε την επιλογή world/games θα εγκαθίστανται ενημερώσεις για τα παιχνίδια. Αν βάλετε src/bin θα επιτρέψετε την ενημέρωση του πηγαίου κώδικα του καταλόγου src/bin. Η καλύτερη επιλογή είναι να αφήσετε εδώ την προεπιλεγμένη τιμή, καθώς αν την αλλάξετε ώστε να περιέχει συγκεκριμένα μόνο τμήματα, θα αναγκαστείτε να αναφέρετε χωριστά μέσα στο αρχείο ρυθμίσεων κάθε τμήμα που θέλετε να ενημερώνεται. Αυτό ίσως έχει καταστροφικά αποτελέσματα, καθώς είναι πιθανό ο πηγαίος κώδικας και τα εκτελέσιμα προγράμματα να μην είναι πλέον σε συγχρονισμό μεταξύ τους. # Paths which start with anything matching an entry in an IgnorePaths # statement will be ignored. IgnorePaths Προσθέστε διαδρομές σε καταλόγους, όπως /bin ή /sbin για να αφήσετε απείραχτους τους συγκεκριμένους καταλόγους κατά την διαδικασία ενημέρωσης. Η επιλογή αυτή μπορεί να χρησιμοποιηθεί για να αποτρέψει το freebsd-update να γράψει πάνω σε πιθανόν δικές σας τοπικές αλλαγές. # Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile Η επιλογή αυτή θα ενημερώσει τα αρχεία ρυθμίσεων στους καταλόγους που καθορίζονται, μόνο αν αυτά δεν έχουν μεταβληθεί από το χρήστη. Αν υπάρχουν τοπικές αλλαγές, δεν θα γίνει ενημέρωση. Υπάρχει μια ακόμα επιλογή, η KeepModifiedMetadata, η οποία οδηγεί το freebsd-update να αποθηκεύσει τις αλλαγές μεταξύ των δύο εκδόσεων κατά τη διάρκεια της συγχώνευσης (merge). # When upgrading to a new &os; release, files which match MergeChanges # will have any local changes merged into the version from the new release. MergeChanges /etc/ /var/named/etc/ Πρόκειται για τη λίστα των καταλόγων που περιέχουν αρχεία ρυθμίσεων, και στα οποία το freebsd-update θα επιχειρεί την διαδικασία συγχώνευσης αλλαγών. Η διαδικασία συγχώνευσης γίνεται με μια σειρά από patches τύπου &man.diff.1; παρόμοια με το &man.mergemaster.8; αλλά με λιγότερες επιλογές. Οι συγχωνεύσεις είτε γίνονται δεκτές, είτε προκαλούν το άνοιγμα κάποιου συντάκτη κειμένου, διαφορετικά η εκτέλεση του freebsd-update ακυρώνεται. Αν δεν είστε σίγουρος, κρατήστε αντίγραφο ασφαλείας του καταλόγου /etc και απλώς δεχθείτε τις αλλαγές. Δείτε το για περισσότερες πληροφορίες σχετικά με την εντολή mergemaster. # Directory in which to store downloaded updates and temporary # files used by &os; Update. # WorkDir /var/db/freebsd-update Στον κατάλογο αυτό φυλάσσονται όλα τα patches και τα προσωρινά αρχεία. Σε περιπτώσεις όπου ο χρήστης εκτελεί αναβάθμιση σε μια νεότερη έκδοση του &os;, θα πρέπει να διαθέτει τουλάχιστον ένα gigabyte ελεύθερου χώρου. # When upgrading between releases, should the list of Components be # read strictly (StrictComponents yes) or merely as a list of components # which *might* be installed of which &os; Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no Αν θέσετε την παραπάνω επιλογή στο yes, το freebsd-update θα υποθέσει ότι η λίστα Components είναι πλήρης και δεν θα επιχειρήσει να προχωρήσει σε αλλαγές εκτός λίστας. Ουσιαστικά, το freebsd-update θα προσπαθήσει να ενημερώσει κάθε αρχείο που ανήκει στη λίστα Components. Patches Σχετικά με την Ασφάλεια Τα patches που σχετίζονται με την ασφάλεια, αποθηκεύονται σε ένα απομακρυσμένο μηχάνημα και μπορούν να μεταφορτωθούν και να εγκατασταθούν με την ακόλουθη εντολή: &prompt.root; freebsd-update fetch &prompt.root; freebsd-update install Αν με την παραπάνω εντολή εγκατασταθούν ενημερώσεις στον πυρήνα, θα χρειαστεί να επανεκκινήσετε το σύστημα. Αν όλα πάνε καλά, το σύστημα θα είναι πλέον ενημερωμένο και μπορείτε να εκτελείτε το freebsd-update αυτόματα με την βοήθεια του &man.cron.8;. Μια απλή καταχώριση στο αρχείο /etc/crontab είναι επαρκής για αυτό το σκοπό: @daily root freebsd-update cron Η παραπάνω καταχώριση ορίζει ότι το freebsd-update θα εκτελείται μια φορά την ημέρα. Με τον τρόπο αυτό, και όταν η εκτέλεση είναι μέσω της επιλογής , το freebsd-update απλώς θα ελέγχει για ενημερώσεις. Αν υπάρχουν, η εφαρμογή θα τις κατεβάζει, αλλά δεν θα τις εγκαθιστά. Θα στέλνει όμως ένα email στο χρήστη root ώστε να τις εγκαταστήσει χειροκίνητα. Αν οτιδήποτε πάει στραβά, το freebsd-update έχει την ικανότητα να επιστρέφει στην προηγούμενη σταθερή κατάσταση, αναιρώντας το τελευταίο σετ αλλαγών με την ακόλουθη εντολή: &prompt.root; freebsd-update rollback Με την ολοκλήρωση της εντολής, θα πρέπει να επανεκκινήσετε το σύστημα αν έχουν γίνει αλλαγές στον πυρήνα ή σε κάποιο από τα αρθρώματα του. Αυτό θα επιτρέψει στο &os; να φορτώσει τα νέα εκτελέσιμα στη μνήμη. Το βοηθητικό πρόγραμμα freebsd-update μπορεί να ενημερώσει αυτόματα μόνο τον πυρήνα GENERIC. Αν χρησιμοποιείται προσαρμοσμένος πυρήνας, θα πρέπει να μεταγλωττιστεί ξανά, όταν το freebsd-update τελειώσει με την εγκατάσταση των υπόλοιπων ενημερώσεων. Ωστόσο, το freebsd-update θα ανιχνεύσει και θα ενημερώσει τον πυρήνα GENERIC στο /boot/GENERIC (αν υπάρχει), ακόμα και αν δεν είναι ο ενεργός πυρήνας του συστήματος (αυτός που εκτελείται τη συγκεκριμένη στιγμή). Είναι γενικά καλή ιδέα να έχετε πάντα ένα αντίγραφο του πυρήνα GENERIC στον κατάλογο /boot/GENERIC. Θα σας βοηθήσει στην διάγνωση διάφορων προβλημάτων, καθώς και στην αναβάθμιση σε επόμενες εκδόσεις του &os;, μέσω του freebsd-update. Η διαδικασία αυτή περιγράφεται στο . Αν δεν έχουν γίνει αλλαγές στις προεπιλεγμένες ρυθμίσεις στο αρχείο /etc/freebsd-update.conf, το freebsd-update θα εγκαταστήσει τα ανανεωμένα αρχεία πηγαίου κώδικα μαζί με τις υπόλοιπες ενημερώσεις. Μπορείτε έπειτα να προχωρήσετε στη μεταγλώττιση και εγκατάσταση νέου προσαρμοσμένου πυρήνα, με το συνήθη τρόπο. Οι ενημερώσεις που διανέμονται μέσω του freebsd-update δεν περιλαμβάνουν πάντοτε αλλαγές στον πυρήνα. Δεν είναι απαραίτητο να επαναμεταγλωττίσετε τον προσαρμοσμένο πυρήνα σας, αν η εκτέλεση του freebsd-update install δεν επέφερε αλλαγές στα αρχεία πηγαίου κώδικα του πυρήνα. Ωστόσο, το freebsd-update ενημερώνει πάντοτε το αρχείο /usr/src/sys/conf/newvers.sh. Το αρχείο αυτό περιέχει το τρέχον επίπεδο ενημερώσεων (patch level) το οποίο και αναφέρεται ως αριθμός -p από εντολές όπως η uname -r. Μεταγλωττίζοντας ξανά τον προσαρμοσμένο πυρήνα σας (ακόμα και αν δεν υπάρχουν άλλες αλλαγές) θα δώσετε τη δυνατότητα στην &man.uname.1; να αναφέρει με ακρίβεια το επίπεδο ενημερώσεων. Αυτό μπορεί να είναι ιδιαίτερα χρήσιμο όταν συντηρείτε πολλαπλά συστήματα, καθώς σας επιτρέπει να αξιολογήσετε με μια ματιά τι ενημερώσεις έχουν εγκατασταθεί στο καθένα. Αναβαθμίσεις σε Μικρές και Μεγάλες Εκδόσεις Η διαδικασία αυτή θα απομακρύνει τα παλιά αρχεία αντικειμενικού κώδικα (object files) καθώς και τις παλιές βιβλιοθήκες, κάνοντας τις περισσότερες εφαρμογές τρίτων κατασκευαστών να μη λειτουργούν. Σας συνιστούμε είτε να απεγκαταστήσετε όλα τα εγκατεστημένα ports και να τα εγκαταστήσετε ξανά, ή να τα αναβαθμίσετε αργότερα, χρησιμοποιώντας το βοηθητικό πρόγραμμα ports-mgmt/portupgrade. Οι περισσότεροι χρήστες θα θέλουν να κάνουν μια δοκιμαστική μεταγλώττιση χρησιμοποιώντας την ακόλουθη εντολή: &prompt.root; portupgrade -af Με αυτό τον τρόπο εξασφαλίζεται ότι τα πάντα θα επανεγκατασταθούν σωστά. Σημειώστε ότι αν θέσετε την μεταβλητή περιβάλλοντος BATCH στην τιμή yes, όλες οι πιθανές ερωτήσεις που θα εμφανιστούν κατά τη διαδικασία, θα απαντηθούν αυτόματα με yes. Έτσι δεν υπάρχει πλέον ανάγκη για παρέμβαση του χρήστη κατά τη διάρκεια της διαδικασίας μεταγλώττισης. Αν χρησιμοποιείται προσαρμοσμένος πυρήνας, η διαδικασία αναβάθμισης είναι ελαφρά πιο πολύπλοκη. Θα χρειαστείτε ένα αντίγραφο του πυρήνα GENERIC στον κατάλογο /boot/GENERIC. Αν δεν υπάρχει ήδη ο πυρήνας GENERIC στο σύστημα σας, μπορείτε να τον ανακτήσετε χρησιμοποιώντας μια από τις παρακάτω μεθόδους: Αν έχετε μεταγλωττίσει προσαρμοσμένο πυρήνα μόνο μια φορά, ο πυρήνας στον κατάλογο /boot/kernel.old είναι στην πραγματικότητα ο GENERIC. Απλώς μετονομάστε τον κατάλογο σε /boot/GENERIC. Αν έχετε φυσική πρόσβαση στο μηχάνημα, μπορείτε να εγκαταστήσετε ένα αντίγραφο του πυρήνα GENERIC από το CD-ROM της εγκατάστασης. Τοποθετήστε το CD-ROM στον οδηγό και χρησιμοποιήστε τις παρακάτω εντολές: &prompt.root; mount /cdrom &prompt.root; cd /cdrom/X.Y-RELEASE/kernels &prompt.root; ./install.sh GENERIC Αντικαταστήστε το X.Y-RELEASE με τους πραγματικούς αριθμούς της έκδοσης που χρησιμοποιείτε. Ο πυρήνας GENERIC θα εγκατασταθεί από προεπιλογή στον κατάλογο /boot/GENERIC. Αν δεν έχετε κάποια από τις παραπάνω επιλογές, μπορείτε να μεταγλωττίσετε και να εγκαταστήσετε τον πυρήνα GENERIC μέσω του πηγαίου κώδικα: &prompt.root; cd /usr/src/ &prompt.root; env DESTDIR=/boot/GENERIC make kernel &prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC &prompt.root; rm -rf /boot/GENERIC/boot Για να αναγνωριστεί αυτός ο πυρήνας ως GENERIC από το freebsd-update, δεν θα πρέπει να έχουν γίνει αλλαγές στο αρχείο ρυθμίσεων του GENERIC. Συνίσταται επίσης η μεταγλώττιση να γίνει χωρίς άλλες εξειδικευμένες ρυθμίσεις (κατά προτίμηση με κενό το /etc/make.conf). Δεν χρειάζεται τη δεδομένη στιγμή να επανεκκινήσετε με τον πυρήνα GENERIC. Είναι δυνατές οι αναβαθμίσεις τόσο σε μικρές όσο και σε μεγάλες εκδόσεις, δίνοντας στην εντολή freebsd-update τον επιθυμητό αριθμό έκδοσης. Για παράδειγμα, η ακόλουθη εντολή θα αναβαθμίσει το σύστημα σε &os; 6.4: &prompt.root; freebsd-update -r 6.4-RELEASE upgrade Μετά τη λήψη της εντολής, το freebsd-update θα αξιολογήσει την κατάσταση του συστήματος και του αρχείου ρυθμίσεων του, σε μια απόπειρα να μαζέψει τις απαραίτητες πληροφορίες για την αναβάθμιση του συστήματος. Οι πληροφορίες που ανιχνεύθηκαν θα εμφανιστούν στην οθόνη με τη μορφή μιας λίστας εγκατεστημένων προγραμμάτων. Για παράδειγμα: Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/info world/lib32 world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic world/catpages world/dict world/doc world/games world/proflibs Does this look reasonable (y/n)? y Στο σημείο αυτό, το freebsd-update θα κατεβάσει όλα τα αρχεία που απαιτούνται για την αναβάθμιση. Σε μερικές περιπτώσεις, ο χρήστης θα κληθεί να απαντήσει σε ερωτήσεις σχετικά με το τι θα εγκατασταθεί ή πως πρέπει να προχωρήσει η διαδικασία. Όταν χρησιμοποιείται προσαρμοσμένος πυρήνας, το παραπάνω βήμα θα προκαλέσει την εμφάνιση της παρακάτω προειδοποίησης: WARNING: This system is running a "MYKERNEL" kernel, which is not a kernel configuration distributed as part of FreeBSD 6.3-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install" Μπορείτε να αγνοήσετε αυτή την προειδοποίηση. Θα χρησιμοποιήσουμε τον ενημερωμένο πυρήνα GENERIC ως ενδιάμεσο βήμα στη διαδικασία αναβάθμισης. Αφού μεταφορτωθούν όλα τα patches στο τοπικό σύστημα, θα γίνει και η εφαρμογή τους. Η διαδικασία αυτή ίσως πάρει λίγο χρόνο, ανάλογα με την ταχύτητα και το φορτίο του μηχανήματος. Έπειτα θα γίνει η συγχώνευση των αρχείων ρυθμίσεων. Αυτό το μέρος της διαδικασίας απαιτεί παρέμβαση του χρήστη, καθώς σε κάποια αρχεία θα χρειαστεί η συγχώνευση να γίνει χειροκίνητα με τη βοήθεια κάποιου συντάκτη κειμένου. Ο χρήστης θα ενημερώνεται για το αποτέλεσμα κάθε επιτυχημένης συγχώνευσης καθώς εξελίσσεται η διαδικασία. Σε περίπτωση αποτυχημένης συγχώνευσης (ή αγνόησης της), η διαδικασία αναβάθμισης θα διακοπεί. Ενδεχομένως να θέλετε να κρατήσετε αντίγραφο ασφαλείας του καταλόγου /etc και να συγχωνεύσετε αργότερα (χειροκίνητα) κάποια σημαντικά αρχεία, όπως το master.passwd ή το group. Στο σημείο αυτό δεν έχει γίνει ακόμα καμιά αλλαγή στο σύστημα, καθώς όλη η διαδικασία της αναβάθμισης και συγχώνευσης γίνεται σε διαφορετικό κατάλογο. Όταν εφαρμοστούν επιτυχώς όλα τα patches και ολοκληρωθεί με επιτυχία η διαδικασία της συγχώνευσης όλων των αρχείων ρύθμισης, ο χρήστης θα πρέπει να επιβεβαιώσει την τελική εγκατάσταση. Με το τέλος αυτής τη διαδικασίας, η αναβάθμιση μπορεί να οριστικοποιηθεί στο δίσκο, με τη χρήση της ακόλουθης εντολής: &prompt.root; freebsd-update install Στην πρώτη φάση, θα αλλαχθεί ο πυρήνας και τα σχετικά αρθρώματα. Στο σημείο αυτό, θα πρέπει να γίνει επανεκκίνηση του μηχανήματος. Σε μηχάνημα με προσαρμοσμένο πυρήνα, χρησιμοποιήστε την εντολή &man.nextboot.8; ώστε να θέσετε τον πυρήνα για την επόμενη εκκίνηση στον /boot/GENERIC (ο οποίος έχει ήδη αναβαθμιστεί): &prompt.root; nextboot -k GENERIC Πριν επανεκκινήσετε με τον πυρήνα GENERIC, βεβαιωθείτε ότι περιέχει όλα τα προγράμματα οδήγησης που απαιτούνται για την επιτυχή εκκίνηση του συστήματος σας (και τη λειτουργία του δικτύου, αν αναβαθμίζετε κάποιο απομακρυσμένο μηχάνημα). Ειδικότερα, αν ο προηγούμενος προσαρμοσμένος πυρήνας περιείχε λειτουργίες που συνήθως παρέχονται από αρθρώματα (modules), βεβαιωθείτε ότι φροντίσατε να φορτωθούν προσωρινά στον πυρήνα GENERIC χρησιμοποιώντας τις δυνατότητες του αρχείου /boot/loader.conf. Ίσως επίσης να θέλετε να απενεργοποιήσετε υπηρεσίες, προσαρτήσεις δίσκων και δικτύου κ.λ.π. που δεν είναι απαραίτητες, μέχρι την ολοκλήρωση της διαδικασίας αναβάθμισης. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να επανεκκινήσετε το μηχάνημα με τον νέο πυρήνα: &prompt.root; shutdown -r now Μόλις το σύστημα επανέλθει σε λειτουργία, θα πρέπει να εκτελέσετε ξανά το freebsd-update. Η προηγούμενη λειτουργία έχει αποθηκευθεί, και έτσι το freebsd-update δεν θα ξεκινήσει από την αρχή, αλλά θα απομακρύνει όλες τις παλιές κοινόχρηστες βιβλιοθήκες και τα αρχεία αντικειμενικού κώδικα. Για να συνεχίσετε σε αυτό το στάδιο, δώστε την ακόλουθη εντολή: &prompt.root; freebsd-update install Ανάλογα με το αν υπήρξαν αλλαγές στους αριθμούς εκδόσεων των βιβλιοθηκών, ίσως να υπάρχουν μόνο δύο φάσεις εγκατάστασης αντί για τρεις. Όλο το λογισμικό τρίτου κατασκευαστή θα πρέπει τώρα να μεταγλωττιστεί και να επανεγκατασταθεί από την αρχή. Αυτό απαιτείται καθώς το εγκατεστημένο λογισμικό ίσως εξαρτάται από βιβλιοθήκες οι οποίες αφαιρέθηκαν κατά τη διαδικασία της αναβάθμισης. Μπορείτε να χρησιμοποιήσετε την εντολή ports-mgmt/portupgrade για να αυτοματοποιήσετε αυτή τη διαδικασία. Για να ξεκινήσετε, δώστε τις παρακάτω εντολές: &prompt.root; portupgrade -f ruby &prompt.root; rm /var/db/pkg/pkgdb.db &prompt.root; portupgrade -f ruby18-bdb &prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db &prompt.root; portupgrade -af Μόλις ολοκληρωθεί το παραπάνω, ολοκληρώστε τη διαδικασία αναβάθμισης με μια τελευταία κλήση της εντολής freebsd-update. Δώστε την παρακάτω εντολή για να ολοκληρώσετε οτιδήποτε έχει απομείνει στη διαδικασία αναβάθμισης: &prompt.root; freebsd-update install Αν χρησιμοποιούσατε προσωρινά τον πυρήνα GENERIC, αυτή είναι η κατάλληλη στιγμή για να μεταγλωττίσετε και να εγκαταστήσετε νέο προσαρμοσμένο πυρήνα, με το συνήθη τρόπο. Επανεκκινήστε το μηχάνημα σας στην νέα έκδοση του &os;. Η διαδικασία έχει ολοκληρωθεί. Σύγκριση Κατάστασης του Συστήματος Το βοηθητικό πρόγραμμα freebsd-update μπορεί να χρησιμοποιηθεί για να ελέγξετε την κατάσταση της εγκατεστημένης έκδοσης του &os; σε σχέση με μια γνωστή και σωστή εγκατάσταση. Η επιλογή αυτή συγκρίνει και αξιολογεί την τρέχουσα έκδοση των προγραμμάτων συστήματος, των βιβλιοθηκών και των αρχείων ρύθμισης. Για να ξεκινήσετε τη σύγκριση, δώστε την ακόλουθη εντολή: &prompt.root; freebsd-update IDS >> outfile.ids Αν και το όνομα της εντολής είναι IDS, δεν θα πρέπει σε καμιά περίπτωση να θεωρηθεί υποκατάστατο ενός συστήματος ανίχνευσης εισβολέα (intrusion detection system) όπως είναι για παράδειγμα το security/snort. Καθώς το freebsd-update αποθηκεύει τα δεδομένα του στο δίσκο, υπάρχει πάντα η πιθανότητα να έχει γίνει αλλοίωση τους. Αν και η πιθανότητα αυτή μπορεί να μειωθεί χρησιμοποιώντας τη ρύθμιση kern.securelevel και αποθηκεύοντας τα δεδομένα της εντολής freebsd-update σε ένα σύστημα αρχείων μόνο για ανάγνωση, μια ακόμα καλύτερη λύση θα ήταν να συγκρίνετε το σύστημα με κάποιο δίσκο που θεωρείτε σίγουρα ασφαλή. Μπορείτε να χρησιμοποιήσετε ένα δίσκο DVD ή ένα εξωτερικό δίσκο USB που φυλάσσετε σε ασφαλή τοποθεσία. Θα γίνει τώρα μια επιθεώρηση του συστήματος και θα εκτυπωθεί μια λίστα από αρχεία και τιμές hash του τύπου &man.sha256.1;, τόσο για το εγκατεστημένο όσο και για το γνωστό σύστημα. Επειδή πρόκειται για μεγάλη λίστα, την ανακατευθύνουμε στο αρχείο outfile.ids. Στην οθόνη το κείμενο θα κυλούσε πολύ γρήγορα, και σύντομα θα γέμιζε την προσωρινή μνήμη απεικόνισης της κονσόλας. Οι γραμμές αυτές έχουν γενικά μεγάλο μήκος, αλλά είναι εύκολο να επεξεργαστούμε την έξοδο. Για παράδειγμα, για να δείτε μια λίστα όλων των αρχείων που διαφέρουν από αυτά της επίσημης έκδοσης, δώστε την ακόλουθη εντολή: &prompt.root; cat outfile.ids | awk '{ print $1 }' | more /etc/master.passwd /etc/motd /etc/passwd /etc/pf.conf Τα παραπάνω είναι μόνο ένα μέρος της εξόδου, υπάρχουν ακόμα πολλά διαφορετικά αρχεία. Κάποια από αυτά τα αρχεία είναι φυσιολογικό να έχουν τροποποιηθεί. Για παράδειγμα, το /etc/passwd έχει τροποποιηθεί, καθώς έχουν προστεθεί χρήστες στο σύστημα. Σε μερικές περιπτώσεις, μπορεί να υπάρχουν και άλλα αρχεία, όπως π.χ. αρθρώματα πυρήνα τα οποία διαφέρουν αφού έχουν ενημερωθεί μέσω της freebsd-update. Για να εξαιρέσετε συγκεκριμένα αρχεία ή καταλόγους, προσθέστε τα στην επιλογή IDSIgnorePaths στο αρχείο ρυθμίσεων /etc/freebsd-update.conf. Εκτός από την χρήση που αναφέραμε προηγουμένως, το σύστημα αυτό μπορεί να χρησιμοποιηθεί και ως τμήμα μιας λεπτομερούς διαδικασίας αναβάθμισης. Tom Rhodes Γράφηκε από τον Colin Percival Βασισμένο σε σημειώσεις που παρείχε ο Portsnap: Ένα Εργαλείο Ενημέρωσης της Συλλογής των Ports Updating and Upgrading Portsnap Updating and Upgrading Το βασικό σύστημα του &os; περιλαμβάνει επίσης ένα βοηθητικό πρόγραμμα για την ενημέρωση της Συλλογής των Ports. Πρόκειται για το &man.portsnap.8;. Όταν το εκτελέσετε, θα συνδεθεί σε ένα απομακρυσμένο διακομιστή, θα επαληθεύσει το κλειδί του πηγαίου κώδικα, και θα κατεβάσει ένα νέο αντίγραφο της Συλλογής των Ports. Το κλειδί χρησιμοποιείται για να επαληθεύσει την ακεραιότητα όλων των αρχείων που μεταφορτώνονται, εξασφαλίζοντας ότι δεν έχουν αλλοιωθεί κατά την μεταφορά. Για να κατεβάσετε τα τελευταία αρχεία της Συλλογής των Ports, εκτελέστε την ακόλουθη εντολή: &prompt.root; portsnap fetch Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found. Fetching snapshot tag from portsnap1.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done. Το παραπάνω παράδειγμα δείχνει ότι το &man.portsnap.8; βρήκε και επαλήθευσε αρκετά patches τα οποία πρέπει να εφαρμοστούν στο υπάρχον δέντρο των ports. Αυτό δείχνει επίσης ότι το πρόγραμμα έχει εκτελεστεί κατά το παρελθόν. Αν αυτή ήταν η πρώτη φορά που εκτελούνταν, θα γίνονταν απλώς κατέβασμα της συλλογής. Όταν το &man.portsnap.8; εκτελέσει επιτυχώς τη λειτουργία fetch, η Συλλογή των Ports και τα αντίστοιχα patches έχουν αποθηκευθεί στο τοπικό σύστημα και έχει γίνει η επαλήθευση τους. Την πρώτη φορά που θα εκτελέσετε το portsnap, χρησιμοποιήστε το extract για να εγκαταστήσετε τα ενημερωμένα αρχεία: &prompt.root; portsnap extract /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk ... Σε κάθε εκτέλεση μετά την πρώτη φορά, χρησιμοποιήστε το update μετά την εκτέλεση της portsnap fetch: &prompt.root; portsnap update Η διαδικασία έχει πλέον ολοκληρωθεί, και μπορείτε να εγκαταστήσετε ή να αναβαθμίσετε εφαρμογές χρησιμοποιώντας την ενημερωμένη Συλλογή των Ports. Μπορείτε να εκτελέσετε τις διαδικασίες fetch και extract ή update διαδοχικά, όπως φαίνεται στο παρακάτω παράδειγμα: &prompt.root; portsnap fetch update Ενημερώνοντας την Τεκμηρίωση Updating and Upgrading Documentation Updating and Upgrading Εκτός από το βασικό σύστημα και την Συλλογή των Ports, η τεκμηρίωση αποτελεί επίσης βασικό τμήμα ενός συστήματος &os;. Αν και πάντα μπορείτε να βρείτε την πιο πρόσφατη τεκμηρίωση στην δικτυακή τοποθεσία του &os;, ορισμένοι χρήστες ίσως έχουν αργή ή μη σταθερή σύνδεση με το Διαδίκτυο. Ευτυχώς υπάρχουν αρκετοί τρόποι για να ενημερώσετε την τεκμηρίωση η οποία παρέχεται με κάθε επίσημη έκδοση, διατηρώντας το δικό σας τοπικό αντίγραφο της πιο πρόσφατης τεκμηρίωσης του &os;. Χρησιμοποιώντας το CVSup για την Ενημέρωση της Τεκμηρίωσης Ο πηγαίος κώδικας και το εγκατεστημένο αντίγραφο της τεκμηρίωσης του &os;, μπορούν να ενημερωθούν με την βοήθεια του CVSup, χρησιμοποιώντας ένα μηχανισμό παρόμοιο με αυτόν που χρησιμοποιείται στο βασικό σύστημα (δείτε το ). Η ενότητα αυτή περιγράφει: Πως να εγκαταστήσετε τα εργαλεία που απαιτούνται για την τεκμηρίωση, με τα οποία μπορείτε να δημιουργήσετε την τεκμηρίωση του &os; ξεκινώντας από τον πηγαίο της κώδικα. Πως να κατεβάσετε ένα αντίγραφο του πηγαίου κώδικα της τεκμηρίωσης στον κατάλογο /usr/doc χρησιμοποιώντας το CVSup. Πως να αναδημιουργήσετε την τεκμηρίωση του &os; από τον πηγαίο της κώδικα, και να την εγκαταστήσετε στον κατάλογο /usr/share/doc/. Εγκαθιστώντας το CVSup και τη Σειρά Εργαλείων της Τεκμηρίωσης Η αναδημιουργία της τεκμηρίωσης του &os; από τον πηγαίο κώδικα, απαιτεί μια σχετικά μεγάλη συλλογή εργαλείων. Τα εργαλεία αυτά δεν είναι μέρος του βασικού συστήματος του &os;, καθώς χρειάζονται αρκετό χώρο στο δίσκο και δεν είναι χρήσιμα σε όλους τους χρήστες. Είναι χρήσιμα μόνο στους χρήστες που ασχολούνται με τη συγγραφή νέας τεκμηρίωσης για το &os;, ή που ενημερώνουν συχνά την τοπική τους τεκμηρίωση μέσω του πηγαίου κώδικα. Όλα τα απαιτούμενα εργαλεία διατίθενται μέσω της Συλλογής των Ports. Το textproc/docproj είναι το κύριο port το οποίο έχει αναπτυχθεί από την Ομάδα Τεκμηρίωσης του &os;, για να βοηθήσει στην αρχική εγκατάσταση και τις μελλοντικές αναβαθμίσεις αυτών των εργαλείων. Αν δεν απαιτείται η δημιουργία τεκμηρίωσης σε μορφές &postscript; ή PDF, μπορείτε να εγκαταστήσετε το port textproc/docproj-nojadetex. Αυτή η έκδοση των εργαλείων περιέχει τα πάντα εκτός από την μηχανή στοιχειοθεσίας teTeX. Το teTeX είναι μια αρκετά μεγάλη συλλογή εργαλείων, και δεν έχει νόημα να το εγκαταστήσετε αν δεν σας είναι απαραίτητη η παραγωγή της τεκμηρίωσης σε μορφή PDF. Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση και χρήση του CVSup, δείτε την ενότητα Χρησιμοποιώντας το CVSup. Ενημερώνοντας τον Πηγαίο Κώδικα της Τεκμηρίωσης Το βοηθητικό πρόγραμμα CVSup μπορεί να κατεβάσει ένα καθαρό αντίγραφο του πηγαίου κώδικα της τεκμηρίωσης, χρησιμοποιώντας το /usr/share/examples/cvsup/doc-supfile ως πρότυπο αρχείο ρυθμίσεων. Ο προεπιλεγμένος υπολογιστής ενημερώσεων στο παραπάνω αρχείο είναι ρυθμισμένος σε πλασματική τιμή. Ωστόσο, η &man.cvsup.1; δέχεται όνομα υπολογιστή μέσω της γραμμής εντολών, έτσι μπορείτε να ανακτήσετε τον πηγαίο κώδικα της τεκμηρίωσης μέσω κάποιου εξυπηρετητή CVSup γράφοντας: &prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile Αλλάξτε το cvsup.FreeBSD.org με τον κοντινότερο σας εξυπηρετητή CVSup. Δείτε το για μια πλήρη λίστα των mirror sites. Το αρχικό κατέβασμα του πηγαίου κώδικα της τεκμηρίωσης μπορεί να διαρκέσει αρκετή ώρα. Αφήστε το να εκτελείται μέχρι να ολοκληρωθεί. Μπορείτε να συνεχίσετε να ενημερώνετε τον πηγαίο κώδικα της τεκμηρίωσης χρησιμοποιώντας την ίδια εντολή. Το βοηθητικό πρόγραμμα CVSup κατεβάζει και αντιγράφει μόνο τις ενημερώσεις σε σχέση με την τελευταία εκτέλεση του, έτσι κάθε εκτέλεση του CVSup μετά την πρώτη θα πρέπει να είναι αρκετά γρήγορη. Μετά την αρχική ανάκτηση του πηγαίου κώδικα, ένας εναλλακτικός τρόπος ενημέρωσης της τεκμηρίωσης είναι μέσω του αρχείου Makefile στον κατάλογο /usr/doc. Θέτοντας τις μεταβλητές SUP_UPDATE, SUPHOST και DOCSUPFILE στο αρχείο /etc/make.conf, μπορείτε να εκτελέσετε: &prompt.root; cd /usr/doc &prompt.root; make update Τυπικές τιμές για τις παραπάνω επιλογές του &man.make.1; στο αρχείο /etc/make.conf είναι: SUP_UPDATE= yes SUPHOST?= cvsup.freebsd.org DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile Αν θέσετε τις τιμές των SUPHOST και DOCSUPFILE σε ?=, θα μπορείτε να ορίσετε άλλες τιμές για αυτές στη γραμμή εντολής του make. Αυτός είναι και ο συνιστώμενος τρόπος να προσθέσετε επιλογές στο make.conf, ώστε να αποφεύγετε να τροποποιείτε συνέχεια το αρχείο κάθε φορά που θέλετε να δοκιμάσετε μια νέα τιμή σε μια επιλογή. Προσαρμογή Επιλογών στον Πηγαίο Κώδικα της Τεκμηρίωσης Το σύστημα ενημέρωσης και μεταγλώττισης της τεκμηρίωσης του &os;, υποστηρίζει μερικές επιλογές που διευκολύνουν τη διαδικασία ενημέρωσης ενός μόνο μέρους της τεκμηρίωσης, ή την μεταγλώττιση της τεκμηρίωσης κάποιων συγκεκριμένων μεταφράσεων. Αν θέλετε οι επιλογές αυτές να ισχύουν μόνιμα, μπορείτε να τις ορίσετε μέσα στο αρχείο /etc/make.conf, διαφορετικά μπορείτε να τις ορίζετε κάθε φορά στη γραμμή εντολής της &man.make.1;. Κάποιες από τις επιλογές αυτές φαίνονται παρακάτω: DOC_LANG Λίστα των γλωσσών και κωδικοποιήσεων που θα μεταγλωττιστούν και θα εγκατασταθούν, π.χ. en_US.ISO8859-1 αν είναι επιθυμητή μόνο η Αγγλική τεκμηρίωση. FORMATS Η μορφή (ή μια λίστα από μορφές) στην οποία θα παραχθεί η μεταγλωττισμένη τεκμηρίωση. Τη δεδομένη στιγμή υποστηρίζονται οι μορφές html, html-split, txt, ps, pdf και rtf. SUPHOST Το όνομα του εξυπηρετητή CVSup που θα χρησιμοποιηθεί κατά την ενημέρωση. DOCDIR Ο κατάλογος στον οποίο θα εγκατασταθεί η τεκμηρίωση. Από προεπιλογή είναι ο /usr/share/doc. Για περισσότερες πληροφορίες σχετικά με τις μεταβλητές του make που υποστηρίζονται ως επιλογές συστήματος στο &os;, δείτε την σελίδα manual του &man.make.conf.5;. Για περισσότερες πληροφορίες και μεταβλητές make που υποστηρίζονται από το σύστημα μεταγλώττισης της τεκμηρίωσης του &os;, παρακαλούμε δείτε τις Οδηγίες της Ομάδας Τεκμηρίωσης του &os; για Νέους Συγγραφείς. Εγκατάσταση της Τεκμηρίωσης του FreeBSD από τον Πηγαίο Κώδικα Έχοντας ενημερώσει το τοπικό αντίγραφο του πηγαίου κώδικα της τεκμηρίωσης στον κατάλογο /usr/doc, είμαστε έτοιμοι για την ενημέρωση της εγκατεστημένης τεκμηρίωσης. Μπορείτε να προχωρήσετε σε πλήρη ενημέρωση όλων των γλωσσών που ορίζονται στην επιλογή DOC_LANG του Makefile, γράφοντας: &prompt.root; cd /usr/doc &prompt.root; make install clean Αν έχετε ρυθμίσει το make.conf με τις σωστές τιμές για τις επιλογές DOCSUPFILE, SUPHOST και SUP_UPDATE, μπορείτε να συνδυάσετε τα βήματα ενημέρωσης και εγκατάστασης του πηγαίου κώδικα σε ένα, γράφοντας: &prompt.root; cd /usr/doc &prompt.root; make update install clean Αν επιθυμείτε την ενημέρωση μιας μόνο συγκεκριμένης γλώσσας, μπορείτε να καλέσετε την &man.make.1; σε ένα συγκεκριμένο υποκατάλογο του /usr/doc, π.χ.: &prompt.root; cd /usr/doc/en_US.ISO8859-1 &prompt.root; make update install clean Μπορείτε να καθορίσετε τη μορφή της τεκμηρίωσης που θα εγκατασταθεί, ρυθμίζοντας τη μεταβλητή FORMATS του make, π.χ.: &prompt.root; cd /usr/doc &prompt.root; make FORMATS='html html-split' install clean Marc Fonvieille Βασισμένο σε εργασία του Χρησιμοποιώντας τα Ports της Τεκμηρίωσης Updating and Upgrading documentation package Updating and Upgrading Στην προηγούμενη ενότητα, παρουσιάσαμε μια μέθοδο για την ενημέρωση της τεκμηρίωσης του &os; μέσω του πηγαίου κώδικα. Ωστόσο, οι ενημερώσεις που βασίζονται στον πηγαίο κώδικα μπορεί να μην είναι δυνατές ή πρακτικές για κάθε σύστημα &os;. Η διαδικασία μεταγλώττισης του πηγαίου κώδικα της τεκμηρίωσης απαιτεί σχετικά μεγάλο αριθμό εργαλείων και βοηθητικών προγραμμάτων, γνωστά ως εργαλεία τεκμηρίωσης. Απαιτεί επίσης και μια σχετική εξοικείωση με το CVS και τη διαδικασία ανάκτησης των αρχείων από αυτό, καθώς και μια σειρά από βήματα για τη μεταγλώττιση του κώδικα. Στην ενότητα αυτή περιγράφουμε ένα εναλλακτικό τρόπο ενημέρωσης της τεκμηρίωσης που εγκαθίσταται μαζί με το &os;. Η μέθοδος αυτή χρησιμοποιεί την Συλλογή των Ports και δίνει τις παρακάτω δυνατότητες: Κατέβασμα και εγκατάσταση προ-μεταγλωττισμένων στιγμιότυπων της τεκμηρίωσης, χωρίς να απαιτείται καμιά τοπική μεταγλώττιση (εξαλείφοντας έτσι και την ανάγκη εγκατάστασης όλων των εργαλείων τεκμηρίωσης). Κατέβασμα του πηγαίου κώδικα της τεκμηρίωσης και μεταγλώττιση του μέσω των δυνατοτήτων που παρέχουν τα εργαλεία των ports (απλοποιώντας με αυτό τον τρόπο τη χειροκίνητη διαδικασία ανάκτησης και μεταγλώττισης). Αυτές οι δύο μέθοδοι ενημέρωσης της τεκμηρίωσης του &os; υποστηρίζονται από μια σειρά από ports τεκμηρίωσης τα οποία ενημερώνονται κάθε μήνα από την &a.doceng;. Στη Συλλογή των Ports, θα τα βρείτε κάτω από την κατηγορία docs. Μεταγλώττιση και Εγκατάσταση των Ports της Τεκμηρίωσης Τα ports της τεκμηρίωσης χρησιμοποιούν τις δυνατότητες μεταγλώττισης που παρέχει το σύστημα των ports ώστε να διευκολύνουν τη διαδικασία δημιουργίας της τεκμηρίωσης. Με αυτό τον τρόπο η ανάκτηση του πηγαίου κώδικα της τεκμηρίωσης γίνεται αυτόματα με την εκτέλεση της &man.make.1; και τις κατάλληλες ρυθμίσεις στο περιβάλλον. Η εγκατάσταση και απεγκατάσταση της τεκμηρίωσης είναι το ίδιο εύκολη με την εγκατάσταση οποιουδήποτε άλλου port ή πακέτου στο &os;. Σε περίπτωση τοπικής μεταγλώττισης των ports της τεκμηρίωσης, απαιτείται και η εγκατάσταση των εργαλείων τεκμηρίωσης. Τα εργαλεία αυτά ωστόσο θα εγκατασταθούν αυτόματα. Η οργάνωση των ports τεκμηρίωσης φαίνεται παρακάτω: Υπάρχει ένα κεντρικό master port, το misc/freebsd-doc-en το οποίο διαθέτει τα απαραίτητα αρχεία και αποτελεί την βάση όλων των άλλων ports τεκμηρίωσης. Από προεπιλογή, το port αυτό μεταγλωττίζει μόνο την Αγγλική τεκμηρίωση. Υπάρχει ένα port όλα σε ένα, το misc/freebsd-doc-all το οποίο μεταγλωττίζει και εγκαθιστά όλη την τεκμηρίωση σε όλες τις διαθέσιμες γλώσσες. Τέλος, υπάρχει ένα εξαρτώμενο port για κάθε μετάφραση, π.χ.: misc/freebsd-doc-el για την Ελληνική τεκμηρίωση. Όλα αυτά τα ports εξαρτώνται από το master port και εγκαθιστούν την τεκμηρίωση που έχει μεταφραστεί στην αντίστοιχη γλώσσα. Για να εγκαταστήσετε ένα port τεκμηρίωσης από τον πηγαίο κώδικα, εκτελέστε τις παρακάτω εντολές (ως root): &prompt.root; cd /usr/ports/misc/freebsd-doc-en &prompt.root; make install clean Το παραπάνω θα μεταγλωττίσει και θα εγκαταστήσει την Αγγλική τεκμηρίωση σε μορφή τμηματικών HTML κειμένων (όπως χρησιμοποιούνται και στο ), στον κατάλογο /usr/local/share/doc/freebsd. Συνηθισμένες Επιλογές και Παράμετροι Μεταγλώττισης Μπορείτε να χρησιμοποιήσετε αρκετές επιλογές για την τροποποίηση της προεπιλεγμένης συμπεριφοράς των ports τεκμηρίωσης. Παρακάτω δείχνουμε μερικές μόνο από αυτές: WITH_HTML Επιτρέπει τη δημιουργία της τεκμηρίωσης σε μορφή HTML. Θα δημιουργηθεί ένα αρχείο HTML για κάθε κείμενο. Η μορφοποιημένη τεκμηρίωση θα αποθηκευθεί, ανάλογα με την περίπτωση, σε ένα αρχείο με όνομα article.html ή book.html. Θα γίνει επίσης και αποθήκευση των αντίστοιχων εικόνων. WITH_PDF Επιτρέπει τη δημιουργία εγγράφου σε μορφή &adobe; Portable Document Format (PDF) για χρήση με τον &adobe; &acrobat.reader;, το Ghostscript, ή άλλα προγράμματα προβολής εγγράφων PDF. Η μορφοποιημένη τεκμηρίωση θα αποθηκευθεί, ανάλογα με την περίπτωση, σε ένα αρχείο article.pdf ή book.pdf. DOCBASE Πρόκειται για την θέση στην οποία θα εγκατασταθεί η τεκμηρίωση. Από προεπιλογή, είναι ο κατάλογος /usr/local/share/doc/freebsd. Παρατηρήστε ότι ο προεπιλεγμένος κατάλογος διαφέρει από αυτόν που χρησιμοποιείται στη μέθοδο CVSup. Αυτό συμβαίνει επειδή γίνεται εγκατάσταση port, τα οποία από προεπιλογή χρησιμοποιούν τον κατάλογο /usr/local. Μπορείτε να παρακάμψετε αυτή την προεπιλογή, αλλάζοντας την τιμή της μεταβλητής PREFIX. Παρακάτω θα βρείτε ένα σύντομο παράδειγμα σχετικό με τη χρήση των μεταβλητών για την εγκατάσταση της Αγγλικής τεκμηρίωσης σε μορφή PDF: &prompt.root; cd /usr/ports/misc/freebsd-doc-en &prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/en install clean Χρήση Έτοιμων Πακέτων Τεκμηρίωσης Η μεταγλώττιση των ports τεκμηρίωσης από τον πηγαίο κώδικα (όπως είδαμε στην προηγούμενη ενότητα), απαιτεί τοπική εγκατάσταση των αντίστοιχων εργαλείων τεκμηρίωσης και επάρκεια χώρου στο δίσκο για την διαδικασία. Όταν δεν διατίθενται οι απαραίτητοι πόροι για την εγκατάσταση των εργαλείων τεκμηρίωσης (ή επειδή η μεταγλώττιση από τα ports θα χρησιμοποιούσε πολύ χώρο), η εγκατάσταση μπορεί να γίνει μέσω έτοιμων πακέτων τεκμηρίωσης. H &a.doceng; προετοιμάζει μηνιαία στιγμιότυπα πακέτων τεκμηρίωσης του &os;. Τα έτοιμα αυτά πακέτα μπορούν να χρησιμοποιηθούν με την βοήθεια οποιουδήποτε εργαλείου διαχείρισης πακέτων που διατίθεται με το &os;, όπως για παράδειγμα τα &man.pkg.add.1;, &man.pkg.delete.1; κ.λ.π. Όταν χρησιμοποιείτε έτοιμα πακέτα, η εγκατάσταση της τεκμηρίωσης της επιλεγμένης γλώσσας θα γίνεται σε όλες τις διαθέσιμες μορφές. Για παράδειγμα, η παρακάτω εντολή θα εγκαταστήσει την τελευταία έκδοση του έτοιμου πακέτου της Ελληνικής τεκμηρίωσης: &prompt.root; pkg_add -r el-freebsd-doc Τα πακέτα χρησιμοποιούν τη μορφή lang-freebsd-doc στο όνομα τους, η οποία διαφέρει από την αντίστοιχη μορφή του port. Το lang είναι η σύντομη μορφή της γλώσσας, π.χ. el για Ελληνικά ή zh_cn για Απλοποιημένα Κινέζικα. Ενημερώνοντας τα Ports της Τεκμηρίωσης Για να ενημερώσετε ένα ήδη εγκατεστημένο port τεκμηρίωσης, μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο αναβάθμισης ports. Για παράδειγμα, η παρακάτω εντολή ενημερώνει την εγκατεστημένη Ελληνική τεκμηρίωση μέσω του εργαλείου ports-mgmt/portupgrade με τη χρήση μόνο έτοιμων πακέτων: &prompt.root; portupgrade -PP el-freebsd-doc Pav Lucistnik Βασισμένο σε πληροφορίες που παρείχε ο Χρησιμοποιώντας το Docsnap Updating and Upgrading Docsnap Updating and Upgrading Το Docsnap είναι ένα αποθετήριο (repository) &man.rsync.1; για την ενημέρωση της εγκατεστημένης τεκμηρίωσης του &os; μέσω ενός σχετικά εύκολου και γρήγορου τρόπου. Ένας εξυπηρετητής Docsnap ανακτά τον ενημερωμένο πηγαίο κώδικα της τεκμηρίωσης και τον μεταγλωττίζει σε μορφή HTML κάθε μια ώρα. Δεν χρειάζεται να εγκαταστήσετε το textproc/docproj με το Docsnap, καθώς σας παρέχει έτοιμες διορθώσεις για την ήδη εγκατεστημένη τεκμηρίωση. Η μόνη απαίτηση για την παραπάνω τεχνική, είναι να έχετε εγκαταστήσει το πακέτο ή port net/rsync. Για να το προσθέσετε, χρησιμοποιήστε την παρακάτω εντολή: &prompt.root; pkg_add -r rsync Το Docsnap αναπτύχθηκε αρχικά για την ενημέρωση της τεκμηρίωσης που έχει εγκατασταθεί στον κατάλογο /usr/share/doc, αλλά τα παρακάτω παραδείγματα μπορούν να προσαρμοστούν και για άλλους καταλόγους. Για καταλόγους χρηστών, οι εντολές δεν χρειάζεται να εκτελεστούν με προνόμια root. Για την ενημέρωση της τεκμηρίωσης, χρησιμοποιήστε την παρακάτω εντολή: &prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/doc Υπάρχει μόνο ένας εξυπηρετητής Docsnap τη δεδομένη στιγμή: ο εξυπηρετητής docsnap.sk.FreeBSD.org που φαίνεται παραπάνω. Μην χρησιμοποιήσετε την επιλογή , καθώς η make installworld εγκαθιστά κάποια πράγματα στον κατάλογο /usr/share/doc τα οποία θα σβηστούν. Για να καθαρίσετε τα παλιά αρχεία, χρησιμοποιήστε την παρακάτω εντολή: &prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/doc Αν επιθυμείτε να ενημερώσετε ένα υποσύνολο της τεκμηρίωσης, για παράδειγμα μόνο την Αγγλική τεκμηρίωση, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή: &prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc ]]> Παρακολούθηση Ενός Κλάδου Ανάπτυξης -CURRENT -STABLE Υπάρχουν δύο κλάδοι ανάπτυξης στο &os;, το &os.current; και το &os.stable;. Στην ενότητα αυτή, θα εξηγήσουμε κάποια πράγματα σχετικά με αυτούς τους κλάδους, και θα περιγράψουμε πως μπορείτε να διατηρήσετε το σύστημα σας ενημερωμένο σε κάποιον από αυτούς. Θα μιλήσουμε αρχικά για το &os.current; και έπειτα για το &os.stable;. Παρακολουθώντας το &os.current; Καθώς διαβάζετε αυτό το κείμενο, να έχετε υπόψιν σας ότι το &os.current; είναι πράγματι η κόψη του ξυραφιού στην ανάπτυξη του &os;. Οι χρήστες του &os.current; αναμένεται να έχουν αυξημένες τεχνικές γνώσεις, και να είναι ικανοί να επιλύουν δύσκολα προβλήματα του συστήματος τους, χωρίς βοήθεια. Αν είστε καινούριος στο &os;, μάλλον θα πρέπει να το ξανασκεφτείτε πριν το εγκαταστήσετε. Τι Είναι το &os.current;; snapshot Το &os.current; αποτελείται από τον πλέον πρόσφατο λειτουργικό πηγαίο κώδικα του &os;. Περιλαμβάνει αλλαγές που βρίσκονται σε εξέλιξη, πειραματικές αλλαγές, και μηχανισμούς μετάβασης οι οποίοι δεν είναι σίγουρο ότι θα περιλαμβάνονται στην επόμενη επίσημη έκδοση του λογισμικού. Αν και πολλά μέλη της ομάδας ανάπτυξης του &os; μεταγλωττίζουν καθημερινά τον πηγαίο κώδικα του &os.current;, υπάρχουν χρονικές περίοδοι που η μεταγλώττιση του είναι αδύνατη. Τα προβλήματα αυτά γενικά επιλύονται όσο πιο γρήγορα γίνεται, αλλά το αν το &os.current; θα σας φέρει την καταστροφή ή κάποιο πολυπόθητο χαρακτηριστικό, είναι περισσότερο θέμα της χρονικής στιγμής που θα επιλέξετε να ανακτήσετε τον πηγαίο κώδικα! Ποιος Χρειάζεται το &os.current;; Το &os.current; διατίθεται και ενδιαφέρει κυρίως τις παρακάτω τρεις ομάδες: Μέλη της κοινότητας του &os; που δουλεύουν ενεργά σε κάποιο τμήμα του πηγαίου κώδικα, και για τους οποίους η παρακολούθηση του &os.current; είναι απόλυτα απαραίτητη. Μέλη της κοινότητας του &os; που είναι ενεργοί testers και είναι πρόθυμοι να αναλώσουν το χρόνο τους για να λύσουν προβλήματα, ώστε να εξασφαλίσουν ότι το &os.current; θα παραμείνει όσο το δυνατόν πιο σωστό. Συνήθως, τα μέλη αυτά κάνουν προτάσεις για τοπικές αλλαγές και για την γενική κατεύθυνση του &os;, και στέλνουν patches για την πραγματοποίηση τους. Αυτοί που απλώς θέλουν να βλέπουν τις τελευταίες ενημερώσεις, ή να χρησιμοποιούν τον τελευταίο πηγαίο κώδικα ως αναφορά (π.χ. για μελέτη και όχι για εκτέλεση). Μέλη αυτής της ομάδας μπορεί επίσης περιστασιακά να συνεισφέρουν σχόλια ή κώδικα. Τι <emphasis>Δεν</emphasis> Είναι το &os.current;; Δεν είναι ένας γρήγορος τρόπος να πάρετε κώδικα ο οποίος δεν έχει κυκλοφορήσει ακόμα σε κάποια έκδοση, με την ελπίδα ότι περιέχει κάποια νέα εκπληκτική δυνατότητα και θέλετε να είστε ο πρώτος που τη χρησιμοποιεί. Αν είστε πράγματι ο πρώτος που την χρησιμοποιεί, θα είστε επίσης και ο πρώτος που θα συναντήσετε τα νέα προβλήματα και bugs. Δεν είναι ένας γρήγορος τρόπος για να ανακτήσετε διορθώσεις προβλημάτων. Κάθε νέα έκδοση του &os.current; μπορεί να εισάγει τόσα νέα bugs όσα και αυτά που διορθώνει. Το &os.current; δεν αποτελεί επίσημα υποστηριζόμενο κώδικα. Αν και καταβάλλουμε κάθε δυνατή προσπάθεια να βοηθήσουμε όσους ανήκουν πραγματικά σε κάποια από τις τρεις ομάδες που αναφέραμε, ωστόσο δεν έχουμε το χρόνο να παρέχουμε τεχνική υποστήριξη. Αυτό δεν συμβαίνει επειδή είμαστε κακοήθεις και δύσκολοι και δεν θέλουμε να βοηθάμε τους ανθρώπους (δεν θα είχαμε καν δημιουργήσει το &os; αν σκεφτόμασταν έτσι). Πολύ απλά, δεν μπορούμε να απαντάμε εκατοντάδες μηνύματα την ημέρα και ταυτόχρονα να δουλεύουμε στο &os;! Αν δώσετε σε οποιοδήποτε μέλος της ομάδας ανάπτυξης την επιλογή να απαντάει σε πολλές ερωτήσεις σχετικά με πειραματικό κώδικα ή να δουλεύει για τη βελτίωση του &os;, θα επιλέξει σίγουρα το δεύτερο. Χρησιμοποιώντας το &os.current; -CURRENT using Γραφτείτε στις λίστες &a.current.name; και &a.svn-src-head.name;. Δεν είναι απλώς καλή ιδέα, είναι βασικό να το κάνετε. Αν δεν είστε γραμμένος στη λίστα &a.current.name;, δεν θα βλέπετε τα σχόλια σχετικά με την τρέχουσα κατάσταση του συστήματος από όσους το χρησιμοποιούν, και έτσι πιθανώς θα καταλήξετε να αντιμετωπίζετε πολλά προβλήματα που άλλοι έχουν ήδη ανακαλύψει και λύσει. Ακόμα πιο σημαντικό είναι ότι θα χάνετε σημαντικές ανακοινώσεις, οι οποίες μπορεί να είναι κρίσιμες για την διατήρηση του συστήματος σας σε υγιή κατάσταση. Η λίστα &a.svn-src-head.name; θα σας επιτρέψει να βλέπετε τις καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται, καθώς και πληροφορίες για πιθανές παρενέργειες που μπορεί να έχει. Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία &a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να εγγραφείτε στη λίστα &a.svn-src-all.name;. Ανακτήστε τον πηγαίο κώδικα από ένα mirror site του &os;. Αυτό μπορεί να γίνει με δύο τρόπους: cvsup cron -CURRENT Syncing with CVSup Χρησιμοποιήστε το πρόγραμμα cvsup σε συνδυασμό με το supfile με την ονομασία standard-supfile το οποίο θα βρείτε στον κατάλογο /usr/share/examples/cvsup. Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές. Πολλοί χρήστες εκτελούν το cvsup μέσω του cron ώστε να κρατάνε τον πηγαίο κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα πρέπει να προσαρμόσετε το υπόδειγμα του supfile που δίνουμε παραπάνω, και να ρυθμίσετε το cvsup για το περιβάλλον σας. Το υπόδειγμα του αρχείου standard-supfile προορίζεται για χρήση με κάποιο συγκεκριμένο κλάδο ασφάλειας (security branch) του &os;, και όχι με το &os.current;. Θα πρέπει να επεξεργαστείτε το αρχείο και να αντικαταστήσετε την παρακάτω γραμμή: *default release=cvs tag=RELENG_X_Y με την ακόλουθη: *default release=cvs tag=. Για περισσότερες πληροφορίες σχετικά με τα tags που μπορείτε να χρησιμοποιήσετε, παρακαλούμε διαβάστε στο Εγχειρίδιο την ενότητα Ετικέτες (Tags) για το CVS. -CURRENT Syncing with CTM Χρησιμοποιήστε την υπηρεσία CTM. Αν έχετε πολύ κακή συνδεσιμότητα (υψηλό κόστος σύνδεσης ή πρόσβαση μόνο μέσω email) το CTM αποτελεί για σας μια εναλλακτική λύση. Μπορεί ωστόσο να σας δημιουργήσει διάφορα προβλήματα και να καταλήξετε με χαλασμένα αρχεία. Για το λόγο αυτό, το CTM χρησιμοποιείται σπάνια, κάτι το οποίο αυξάνει ακόμα περισσότερο την πιθανότητα να μη δουλεύει σωστά για μεγάλα χρονικά διαστήματα. Σας συνιστούμε να χρησιμοποιήσετε το CVSup αν διαθέτετε modem 9600 bps ή ταχύτερο. Αν σκοπεύετε να ανακτήσετε τον πηγαίο κώδικα για κανονική χρήση (εκτέλεση) και όχι απλώς για να τον δείτε, τότε ανακτήστε ολόκληρο το &os.current; και όχι κάποια επιλεγμένα τμήματα. Σε διαφορετική περίπτωση, είναι αρκετά πιθανό να συναντήσετε προβλήματα, καθώς πολλά κομμάτια του κώδικα εξαρτώνται από ανανεώσεις σε άλλα, και δεν μπορούν να μεταγλωττιστούν αυτόνομα. -CURRENT compiling Πριν μεταγλωττίσετε το &os.current;, διαβάστε προσεκτικά το Makefile στον κατάλογο /usr/src. Θα πρέπει να μεταγλωττίσετε τον πυρήνα και όλο το βασικό σύστημα (world) την πρώτη φορά, ως μέρος της διαδικασίας αναβάθμισης. Διαβάζοντας την &a.current; και το /usr/src/UPDATING θα είστε ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο πλησιάζουμε σε μια νέα επίσημη έκδοση. Γίνετε ενεργό μέλος! Αν χρησιμοποιείτε το &os.current;, θέλουμε να ξέρουμε τη γνώμη σας για αυτό, ειδικά αν έχετε προτάσεις για βελτιώσεις ή διορθώσεις λαθών. Προτάσεις που συνοδεύονται και από κώδικα γίνονται δεκτές με ενθουσιασμό! Χρησιμοποιώντας το &os;-STABLE Τι Είναι το &os.stable;; -STABLE Το &os.stable; είναι ένας κλάδος ανάπτυξης από τον οποίο προκύπτουν οι μεγάλες (major) εκδόσεις. Οι αλλαγές εισάγονται σε αυτό τον κλάδο με διαφορετικό ρυθμό, και με τη γενική παραδοχή ότι έχουν πρώτα περάσει από το &os.current; για δοκιμή. Ωστόσο, δεν παύει να είναι ένας κλάδος ανάπτυξης, και αυτό σημαίνει ότι ο κώδικας του &os.stable; μπορεί μια δεδομένη χρονική στιγμή να είναι ακατάλληλος για συγκεκριμένες εφαρμογές. Πρόκειται για μια ακόμα γραμμή ανάπτυξης για τους προγραμματιστές, και δεν είναι απαραίτητα κατάλληλη για τους τελικούς χρήστες. Ποιος Χρειάζεται το &os.stable;; Αν σας ενδιαφέρει να παρακολουθείτε ή να συμβάλλετε στην ανάπτυξη του &os;, και ειδικά όσο αφορά την επόμενη επίσημη έκδοση του από τον ίδιο κλάδο (point release), είναι καλή ιδέα να παρακολουθείτε το &os.stable;. Αν και είναι αλήθεια ότι οι διορθώσεις ασφάλειας γίνονται και στον κλάδο &os.stable;, ωστόσο δεν χρειάζεται να παρακολουθείτε το &os.stable; μόνο για αυτό το λόγο. Κάθε αναφορά προβλήματος ασφάλειας του &os; εξηγεί πως να διορθώσετε το πρόβλημα για κάθε επίσημη έκδοση η οποία επηρεάζεται από αυτό Αυτό βέβαια δεν είναι απόλυτα αληθινό. Δεν μπορούμε να συνεχίσουμε να υποστηρίζουμε τις παλιές εκδόσεις του &os; για πάντα, αν και τις υποστηρίζουμε για πολλά χρόνια. Για πλήρη περιγραφή της τρέχουσας πολιτικής όσο αφορά την ασφάλεια των παλιών εκδόσεων του &os;, δείτε http://www.FreeBSD.org/security/. , και η παρακολούθηση ενός κλάδου ανάπτυξης μόνο για λόγους ασφαλείας, πιθανόν να φέρει επίσης και άλλες ανεπιθύμητες αλλαγές μαζί της. Αν και καταβάλλουμε κάθε δυνατή προσπάθεια ώστε να εξασφαλίσουμε ότι ο κλάδος &os.stable; μπορεί να μεταγλωττιστεί και να εκτελεστεί σε κάθε δεδομένη χρονική στιγμή, δεν μπορούμε ωστόσο να το εγγυηθούμε. Επιπρόσθετα, αν και ο κώδικας αναπτύσσεται στο &os.current; πριν περάσει στο &os.stable;, ο κόσμος που εκτελεί το &os.stable; είναι περισσότερος, και έτσι είναι αναπόφευκτο να ανακαλύπτονται πιο πολλά σφάλματα και ακραίες περιπτώσεις στο &os.stable; τα οποία δεν έχουν γίνει εμφανή στο &os.current;. Για τους λόγους αυτούς, δεν συνιστούμε να παρακολουθείτε τυφλά το &os.stable;, και ειδικότερα είναι σημαντικό να μην αναβαθμίζετε σε αυτό εξυπηρετητές σε περιβάλλοντα παραγωγής, χωρίς να έχετε πρώτα ελέγξει αναλυτικά τον κώδικα στο δικό σας περιβάλλον ανάπτυξης. Αν δεν διαθέτετε τους πόρους για να το κάνετε αυτό, σας συνιστούμε να χρησιμοποιείτε την τελευταία επίσημη έκδοση του &os;, και να αναβαθμίζεστε από τη μια έκδοση στην επόμενη μέσω του μηχανισμού δυαδικών ενημερώσεων. Χρησιμοποιώντας το &os.stable; -STABLE using Γραφτείτε συνδρομητής στη λίστα &a.stable.name;. Θα είστε έτσι ενημερωμένοι για εξαρτήσεις μεταγλώττισης που ίσως εμφανιστούν στο &os.stable;, ή για άλλα προβλήματα που χρήζουν ειδικής προσοχής. Στη λίστα αυτή θα βρίσκετε επίσης ανακοινώσεις από μέλη της ομάδας ανάπτυξης, όταν πρόκειται να συμπεριληφθεί κάποια αμφιλεγόμενη ανανέωση ή διόρθωση, δίνοντας έτσι στους χρήστες την ευκαιρία να εκφέρουν γνώμη σχετικά με τα προβλήματα που θα προκαλέσει η προτεινόμενη αλλαγή. Θα πρέπει να εγγραφείτε στην κατάλληλη λίστα SVN ανάλογα με τον κλάδο που παρακολουθείτε. Για παράδειγμα, αν παρακολουθείτε τον κλάδο 7-STABLE, η κατάλληλη λίστα είναι η &a.svn-src-stable-7.name;. Αυτό θα σας επιτρέψει να βλέπετε τις καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται, καθώς και πληροφορίες για πιθανές παρενέργειες που μπορεί να έχει. Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία &a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να εγγραφείτε στη λίστα &a.svn-src-all.name;. Αν πρόκειται να εγκαταστήσετε ένα νέο σύστημα με σκοπό να εκτελείτε τα μηνιαία snapshot του &os.stable;, παρακαλούμε να ελέγξετε την τοποθεσία Snapshots για περισσότερες πληροφορίες. Εναλλακτικά, είναι δυνατόν να εγκαταστήσετε το πιο πρόσφατο &os.stable; από κάποιο mirror site ακολουθώντας τις παρακάτω οδηγίες ώστε να αναβαθμίσετε το σύστημα σας στην πλέον πρόσφατη έκδοση πηγαίου κώδικα του &os.stable;. Αν διαθέτετε ήδη κάποια προηγούμενη έκδοση του &os; και επιθυμείτε να αναβαθμιστείτε μέσω του πηγαίου κώδικα, μπορείτε εύκολα να χρησιμοποιήσετε κάποιο mirror site του &os;. Υπάρχουν δύο τρόποι για να γίνει αυτό: cvsup cron -STABLE syncing with CVSup Χρησιμοποιήστε το πρόγραμμα cvsup σε συνδυασμό με το supfile με την ονομασία stable-supfile το οποίο θα βρείτε στον κατάλογο /usr/share/examples/cvsup. Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές. Πολλοί χρήστες εκτελούν το cvsup μέσω του cron ώστε να κρατάνε τον πηγαίο κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα πρέπει να προσαρμόσετε το υπόδειγμα του supfile που δίνουμε παραπάνω, και να ρυθμίσετε το cvsup για το περιβάλλον σας. -STABLE syncing with CTM Χρησιμοποιήστε την υπηρεσία CTM. Αν δεν έχετε γρήγορη και φτηνή σύνδεση με το Internet, αυτή είναι η συνιστώμενη μέθοδος. Ουσιαστικά, αν χρειάζεστε γρήγορη και κατά απαίτηση πρόσβαση στον πηγαίο κώδικα, και το εύρος ζώνης της σύνδεσης δεν αποτελεί πρόβλημα, χρησιμοποιήστε το cvsup ή το ftp. Διαφορετικά, χρησιμοποιήστε το CTM. -STABLE compiling Πριν μεταγλωττίσετε το &os.stable;, διαβάστε προσεκτικά το Makefile στον κατάλογο /usr/src. Θα πρέπει να μεταγλωττίσετε τον πυρήνα και όλο το βασικό σύστημα (world) την πρώτη φορά, ως μέρος της διαδικασίας αναβάθμισης. Διαβάζοντας την &a.stable; και το /usr/src/UPDATING θα είστε ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο πλησιάζουμε σε μια νέα επίσημη έκδοση. Συγχρονίζοντας τον Πηγαίο σας Κώδικα Υπάρχουν διάφοροι τρόποι να χρησιμοποιήσετε μια σύνδεση Internet (ή email) για να ενημερώνετε οποιοδήποτε τμήμα πηγαίου κώδικα του &os; Project σας ενδιαφέρει, ή και όλα αν το επιθυμείτε. Οι βασικές υπηρεσίες που προσφέρουμε είναι το Ανώνυμο CVS, το CVSup, και το CTM. Αν και είναι δυνατόν να ενημερώσετε μόνο κάποια τμήματα του δέντρου πηγαίου κώδικα, η μόνη διαδικασία ενημέρωσης που υποστηρίζεται αφορά την ενημέρωση ολόκληρου του δέντρου. Μετά την ενημέρωση, θα πρέπει να μεταγλωττίσετε ξανά τόσο το userland (δηλ. τα προγράμματα που εκτελούνται στην περιοχή χρήστη, όπως αυτά που βρίσκονται στους καταλόγους /bin και /sbin) όσο και τον πηγαίο κώδικα του πυρήνα. Αν ενημερώσετε μόνο ένα τμήμα του πηγαίου κώδικα, μόνο τον πυρήνα ή μόνο το userland, θα αντιμετωπίσετε προβλήματα. Τα προβλήματα αυτά μπορεί να κυμαίνονται από σφάλματα μεταγλώττισης μέχρι kernel panic και καταστροφή δεδομένων. CVS anonymous Το Ανώνυμο CVS και το CVSup χρησιμοποιούν τη μέθοδο pull για την ενημέρωση του πηγαίου κώδικα. Στην περίπτωση του CVSup, ο χρήστης (η κάποιο script που εκτελείται μέσω cron) εκτελεί το πρόγραμμα cvsup το οποίο αλληλεπιδρά με ένα αντίστοιχο εξυπηρετητή cvsupd ώστε να ενημερώσει τα σχετικά αρχεία. Οι ενημερώσεις που λαμβάνετε είναι πάντοτε οι τελευταίες διαθέσιμες, και θα τις λάβετε μόνο όταν τις ζητήσετε. Μπορείτε εύκολα να περιορίσετε τις ενημερώσεις σε συγκεκριμένα αρχεία ή καταλόγους τα οποία σας ενδιαφέρουν. Οι ενημερώσεις δημιουργούνται δυναμικά από τον εξυπηρετητή, ανάλογα με το τι έχετε εγκατεστημένο και τι επιθυμείτε να λάβετε. Το Ανώνυμο CVS είναι κάπως πιο απλοϊκό από το CVSup, δεδομένου ότι είναι απλώς μια επέκταση του CVS που επιτρέπει την ανάκτηση αλλαγών απευθείας από κάποιο απομακρυσμένο CVS repository. Το CVSup είναι αρκετά πιο αποτελεσματικό σε αυτόν το τομέα, αλλά το Ανώνυμο CVS είναι απλούστερο στη χρήση. CTM Από την άλλη μεριά, το CTM δεν συγκρίνει άμεσα τον πηγαίο κώδικα που έχετε με αυτόν που υπάρχει στον κεντρικό εξυπηρετητή ώστε να ανακτήσει μόνο τις αλλαγές. Αντίθετα, στο κεντρικό μηχάνημα CTM, εκτελείται αρκετές φορές την ημέρα ένα script. Το script αυτό αναγνωρίζει τις αλλαγές στα αρχεία σε σχέση με την προηγούμενη εκτέλεση του, και έπειτα πακετάρει και συμπιέζει τις αλλαγές με τρόπο κατάλληλο για αποστολή μέσω email (μόνο εκτυπώσιμοι ASCII χαρακτήρες). Σε κάθε τέτοιο πακέτο αλλαγών αντιστοιχίζεται ένας μοναδιαίος αριθμός ακολουθίας (sequence number) που το αναγνωρίζει. Μετά τη λήψη τους, μπορείτε να δώσετε αυτά τα αρχεία διαφορών του CTM (CTM deltas) στο βοηθητικό πρόγραμμα &man.ctm.rmail.1; το οποίο αυτόματα θα τα αποκωδικοποιήσει, θα τα επαληθεύσει, και θα εφαρμόσει τις αλλαγές στο αντίγραφο πηγαίου κώδικα του χρήστη. Η διαδικασία αυτή είναι πολύ πιο αποδοτική από το CVSup, και επιβαρύνει λιγότερο τους εξυπηρετητές μας, καθώς είναι μια διαδικασία τύπου push αντί για pull. Υπάρχουν φυσικά κάποια σημεία που υστερεί. Αν από λάθος διαγράψετε κάποια τμήματα του πηγαίου σας κώδικα, το CVSup θα ανιχνεύσει και θα διορθώσει αυτόματα τη βλάβη για σας. Το CTM δεν θα το κάνει αυτό, και αν σβήσετε κάποιο τμήμα του δέντρου σας (και δεν έχετε αντίγραφο ασφαλείας) θα πρέπει να ξεκινήσετε από την αρχή (από το πιο πρόσφατο CVS base delta) και να το ξανακτίσετε από την αρχή με το CTM. Με το Ανώνυμο CVS, μπορείτε απλώς να διαγράψετε τα προβληματικά αρχεία και να συγχρονίσετε ξανά τον πηγαίο σας κώδικα. Μεταγλωττίζοντας το Βασικό Σύστημα (<quote>world</quote>) Rebuilding world Έχοντας συγχρονίσει το τοπικό σας δέντρο πηγαίου κώδικα σε κάποια συγκεκριμένη έκδοση του &os; (&os.stable;, &os.current;, κ.ο.κ.), μπορείτε έπειτα να το χρησιμοποιήσετε για να μεταγλωττίσετε το σύστημα σας από την αρχή. Δημιουργήστε Ένα Αντίγραφο Ασφαλείας Δεν μπορούμε παρά να τονίσουμε πόσο σημαντικό είναι να δημιουργήσετε ένα αντίγραφο ασφαλείας του συστήματος σας πριν ξεκινήσετε αυτή τη διαδικασία. Αν και η μεταγλώττιση του βασικού συστήματος είναι (όσο τουλάχιστον ακολουθείτε αυτές τις οδηγίες) μια σχετικά απλή διαδικασία, αναμφίβολα θα υπάρξουν και περιπτώσεις που λάθη δικά σας, ή άλλων (στο δέντρο πηγαίου κώδικα), θα σας οδηγήσουν σε ένα σύστημα που δεν θα μπορεί να εκκινήσει. Βεβαιωθείτε ότι έχετε ενημερωμένο αντίγραφο ασφαλείας. Καλό θα είναι να έχετε επίσης πρόχειρη μια δισκέτα fixit ή ένα CD εκκίνησης. Ίσως να μην χρειαστεί ποτέ να τα χρησιμοποιήσετε, αλλά καλύτερα να είστε ασφαλής παρά να το μετανοιώνετε αργότερα! Γίνετε Συνδρομητής στη Σωστή Λίστα Ηλ. Ταχυδρομείου mailing list Από τη φύση τους, οι κλάδοι &os.stable; και &os.current; βρίσκονται σε συνεχή ανάπτυξη. Όσοι συνεισφέρουν στο &os; είναι απλώς άνθρωποι, και περιστασιακά λάθη απλώς συμβαίνουν. Ορισμένες φορές τα λάθη αυτά είναι μάλλον ακίνδυνα, και το μόνο που κάνουν είναι να εμφανίζουν μερικές διαγνωστικές προειδοποιήσεις στο σύστημα σας. Ή μπορεί η αλλαγή να είναι καταστροφική, και να οδηγήσει το σύστημα σας σε αδυναμία εκκίνησης ή ακόμα και να καταστρέψει τα συστήματα αρχείων σας (ή και ακόμα χειρότερες συνέπειες). Αν συμβούν τέτοια προβλήματα, σύντομα θα εμφανιστεί ένα μήνυμα τύπου heads up στις σχετικές λίστες ταχυδρομείου, το οποίο θα εξηγεί το πρόβλημα και ποια συστήματα επηρεάζει. Όταν το πρόβλημα λυθεί, θα γίνει μια αντίστοιχη all clear ανακοίνωση. Αν προσπαθείτε να ακολουθήσετε το &os.stable; ή το &os.current;, και δεν διαβάζετε τις αντίστοιχες λίστες &a.stable.name; και &a.current.name;, ψάχνετε για μπελάδες. Μην Χρησιμοποιήσετε την εντολή <command>make world</command> Μεγάλο μέρος της παλαιότερης τεκμηρίωσης, συνιστά τη χρήση της εντολής make world. Αν την χρησιμοποιήσετε, θα παραλειφθούν ορισμένα σημαντικά βήματα της διαδικασίας. Χρησιμοποιήστε τη μόνο αν είστε απόλυτα σίγουροι για αυτό που κάνετε. Για τις περισσότερες περιπτώσεις, η εντολή make world είναι λανθασμένη, και αντί για αυτή θα πρέπει να ακολουθήσετε τη διαδικασία που περιγράφουμε παρακάτω. Ο Κανονικός Τρόπος να Ενημερώσετε το Σύστημα σας Πριν ενημερώσετε το σύστημα σας, θα πρέπει να ελέγξετε το /usr/src/UPDATING για τυχόν βήματα που θα πρέπει να εκτελέσετε πριν την εκκίνηση της μεταγλώττισης. Τα βήματα αυτά εξαρτώνται από την έκδοση του πηγαίου κώδικα που πρόκειται να χρησιμοποιήσετε. Έπειτα, ακολουθήστε τη διαδικασία που περιγράφεται στις επόμενες παραγράφους. Η διαδικασία αναβάθμισης η οποία περιγράφεται εδώ βασίζεται στην υπόθεση ότι έχετε ήδη εγκαταστήσει μια παλιότερη έκδοση του &os;, με μια παλιά έκδοση του μεταγλωττιστή, ένα παλιό πυρήνα, παλιά εργαλεία χρήστη και αρχεία ρυθμίσεων. Εργαλεία χρήστη θεωρούνται τα βασικά εκτελέσιμα, οι βιβλιοθήκες και τα αρχεία προγραμματισμού. Ο μεταγλωττιστής είναι κι αυτός μέρος των εργαλείων χρήστη στο &os;, αλλά χρειάζεται ειδική μεταχείριση κατά τη διαδικασία αναβάθμισης. Υποθέτουμε, επίσης, ότι έχετε ήδη κατεβάσει μια ενημερωμένη έκδοση από τον πηγαίο κώδικα του συστήματος. Αν ο πηγαίος κώδικας στο συγκεκριμένο σύστημα είναι από παλιότερη έκδοση, δείτε το για λεπτομερείς οδηγίες σχετικά με το πως να συγχρονίσετε τον πηγαίο κώδικα σε μια νεότερη έκδοση. Η αναβάθμιση του &os; από τον πηγαίο κώδικά του φαίνεται να είναι πολύ απλή διαδικασία. Στην πραγματικότητα, έχει κάποιες ιδιαιτερότητες. Με τα χρόνια, καθώς οι εξαρτήσεις μεταξύ των βημάτων της αναβάθμισης ανακαλύπτονται ή αναλύονται καλύτερα, οι προγραμματιστές του &os; αλλάζουν σιγά-σιγά αυτή τη διαδικασία. Οι παρακάτω παράγραφοι περιγράφουν τη λογική με την οποία έχει σχεδιασθεί η προτεινόμενη διαδικασία αναβάθμισης. Μια επιτυχής διαδικασία αναβάθμισης πρέπει να καλύψει τουλάχιστον τις δύο πιο βασικές ιδιαιτερότητες μιας αναβάθμισης από πηγαίο κώδικα: Ο παλιός μεταγλωττιστής συστήματος μπορεί να είναι ακατάλληλος για μεταγλώττιση του νέου πυρήνα. (Και οι μεταγλωττιστές έχουν ορισμένες φορές προβλήματα, όπως κάθε άλλο λογισμικό.) Οπότε ο νέος πυρήνας πρέπει να μεταγλωττιστεί με το νέο μεταγλωττιστή. Πιο συγκεκριμένα, ο νέος μεταγλωττιστής πρέπει να αναβαθμιστεί πριν από το νέο πυρήνα. Αυτό δε σημαίνει βέβαια ότι αυτός ο νέος μεταγλωττιστής πρέπει να εγκατασταθεί πριν μεταγλωττιστεί ο νέος πυρήνας. Τα νέα εργαλεία χρήστη από το βασικό σύστημα του &os; μπορεί να εξαρτώνται από τον τρόπο λειτουργίας του νέου πυρήνα. Οπότε ο νέος πυρήνας πρέπει να εγκατασταθεί πριν από το νέο βασικό σύστημα. Αυτά τα δύο σημεία είναι οι βασικοί λόγοι για τους οποίους προτείνονται τα κεντρικά βήματα μιας αναβάθμισης, τα βήματα buildworld, buildkernel, installkernel, και installworld. Στις επόμενες παραγράφους θα περιγράψουμε πιο αναλυτικά αυτά τα βήματα. Υπάρχουν κι άλλοι λόγοι όμως για τους οποίους χρειάζεται προσοχή όταν κάνετε μια τέτοια αναβάθμιση. Μερικοί από αυτούς είναι οι εξής: Τα παλιά εργαλεία του βασικού συστήματος μπορεί να μην τρέχουν σωστά με το νέο πυρήνα. Γι αυτό πρέπει να εγκατασταθεί το ενημερωμένο βασικό σύστημα αμέσως μετά την εγκατάσταση του νέου πυρήνα. Μερικές φορές χρειάζονται αλλαγές στα αρχεία ρυθμίσεων πριν εγκατασταθεί το νέο βασικό σύστημα. Άλλες φορές η εγκατάσταση όλων των αρχείων ρυθμίσεων μπορεί να δημιουργήσει προβλήματα στην εγκατάσταση. Γι αυτό έχουμε χωρίσει την ενημέρωση των αρχείων ρυθμίσεων σε δύο ξεχωριστά βήματα. Στην πλειοψηφία των περιπτώσεων η διαδικασία εγκατάστασης αντικαθιστά ή προσθέτει αρχεία του συστήματος· δε σβήνει κανένα υπάρχον αρχείο. Σε μερικές περιπτώσεις αυτό μπορεί να δημιουργήσει προβλήματα. Όταν υπάρχει τέτοια περίπτωση, η διαδικασία εγκατάστασης τυπώνει ενημερωτικά μηνύματα για τα αρχεία τα οποία πρέπει να σβηστούν χειροκίνητα. Αυτό το βήμα μπορεί να αυτοματοποιηθεί στο μέλλον. Έχοντας όλες αυτές τις ιδιαιτερότητες μιας αναβάθμισης από πηγαίο κώδικα, καταλήξαμε στην παρακάτω διαδικασία αναβάθμισης. Ορισμένες φορές μπορεί να χρειάζεται να προσθέσετε κάποια βήματα σε αυτή τη διαδικασία. Τα βασικά βήματα όμως παραμένουν τα ίδια, κι είναι τα εξής: make buildworld Αυτό το βήμα μεταγλωττίζει πρώτα μια ενημερωμένη έκδοση του ίδιου του μεταγλωττιστή συστήματος και μερικών απαραίτητων εργαλείων. Ύστερα, χρησιμοποιώντας το νέο μεταγλωττιστή, προετοιμάζει μια νέα έκδοση όλου του βασικού συστήματος του &os;. Τα ενημερωμένα εκτελέσιμα, βιβλιοθήκες και αρχεία προγραμματισμού καταλήγουν στον κατάλογο /usr/obj. make buildkernel Σε αντίθεση με παλιότερες διαδικασίες αναβάθμισης (οι οποίες καλούσαν χειροκίνητα το &man.config.8; και το &man.make.1;) αυτό το βήμα μεταγλωττίζει τον πυρήνα του &os; χρησιμοποιώντας τον ενημερωμένο μεταγλωττιστή συστήματος από τον κατάλογο /usr/obj. Αυτό σας προστατεύει από προβλήματα ασυμβατότητας μεταξύ του μεταγλωττιστή και του πυρήνα. make installkernel Εγκατάσταση του νέου πυρήνα και των αρθρωμάτων του στο δίσκο του συστήματος. Έτσι μπορεί πλέον το σύστημα να ξεκινήσει με το νέο, ενημερωμένο πυρήνα. Εκκίνηση σε λειτουργία single user. Η λειτουργία single user ελαχιστοποιεί την πιθανότητα να έχετε προβλήματα επειδή αναβαθμίσατε κάποιο πρόγραμμα που τρέχει ήδη. Είναι επίσης πιο ασφαλής, αφού δε χρειάζεται να τρέξετε τις εφαρμογές του παλιού βασικού συστήματος με το νέο πυρήνα. mergemaster Αυτό το βήμα ενημερώνει τα απολύτως βασικά αρχεία ρυθμίσεων του &os;, για να μπορέσετε να εγκαταστήσετε σωστά το νέο βασικό σύστημα. Ενημερώνει, για παράδειγμα, τη βάση χρηστών και ομάδων χρηστών του &os;. Κάθε φορά που προστίθεται ένας νέος χρήστης συστήματος ή μια νέα ομάδα χρηστών, το βήμα installworld της αναβάθμισης θεωρεί ότι έχετε ήδη ρυθμίσει τους νέους χρήστες ή τις νέες ομάδες. Αυτό ακριβώς κάνει σε αυτό το σημείο το εργαλείο &man.mergemaster.8;. make installworld Το επόμενο βήμα είναι να εγκαταστήσετε το ενημερωμένο βασικό σύστημα από τον κατάλογο /usr/obj. Μετά από αυτό έχετε πλέον ένα νέο πυρήνα και ένα ενημερωμένο βασικό σύστημα, το οποίο ταιριάζει με τον νέο πυρήνα. mergemaster Ένα από τα τελευταία βήματα είναι η αναβάθμιση των αρχείων ρυθμίσεων του συστήματος. Το εργαλείο &man.mergemaster.8; μπορεί να σας βοηθήσει σε αυτό το βήμα, αφού ενημερώνει τα αρχεία ρυθμίσεων κρατώντας και οποιεσδήποτε τοπικές αλλαγές έχετε κάνει στο σύστημά σας. Επανεκκινήστε το σύστημα. Μια τελευταία επανεκκίνηση του συστήματος σας εξασφαλίζει ότι το σύστημα ξεκινάει με το νέο πυρήνα, το ενημερωμένο βασικό σύστημα και τα καινούρια αρχεία ρυθμίσεων. Αν η αναβάθμιση που κάνετε είναι από μια έκδοση του &os; σε μια πιο καινούρια έκδοση του ίδιου κλάδου ανάπτυξης, π.χ. από 7.0 σε 7.1, τότε μερικά από τα βήματα αυτή της διαδικασίας μπορεί να μη χρειάζονται αφού είναι λιγότερο πιθανό να συναντήσετε ασυμβατότητες μεταξύ του μεταγλωττιστή συστήματος, του πυρήνα, του βασικού συστήματος και των αρχείων ρυθμίσεων. Η αναβάθμιση σε τέτοιες περιπτώσεις, μεταξύ δύο minor εκδόσεων του &os;, ίσως μπορεί να γίνει και με την παλιότερη διαδικασία: τρέχονταςmake world και ύστερα μεταγλωττίζοντας και στήνοντας ένα νέο πυρήνα. Όταν όμως αναβαθμίσετε το &os; μεταξύ major εκδόσεων, καλύτερα να χρησιμοποιήσετε τη διαδικασία που περιγράφουμε εδώ. Αλλιώς μπορεί να αντιμετωπίσετε προβλήματα είτε κατά τη διάρκεια της αναβάθμισης ή αφού έχει πλέον ολοκληρωθεί. Κάποιες από τις αναβαθμίσεις (π.χ. από μια έκδοση  4.X σε 5.0) μπορεί να απαιτούν μερικά χειροκίνητα βήματα (όπως το να μετακινήσετε ή να σβήσετε συγκεκριμένα αρχεία πριν το βήμα installworld). Πριν από κάθε αναβάθμιση διαβάστε προσεκτικά τις οδηγίες στο αρχείο /usr/src/UPDATING· ειδικά τις οδηγίες στο τέλος του αρχείου, οι οποίες περιγράφουν αναλυτικά την προτεινόμενη διαδικασία αναβάθμισης. Αυτή η διαδικασία αναβάθμισης εξελίσσεται και διορθώνεται καθώς οι προγραμματιστές του &os; ανακαλύπτουν καινούριες εξαρτήσεις μεταξύ των συστατικών του συστήματος ή κάνουν διορθώσεις για να αποφύγουν ασυμβατότητες μεταξύ των διαφορετικών υποσυστημάτων. Ελπίζουμε ότι τα κεντρικά βήματα της διαδικασίας που περιγράφεται εδώ δε θα αλλάξουν πολύ για αρκετό καιρό πλέον. Η αναβάθμιση του &os; από τις εκδόσεις 3.X ή από παλιότερες εκδόσεις είναι σχετικά πιο περίπλοκη διαδικασία. Διαβάστε με πολλή προσοχή το αρχείο UPDATING αν πραγματικά χρειαστεί να αναβαθμίσετε ένα τέτοιο σύστημα. Οπότε, συγκεντρώνοντας όλα τα βήματα τα οποία περιγράψαμε παραπάνω, η προτεινόμενη διαδικασία αναβάθμισης του &os; από τον πηγαίο κώδικα του συστήματος είναι: &prompt.root; cd /usr/src &prompt.root; make buildworld &prompt.root; make buildkernel &prompt.root; make installkernel &prompt.root; shutdown -r now Υπάρχουν κάποιες μάλλον σπάνιες περιπτώσεις, που απαιτείται μια επιπλέον εκτέλεση του mergemaster -p πριν το βήμα buildworld. Οι περιπτώσεις αυτές περιγράφονται στο UPDATING. Σε γενικές γραμμές πάντως, μπορείτε με ασφάλεια να παραλείψετε αυτό το βήμα, αν δεν αναβαθμίζετε το σύστημα σας μεταξύ πολλαπλών εκδόσεων του &os;. Μετά την επιτυχή ολοκλήρωση του installkernel, θα πρέπει να επανεκκινήσετε σε κατάσταση ενός χρήστη (π.χ. χρησιμοποιώντας την εντολή boot -s στην προτροπή του φορτωτή εκκίνησης). Έπειτα εκτελέστε: &prompt.root; adjkerntz -i &prompt.root; mount -a -t ufs &prompt.root; mergemaster -p &prompt.root; cd /usr/src &prompt.root; make installworld &prompt.root; mergemaster &prompt.root; reboot Διαβάστε τις Επιπλέον Εξηγήσεις Η διαδικασία που περιγράψαμε παραπάνω είναι μια απλή περίληψη για να σας βοηθήσει να ξεκινήσετε. Θα πρέπει ωστόσο να διαβάσετε τις παρακάτω ενότητες για να κατανοήσετε πλήρως κάθε βήμα, ειδικά αν θέλετε να χρησιμοποιήσετε δικό σας προσαρμοσμένο πυρήνα. Διαβάστε το <filename>/usr/src/UPDATING</filename> Πριν κάνετε οτιδήποτε άλλο, διαβάστε το /usr/src/UPDATING (ή το αντίστοιχο αρχείο, αν έχετε αποθηκεύσει τον πηγαίο κώδικα σε άλλο κατάλογο). Το αρχείο αυτό περιέχει σημαντικές πληροφορίες σχετικά με προβλήματα που μπορεί να συναντήσετε ή ίσως να καθορίζει τη σειρά με την οποία πρέπει να εκτελεστούν κάποιες εντολές. Αν το αρχείο UPDATING έρχεται σε σύγκρουση με κάτι που διαβάσατε εδώ, προτεραιότητα έχει το αρχείο UPDATING. Η ανάγνωση του αρχείου UPDATING δεν είναι αποδεκτό υποκατάστατο της συνδρομής στη σωστή λίστα ηλεκτρονικού ταχυδρομείου, όπως περιγράψαμε προηγουμένως. Οι δύο απαιτήσεις είναι συμπληρωματικές, δεν αλληλοαναιρούνται. Ελέγξτε το <filename>/etc/make.conf</filename> make.conf Εξετάστε τα αρχεία /usr/share/examples/etc/make.conf και /etc/make.conf. Το πρώτο περιέχει κάποιες προεπιλεγμένες μεταβλητές (defines), οι περισσότερες από τις οποίες είναι ως σχόλια. Για να τα χρησιμοποιήσετε όταν μεταγλωττίζετε το σύστημα σας, προσθέστε τα στο /etc/make.conf. Να έχετε υπόψη σας, πως οτιδήποτε προσθέτετε στο αρχείο /etc/make.conf χρησιμοποιείτε επίσης κάθε φορά που εκτελείτε την εντολή make, έτσι είναι γενικά καλή ιδέα να βάλετε τιμές που είναι λογικές για το σύστημα σας. Ένας τυπικός χρήστης θα θέλει πιθανώς να αντιγράψει τις γραμμές CFLAGS και NO_PROFILE από το αρχείο /usr/share/examples/etc/make.conf στο /etc/make.conf αφαιρώντας ταυτόχρονα και το σύμβολο του σχολίου. Εξετάστε και τις άλλες μεταβλητές (COPTFLAGS, NOPORTDOCS κ.ο.κ.) και αποφασίστε αν σχετίζονται με το επιθυμητό για σας αποτέλεσμα. Ενημερώστε τα Αρχεία στο <filename>/etc</filename> Ο κατάλογος /etc περιέχει μεγάλο μέρος των πληροφοριών ρύθμισης του συστήματος σας, όπως επίσης και scripts που εκτελούνται κατά την εκκίνηση του συστήματος. Μερικά από τα scripts αυτά αλλάζουν από έκδοση σε έκδοση του &os;. Ορισμένα από τα αρχεία ρυθμίσεων χρησιμοποιούνται επίσης κατά την καθημερινή χρήση του συστήματος. Το /etc/group είναι ένα από αυτά. Έχουν υπάρξει περιπτώσεις στο παρελθόν, όπου το make installworld ανέμενε από πριν την ύπαρξη συγκεκριμένων ονομάτων χρηστών (usernames) ή ομάδων (groups). Κατά τη διαδικασία της αναβάθμισης ήταν αρκετά πιθανό αυτοί οι χρήστες ή ομάδες να μην υπήρχαν. Αυτό δημιουργούσε προβλήματα στην διαδικασία. Σε κάποιες περιπτώσεις, το make buildworld θα ελέγξει αν υπάρχουν αυτοί οι χρήστες ή ομάδες. Μια τέτοια περίπτωση παρουσιάστηκε όταν προστέθηκε ο χρήστης smmsp. Η διαδικασία αναβάθμισης αποτύγχανε σε πολλούς χρήστες, τη στιγμή που το &man.mtree.8; προσπαθούσε να δημιουργήσει τον κατάλογο /var/spool/clientmqueue. Η λύση είναι να εκτελέσετε το &man.mergemaster.8; σε κατάσταση προ-εγκατάστασης, δίνοντας την επιλογή . Αυτή θα συγκρίνει μόνο τα αρχεία που είναι απαραίτητα για την επιτυχία εκτέλεσης του buildworld ή του installworld. Αν η έκδοση του mergemaster που έχετε είναι παλιά και δεν υποστηρίζει το , χρησιμοποιήστε την νέα έκδοση από το δέντρο του πηγαίου κώδικα όταν την εκτελέσετε για πρώτη φορά: &prompt.root; cd /usr/src/usr.sbin/mergemaster &prompt.root; ./mergemaster.sh -p Αν αισθάνεστε ιδιαίτερα παρανοϊκός, μπορείτε να ελέγξετε το σύστημα σας για να δείτε ποια αρχεία ανήκουν στην ομάδα που μετονομάζετε ή διαγράφετε: &prompt.root; find / -group GID -print Η παραπάνω εντολή θα σας δείξει όλα τα αρχεία τα οποία ανήκουν στην ομάδα GID (μπορείτε να δώσετε όνομα ή αριθμητικό αναγνωριστικό της ομάδας). Μεταβείτε σε Κατάσταση Ενός Χρήστη single-user mode Ίσως προτιμάτε να μεταγλωττίσετε το σύστημα σε κατάσταση ενός χρήστη. Εκτός από το προφανές πλεονέκτημα της ελαφρά μεγαλύτερης ταχύτητας, η επανεγκατάσταση του συστήματος θα επηρεάσει πολλά σημαντικά αρχεία του συστήματος, όλα τα εκτελέσιμα αρχεία του βασικού συστήματος, τις βιβλιοθήκες, τα αρχεία include κ.α. Αν τα αλλάξετε αυτά σε ένα σύστημα που βρίσκεται σε κανονική λειτουργία (και ειδικά αν υπάρχουν ενεργοί χρήστες την δεδομένη στιγμή), ψάχνετε για μπελάδες. multi-user mode Μια άλλη μέθοδος είναι να μεταγλωττίσετε το σύστημα σε κατάσταση κανονικής λειτουργίας, αλλά να μεταβείτε σε κατάσταση ενός χρήστη για την εγκατάσταση. Αν θέλετε να το κάνετε με αυτό τον τρόπο, απλώς μην εκτελέσετε τα ακόλουθα βήματα μέχρι το τέλος της μεταγλώττισης. Μπορείτε να αναβάλλετε τη μετάβαση σε κατάσταση ενός χρήστη μέχρι να είστε έτοιμοι για το installkernel ή installworld. Ως υπερχρήστης μπορείτε να εκτελέσετε: &prompt.root; shutdown now σε ένα σύστημα σε κανονική λειτουργία για να μεταβείτε σε κατάσταση ενός χρήστη. Εναλλακτικά, επανεκκινήστε το σύστημα και στην προτροπή του φορτωτή εκκίνησης, επιλέξτε single user. Το σύστημα θα ξεκινήσει σε κατάσταση ενός χρήστη. Στην προτροπή της γραμμής εντολών θα πρέπει να γράψετε: &prompt.root; fsck -p &prompt.root; mount -u / &prompt.root; mount -a -t ufs &prompt.root; swapon -a Θα γίνει έλεγχος στα συστήματα αρχείων, και προσάρτηση του / με δυνατότητα ανάγνωσης/εγγραφής. Έπειτα θα προσαρτηθούν όλα τα άλλα συστήματα αρχείων UFS τα οποία αναφέρονται στο /etc/fstab, και θα ενεργοποιηθεί το swap. Αν το CMOS ρολόι του υπολογιστή σας είναι ρυθμισμένο σε τοπική ώρα και όχι σε GMT (αυτό είναι αλήθεια αν η έξοδος της εντολής &man.date.1; δεν δείχνει σωστή ημερομηνία και ώρα), ίσως χρειαστεί να εκτελέσετε επίσης την παρακάτω εντολή: &prompt.root; adjkerntz -i Με αυτό τον τρόπο θα βεβαιωθείτε ότι οι τοπικές σας ρυθμίσεις ώρας έχουν ρυθμιστεί σωστά. Διαφορετικά, μπορεί να συναντήσετε προβλήματα αργότερα. Διαγράψτε το <filename>/usr/obj</filename> Καθώς γίνεται η επαναμεταγλώττιση, τμήματα του συστήματος τοποθετούνται από προεπιλογή σε υποκαταλόγους του /usr/obj. Οι υποκατάλογοι αυτοί αντιγράφουν τη δομή που ακολουθείται στο /usr/src. Μπορείτε να επιταχύνετε τη διαδικασία του make buildworld και επίσης να γλυτώσετε από κάποια πιθανά προβλήματα, αν διαγράψετε και αυτό τον κατάλογο. Κάποια αρχεία σε υποκαταλόγους του /usr/obj μπορεί να έχουν χαρακτηριστεί ως immutable μέσω του αντίστοιχου flag (για περισσότερες λεπτομέρειες δείτε το &man.chflags.1;). Πριν διαγράψετε αυτά τα αρχεία, θα πρέπει πρώτα να καταργήσετε αυτό το flag. &prompt.root; cd /usr/obj &prompt.root; chflags -R noschg * &prompt.root; rm -rf * Επαναμεταγλωττίστε το Βασικό Σύστημα Αποθηκεύστε την Έξοδο Καθώς εκτελείται η &man.make.1;, είναι καλή ιδέα η έξοδος της να αποθηκεύεται σε κάποιο άλλο αρχείο. Αν κάτι πάει στραβά, θα έχετε ένα αντίγραφο του μηνύματος λάθους. Αν και αυτό ίσως δεν σας βοηθήσει να βρείτε τι πήγε στραβά, μπορεί να διευκολύνει άλλους αν στείλετε το μήνυμα σας σε μια από τις λίστες ηλεκτρονικού ταχυδρομείου του &os;. Ο ευκολότερος τρόπος για να γίνει αυτό, είναι χρησιμοποιώντας την εντολή &man.script.1; με μια παράμετρο που να καθορίζει το όνομα του αρχείου στο οποίο θα αποθηκευτεί η έξοδος. Θα πρέπει να το εκτελέσετε αμέσως πριν ξεκινήσετε την μεταγλώττιση του βασικού συστήματος, και να γράψετε exit μόλις η διαδικασία ολοκληρωθεί. &prompt.root; script /var/tmp/mw.out Script started, output file is /var/tmp/mw.out &prompt.root; make TARGET … μεταγλώττιση, μεταγλώττιση, μεταγλώττιση … &prompt.root; exit Script done, … Αν αποφασίσετε να αποθηκεύσετε την έξοδο, μη χρησιμοποιήσετε για αυτό το σκοπό τον κατάλογο /tmp. Τα περιεχόμενα αυτού του καταλόγου πιθανώς να διαγραφούν την επόμενη φορά που θα εκκινήσετε το σύστημα σας. Ένας καλύτερος κατάλογος για την αποθήκευση του είναι ο /var/tmp (όπως στο προηγούμενο παράδειγμα) ή ο προσωπικός κατάλογος του root. Μεταγλωττίστε το Βασικό Σύστημα Θα πρέπει να βρίσκεστε στον κατάλογο /usr/src: &prompt.root; cd /usr/src (εκτός αν φυσικά έχετε αποθηκεύσει τον πηγαίο κώδικα σε κάποιο άλλο κατάλογο, οπότε απλώς μετακινηθείτε σε αυτόν). make Για να επαναμεταγλωττίσετε το βασικό σύστημα, χρησιμοποιήστε την εντολή &man.make.1;. Η εντολή αυτή διαβάζει τις σχετικές οδηγίες από το αρχείο Makefile, το οποίο περιγράφει με ποιο τρόπο πρέπει να μεταγλωττιστούν τα προγράμματα από τα οποία αποτελείται το &os;, τη σειρά με την οποία πρέπει να γίνει η μεταγλώττιση κ.ο.κ. Η γενική μορφή της εντολής που θα πληκτρολογήσετε είναι η παρακάτω: &prompt.root; make -x -DVARIABLE target Στο παράδειγμα αυτό, το αντιπροσωπεύει μια επιλογή που θέλετε να δώσετε στην &man.make.1;. Δείτε την σελίδα manual του &man.make.1; για παραδείγματα δυνατών επιλογών. Η επιλογή περνάει μια μεταβλητή στο Makefile. Η συμπεριφορά του Makefile ελέγχεται από τέτοιου είδους μεταβλητές. Πρόκειται για τις ίδιες μεταβλητές που καθορίζονται και στο /etc/make.conf, και αυτός είναι ένας ακόμα τρόπος καθορισμού τους. &prompt.root; make -DNO_PROFILE target Το παραπάνω δείχνει ένα επιπλέον τρόπο να καθορίσετε ότι δεν θέλετε να μεταγλωττιστούν οι βιβλιοθήκες με πληροφορίες profiling, και αντιστοιχεί με την παρακάτω γραμμή στο /etc/make.conf: NO_PROFILE= true # Avoid compiling profiled libraries Το target δηλώνει στο &man.make.1; τι θέλετε να κάνετε. Σε κάθε Makefile ορίζεται ένας αριθμός διαφορετικών targets, και η επιλογή που θα κάνετε, καθορίζει τι ακριβώς θα γίνει. Κάποια από τα targets που καθορίζονται στο Makefile, δεν προορίζονται για άμεση εκτέλεση από το χρήστη. Αντί για αυτό, χρησιμοποιούνται από τη διαδικασία μεταγλώττισης για να μοιραστεί ο αριθμός των βημάτων που απαιτούνται για τη μεταγλώττιση του συστήματος, σε ένα αριθμό υπo-βημάτων. Στις περισσότερες περιπτώσεις δεν θα χρειαστεί να δώσετε καμία παράμετρο στο &man.make.1;, και έτσι η εντολή σας θα μοιάζει με την παρακάτω: &prompt.root; make target Όπου το target θα είναι μια από τις πολλές επιλογές μεταγλώττισης. Το πρώτο target θα πρέπει πάντα να είναι το buildworld. Όπως εννοείται και από το όνομα, το buildworld μεταγλωττίζει ένα πλήρες δέντρο μέσα στον κατάλογο /usr/obj, ενώ το installworld, εγκαθιστά αυτό το δέντρο στο τρέχον μηχάνημα. Η ύπαρξη διαφορετικών επιλογών, είναι χρήσιμη για δύο λόγους. Πρώτα από όλα, σας επιτρέπει να εκτελέσετε τη διαδικασία μεταγλώττισης με ασφάλεια, γνωρίζοντας ότι δεν πρόκειται να επηρεαστεί κανένα τμήμα του τρέχοντος συστήματος σας. Η διαδικασία μεταγλώττισης είναι self hosted, απομονωμένη από την υπόλοιπη λειτουργία του μηχανήματος. Μπορείτε έτσι να εκτελέσετε το buildworld σε ένα μηχάνημα που βρίσκεται σε κανονική λειτουργία (πολλαπλών χρηστών) χωρίς να υπάρχει φόβος παρενεργειών. Ωστόσο, συνίσταται να εκτελέσετε το installworld σε κατάσταση λειτουργίας ενός χρήστη. Ο δεύτερος λόγος είναι ότι σας επιτρέπει να χρησιμοποιήσετε προσαρτήσεις NFS για να αναβαθμίσετε πολλά μηχανήματα του δικτύου σας. Αν έχετε τρία μηχανήματα, τα A, B και C τα οποία θέλετε να αναβαθμίσετε, εκτελέστε το make buildworld και το make installworld στο μηχάνημα A. Το B και το C μπορούν να προσαρτήσουν τον κατάλογο /usr/src και τον /usr/obj από τον A μέσω NFS, και έπειτα μπορείτε να εκτελέσετε το make installworld για να εγκαταστήσετε το έτοιμο πλέον σύστημα στον B και C. Αν και υπάρχει ακόμα το target world, δεν συνίσταται πλέον η χρήση του. Εκτελέστε την εντολή: &prompt.root; make buildworld Μπορείτε να καθορίσετε την επιλογή στην make ώστε να εκτελεστεί σε πολλαπλές διεργασίες. Αυτό είναι περισσότερο χρήσιμο σε μηχανήματα με πολλούς επεξεργαστές, ωστόσο καθώς το μεγαλύτερο μέρος της διαδικασίας μεταγλώττισης καθυστερεί εξαιτίας του σκληρού δίσκου (IO bound) και όχι της CPU, μπορεί να σας φανεί χρήσιμο ακόμα και σε μηχανήματα με ένα επεξεργαστή. Σε ένα τυπικό μηχάνημα με μια CPU, θα μπορούσατε να δώσετε: &prompt.root; make -j4 buildworld Με την παραπάνω εντολή, το &man.make.1; θα χρησιμοποιεί μέχρι 4 διεργασίες κάθε χρονική στιγμή. Από την εμπειρία που έχουμε και από ότι αναφέρουν οι χρήστες στις λίστες, φαίνεται ότι η ρύθμιση αυτή δίνει γενικά την καλύτερη απόδοση. Αν έχετε μηχάνημα με πολλούς επεξεργαστές, και χρησιμοποιείτε πυρήνα με δυνατότητα SMP, δοκιμάστε τιμές μεταξύ του 6 και του 10 για να δείτε ποια επιταχύνει καλύτερα το αποτέλεσμα. Χρόνος Μεταγλώττισης rebuilding world timings Ο χρόνος που απαιτείται για την μεταγλώττιση επηρεάζεται από πολλούς παράγοντες. Ωστόσο, σε σύγχρονα μηχανήματα η διαδικασία δεν κρατάει συνήθως παραπάνω από μία ή δύο ώρες, όταν γίνεται μεταγλώττιση του δέντρου &os.stable;, και μάλιστα χωρίς να χρειάζεται να γίνουν ειδικές ρυθμίσεις ή κόλπα. Το δέντρο &os.current; χρειάζεται γενικά λίγο περισσότερο χρόνο για να μεταγλωττιστεί. Μεταγλωττίστε και Εγκαταστήστε Νέο Πυρήνα kernel compiling Για να εκμεταλλευθείτε πλήρως το νέο σας σύστημα, θα πρέπει να επαναμεταγλωττίσετε τον πυρήνα. Αυτό είναι πρακτικά αναγκαίο, καθώς κάποιες δομές στη μνήμη πιθανώς να έχουν αλλάξει, και έτσι προγράμματα όπως τα &man.ps.1; και &man.top.1; δεν θα λειτουργούν σωστά μέχρι να συγχρονίσετε τον πυρήνα με την έκδοση πηγαίου κώδικα του βασικού συστήματος. Ο απλούστερος και πλέον ασφαλής τρόπος, είναι να μεταγλωττίσετε και να εγκαταστήσετε ένα πυρήνα βασισμένο στον GENERIC. Αν και ο GENERIC μπορεί να μην περιέχει όλες τις απαραίτητες συσκευές για το σύστημα σας, θα πρέπει να περιέχει ότι χρειάζεται ώστε να ξεκινήσετε ξανά το σύστημα σας σε κατάσταση λειτουργίας ενός χρήστη. Αυτό είναι ένα καλό τεστ σωστής λειτουργίας του συστήματος. Μετά την εκκίνηση με τον GENERIC, και αφού επαληθεύσετε τη σωστή λειτουργία του συστήματος, μπορείτε να μεταγλωττίσετε ένα νέο πυρήνα βασισμένο στο δικό σας προσαρμοσμένο αρχείο ρυθμίσεων. Στο &os; είναι σημαντικό να εκτελέσετε το build world πριν μεταγλωττίσετε νέο πυρήνα. Αν θέλετε να μεταγλωττίσετε νέο πυρήνα, και έχετε ήδη ένα αρχείο με προσαρμοσμένες ρυθμίσεις, χρησιμοποιήστε απλώς την επιλογή KERNCONF=MYKERNEL με τον τρόπο που φαίνεται παρακάτω: &prompt.root; cd /usr/src &prompt.root; make buildkernel KERNCONF=MYKERNEL &prompt.root; make installkernel KERNCONF=MYKERNEL Σημειώστε ότι αν έχετε ανεβάσει την τιμή του kern.securelevel πάνω από το 1, και έχετε θέσει το flag noschg ή κάποιο αντίστοιχο στο εκτελέσιμο αρχείο του πυρήνα, μάλλον θα χρειαστεί να μεταβείτε σε κατάσταση λειτουργίας ενός χρήστη για να χρησιμοποιήσετε το installkernel. Διαφορετικά, μπορείτε να εκτελέσετε και τις δύο αυτές εντολές από την κανονική κατάσταση λειτουργίας (πολλών χρηστών) χωρίς να δημιουργηθούν προβλήματα. Δείτε τη σελίδα manual του &man.init.8; για λεπτομέρειες σχετικά με τη ρύθμιση kern.securelevel και τη σελίδα του &man.chflags.1; για λεπτομέρειες σχετικά με τα διάφορα flags που χρησιμοποιούνται σε αρχεία. Επανεκκινήστε σε Κατάσταση Λειτουργίας Ενός Χρήστη single-user mode Θα πρέπει να επανεκκινήσετε σε κατάσταση λειτουργίας ενός χρήστη για να επαληθεύσετε τη λειτουργία του νέου πυρήνα. Για το σκοπό αυτό, χρησιμοποιήστε τις οδηγίες που είδαμε στο . Εγκαταστήστε τα Νέα Εκτελέσιμα του Συστήματος Αν μεταγλωττίζατε μια αρκετά πρόσφατη έκδοση του &os;, η οποία διαθέτει το target make buildworld, θα πρέπει τώρα να χρησιμοποιήσετε το installworld για να εγκαταστήσετε τα νέα εκτελέσιμα του συστήματος. Εκτελέστε τις παρακάτω εντολές: &prompt.root; cd /usr/src &prompt.root; make installworld Αν έχετε καθορίσει μεταβλητές στη γραμμή εντολών του make buildworld θα πρέπει να καθορίσετε τις ίδιες μεταβλητές και στην γραμμή εντολών του make installworld. Αυτό δεν είναι απαραίτητα αλήθεια για άλλες επιλογές. Για παράδειγμα, η επιλογή δεν πρέπει ποτέ να χρησιμοποιείτε με το installworld. Για παράδειγμα αν εκτελέσετε: &prompt.root; make -DNO_PROFILE buildworld Θα πρέπει να εγκαταστήσετε το αποτέλεσμα χρησιμοποιώντας: &prompt.root; make -DNO_PROFILE installworld διαφορετικά το &man.make.1; θα προσπαθήσει να εγκαταστήσει βιβλιοθήκες με profiling, τις οποίες όμως δεν μεταγλωττίσατε κατά τη διάρκεια της φάσης make buildworld. Ενημερώστε Όσα Αρχεία δεν Ενημερώθηκαν από το <command>make installworld</command> Η επαναμεταγλώττιση του βασικού συστήματος δεν θα ενημερώσει ορισμένους καταλόγους (ειδικότερα τους /etc, /var και /usr) με τα νέα ή αλλαγμένα αρχεία ρυθμίσεων. Ο απλούστερος τρόπος για να ενημερώσετε τα αρχεία αυτά είναι να χρησιμοποιήσετε το &man.mergemaster.8;, αν και μπορείτε να το κάνετε και χειροκίνητα αν προτιμάτε. Άσχετα από τον τρόπο που θα προτιμήσετε, βεβαιωθείτε ότι έχετε πάρει αντίγραφο ασφαλείας του /etc σε περίπτωση που κάτι πάει στραβά. Tom Rhodes Συνεισφορά του <command>mergemaster</command> mergemaster Το βοηθητικό πρόγραμμα &man.mergemaster.8; είναι ένα Bourne script το οποίο θα σας βοηθήσει να καθορίσετε τις διαφορές μεταξύ των εγκατεστημένων στο /etc αρχείων ρυθμίσεων, και των αντίστοιχων στο δέντρο πηγαίου κώδικα στο /usr/src/etc. Αυτή είναι και η συνιστώμενη λύση για να ενημερώσετε τα αρχεία ρυθμίσεων του συστήματος με τυχόν αλλαγές που έχουν γίνει στον νέο πηγαίο κώδικα. Για να ξεκινήσετε, απλώς γράψτε mergemaster στην προτροπή της γραμμής εντολών και παρακολουθήστε την καθώς λειτουργεί. Το mergemaster θα δημιουργήσει ένα προσωρινό περιβάλλον root, από το / και κάτω, και θα το γεμίσει με διάφορα αρχεία ρυθμίσεων του συστήματος. Έπειτα θα γίνει σύγκριση αυτών των αρχείων με τα αντίστοιχα που βρίσκονται ήδη εγκατεστημένα στο σύστημα σας. Στο σημείο αυτό, θα σας δείξει τα αρχεία που διαφέρουν με μορφή &man.diff.1;, όπου οι γραμμές που έχουν τροποποιηθεί ή είναι νέες θα φαίνονται με ένα , ενώ με το θα φαίνονται οι γραμμές που είτε αφαιρούνται εντελώς ή που αντικαθίστανται από μια νέα γραμμή. Δείτε τη σελίδα manual του &man.diff.1; για περισσότερες πληροφορίες σχετικά με τη σύνταξη του &man.diff.1; και για τον τρόπο με τον οποίο φαίνονται οι διαφορές μεταξύ των αρχείων. Το &man.mergemaster.8; θα σας δείξει έπειτα κάθε αρχείο που παρουσιάζει διαφορές, και στο σημείο αυτό θα έχετε την δυνατότητα είτε να διαγράψετε το νέο αρχείο (το οποίο αναφέρεται ως προσωρινό αρχείο), είτε να εγκαταστήσετε το προσωρινό αρχείο χωρίς να κάνετε σε αυτό καμιά αλλαγή, είτε να συγχωνεύσετε τις αλλαγές των δύο αρχείων, ή τέλος να ξαναδείτε τις διαφορές μέσω της &man.diff.1;. Αν επιλέξετε να διαγράψετε το προσωρινό αρχείο, το &man.mergemaster.8; θα καταλάβει ότι επιθυμείτε να διατηρήσετε το τρέχον αρχείο σας χωρίς αλλαγές, και να διαγράψετε τη νέα έκδοση. Η επιλογή αυτή γενικά δεν συνίσταται, εκτός αν δεν βλέπετε κανένα λόγο να αλλάξετε το τρέχον αρχείο. Μπορείτε να δείτε βοήθεια οποιαδήποτε στιγμή κατά τη διάρκεια της διαδικασίας, πληκτρολογώντας ? στην προτροπή του &man.mergemaster.8;. Αν αποφασίσετε να παραλείψετε κάποιο αρχείο, αυτό θα εμφανιστεί ξανά μετά το τέλος όλων των άλλων αρχείων. Αν επιλέξετε να εγκαταστήσετε το προσωρινό αρχείο χωρίς αλλαγές, αυτό θα αντικαταστήσει το ήδη εγκατεστημένο σας αρχείο. Αυτή είναι και η καλύτερη επιλογή για τα αρχεία τα οποία δεν έχετε αλλάξει εσείς χειροκίνητα. Αν επιλέξετε να συγχωνεύσετε τα δύο αρχεία, θα εμφανιστεί ένας επεξεργαστής κειμένου με τα περιεχόμενα και των δύο αρχείων. Μπορείτε τώρα να τα συγχωνεύσετε παρατηρώντας ταυτόχρονα και τα δύο αρχεία δίπλα-δίπλα, και επιλέγοντας τμήματα και από τα δύο για να δημιουργήσετε την τελική έκδοση. Κατά τη σύγκριση αυτή, μπορείτε να χρησιμοποιήσετε το πλήκτρο l για να επιλέξετε τα περιεχόμενα που φαίνονται στην αριστερή πλευρά, ή το r για τα αντίστοιχα περιεχόμενα στη δεξιά. Το τελικό αποτέλεσμα θα είναι ένα αρχείο που θα αποτελείται από τμήματα και των δύο αρχείων, και το οποίο μπορείτε να εγκαταστήσετε. Η επιλογή αυτή χρησιμοποιείται συνήθως για αρχεία των οποίων το περιεχόμενο έχει μεταβληθεί από το χρήστη. Αν επιλέξετε να δείτε ξανά τις διαφορές μέσω της &man.diff.1;, αυτές θα εμφανιστούν ακριβώς όπως έγινε και πριν σας ρωτήσει το &man.mergemaster.8; να επιλέξετε τι θέλετε να κάνετε με το αρχείο. Μόλις ολοκληρωθεί η λειτουργία του &man.mergemaster.8; στα αρχεία συστήματος, θα σας ρωτήσει για άλλες επιλογές. Το &man.mergemaster.8; ίσως σας ρωτήσει αν θέλετε να αναδημιουργήσετε το αρχείο των κωδικών (password file), και θα τελειώσει δίνοντας σας την επιλογή να διαγράψετε τυχόν προσωρινά αρχεία που δημιουργήθηκαν κατά την διαδικασία. Χειροκίνητη Ενημέρωση Αν επιθυμείτε να κάνετε την ενημέρωση χειροκίνητα, δεν μπορείτε απλώς να αντιγράψετε τα αρχεία από τον κατάλογο /usr/src/etc στον /etc και να περιμένετε ότι το σύστημα σας θα λειτουργήσει σωστά. Κάποια από αυτά τα αρχεία θα πρέπει να εγκατασταθούν πρώτα. Αυτό συμβαίνει επειδή ο κατάλογος /usr/src/etc δεν είναι κανονικό αντίγραφο του /etc. Επιπρόσθετα, υπάρχουν αρχεία τα οποία πρέπει να βρίσκονται στον κατάλογο /etc, αλλά δεν υπάρχουν στον /usr/src/etc. Αν χρησιμοποιείτε το &man.mergemaster.8; (όπως και συνίσταται), μπορείτε να διαβάσετε κατευθείαν την επόμενη ενότητα. Ο απλούστερος τρόπος να το κάνετε αυτό χειροκίνητα, είναι να εγκαταστήσετε τα αρχεία σε ένα νέο κατάλογο, και έπειτα να τα εξετάσετε ένα-ένα ψάχνοντας για τις αλλαγές. Κρατήστε Ένα Αντίγραφο Ασφαλείας του Καταλόγου <filename>/etc</filename> Αν και θεωρητικά, τίποτα δεν πρόκειται να πειράξει αυτό τον κατάλογο αυτόματα, είναι πάντα καλύτερα να είμαστε σίγουροι. Για το λόγο αυτό, αντιγράψτε τον υπάρχοντα κατάλογο /etc σε κάποιο ασφαλές μέρος. Χρησιμοποιήστε μια εντολή όπως η παρακάτω: &prompt.root; cp -Rp /etc /etc.old Η επιλογή πραγματοποιεί αναδρομική αντιγραφή, ενώ η διατηρεί τα δικαιώματα, την ιδιοκτησία, τις ημερομηνίες των αρχείων, κ.ο.κ. θα πρέπει να δημιουργήσετε μια ψευτο-δομή καταλόγων για να εγκαταστήσετε το νέο κατάλογο /etc και άλλα αρχεία. Μια λογική επιλογή είναι ο κατάλογος /var/tmp/root, και κάτω από αυτόν, θα πρέπει επίσης να δημιουργήσετε και μια ολόκληρη σειρά από τους υποκαταλόγους που απαιτούνται. &prompt.root; mkdir /var/tmp/root &prompt.root; cd /usr/src/etc &prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution Οι παραπάνω εντολές θα δημιουργήσουν την απαιτούμενη δομή καταλόγων και θα εγκαταστήσουν τα αρχεία. Μεγάλο μέρος των υποκαταλόγων που έχουν δημιουργηθεί κάτω από τον /var/tmp/root είναι άδειοι, και πρέπει να διαγραφούν. Ο απλούστερος τρόπος για να γίνει αυτό, φαίνεται παρακάτω: &prompt.root; cd /var/tmp/root &prompt.root; find -d . -type d | xargs rmdir 2>/dev/null Αυτό θα διαγράψει όλους τους άδειους υποκαταλόγους. (Η έξοδος σφάλματος ανακατευθύνεται στο /dev/null ώστε να μην εμφανίζονται στην οθόνη προειδοποιήσεις για καταλόγους που δεν είναι άδειοι.) Τώρα, ο /var/tmp/root περιέχει όλα τα αρχεία που θα πρέπει να τοποθετηθούν σε κατάλληλες θέσεις κάτω από τον /. Θα πρέπει τώρα να διατρέξετε καθένα από αυτά τα αρχεία, και να καθορίσετε πως καθένα από αυτά διαφέρει από το αντίστοιχο υπάρχον (εγκατεστημένο) αρχείο. Σημειώστε ότι κάποια από τα αρχεία τα οποία έχουν εγκατασταθεί στον /var/tmp/root έχουν μια αρχική .. Τη στιγμή που γράφονται αυτές οι γραμμές, τα μόνα αρχεία στα οποία συμβαίνει αυτό είναι τα αρχεία εκκίνησης του κελύφους στον κατάλογο /var/tmp/root/ και /var/tmp/root/root/, αν και μπορεί να υπάρχουν και άλλα (ανάλογα με το πότε διαβάζετε το κείμενο). Βεβαιωθείτε ότι χρησιμοποιείτε την εντολή ls -a για να τα δείτε όλα. Ο απλούστερος τρόπος για να συγκρίνετε δύο αρχεία, είναι να χρησιμοποιήσετε την εντολή &man.diff.1;: &prompt.root; diff /etc/shells /var/tmp/root/etc/shells Η παραπάνω εντολή θα σας δείξει τις διαφορές μεταξύ του αρχείου /etc/shells και του νέου αρχείου /var/tmp/root/etc/shells. Χρησιμοποιήστε τις διαφορές αυτές για να αποφασίσετε αν θα πρέπει να συγχωνεύσετε τις αλλαγές που έχετε κάνει, ή απλώς να αντιγράψετε το παλιό σας αρχείο πάνω από το νέο. Προσθέστε την Ημερομηνία στο Όνομα του Νέου Root Καταλόγου, (<filename>/var/tmp/root</filename>) Ώστε να Μπορείτε Εύκολα να Συγκρίνετε Διαφορετικές Εκδόσεις Μεταξύ τους Αν μεταγλωττίζετε συχνά το βασικό σύστημα, θα πρέπει επίσης να ενημερώνετε συχνά τον κατάλογο /etc, το οποίο μπορεί να είναι ενοχλητικό. Μπορείτε να επιταχύνετε αυτή τη διαδικασία, τηρώντας ένα αντίγραφο του τελευταίου σετ αλλαγμένων αρχείων τα οποία συγχωνεύσατε στον κατάλογο /etc. Η παρακάτω διαδικασία θα σας δώσει μια ιδέα για το πως μπορεί να γίνει αυτό: Μεταγλωττίστε το βασικό σύστημα όπως κάνετε συνήθως. Όταν θέλετε να ενημερώσετε τον /etc και τους άλλους καταλόγους, δώστε στον κατάλογο προορισμού ένα όνομα βασισμένο στην τρέχουσα ημερομηνία. Αν το κάνατε αυτό στις 14 Φεβρουαρίου 1998, θα γράφατε κάτι σαν το παρακάτω: &prompt.root; mkdir /var/tmp/root-19980214 &prompt.root; cd /usr/src/etc &prompt.root; make DESTDIR=/var/tmp/root-19980214 \ distrib-dirs distribution Συγχωνεύστε τις αλλαγές από αυτό τον κατάλογο, με τον τρόπο που περιγράψαμε παραπάνω. Μην διαγράψετε τον κατάλογο /var/tmp/root-19980214 όταν τελειώσετε με την παραπάνω διαδικασία. Όταν κατεβάσετε την τελευταία έκδοση του πηγαίου κώδικα και τον μεταγλωττίσετε ξανά, ακολουθήστε το βήμα 1. Αυτό θα σας δώσει ένα κατάλογο που μπορεί να ονομάζεται /var/tmp/root-19980221 (αν ανάμεσα στις δύο μεταγλωττίσεις παρεμβάλλεται διάστημα μιας εβδομάδας). Μπορείτε τώρα να δείτε τις διαφορές που υπάρχουν ανάμεσα στις δύο εβδομάδες, χρησιμοποιώντας την εντολή &man.diff.1; σε αναδρομική λειτουργία για να δημιουργήσετε τις διαφορές μεταξύ των δύο καταλόγων: &prompt.root; cd /var/tmp &prompt.root; diff -r root-19980214 root-19980221 Τυπικά, αυτό το σετ αλλαγών θα είναι πολύ μικρότερο από αυτό μεταξύ του /var/tmp/root-19980221/etc και του /etc. Καθώς αυτό το σετ αλλαγών είναι μικρότερο, είναι και πιο εύκολο να εφαρμόσετε αυτές τις αλλαγές στον κατάλογο /etc. Μπορείτε τώρα να διαγράψετε τον παλιότερο από τους δύο καταλόγους /var/tmp/root-*: &prompt.root; rm -rf /var/tmp/root-19980214 Επαναλάβετε αυτή τη διαδικασία κάθε φορά που θέλετε να συγχωνεύσετε τις αλλαγές στον κατάλογο /etc. Μπορείτε επίσης να χρησιμοποιήσετε την εντολή &man.date.1; για να αυτοματοποιήσετε την δημιουργία των ονομάτων καταλόγων: &prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"` Επανεκκίνηση Η διαδικασία έχει πλέον ολοκληρωθεί. Αφού επαληθεύσετε ότι όλα βρίσκονται στις σωστές θέσεις, μπορείτε να επανεκκινήσετε το σύστημα. Μια απλή εντολή &man.shutdown.8; είναι επαρκής: &prompt.root; shutdown -r now Ολοκλήρωση Έχετε πλέον αναβαθμίσει το &os; σύστημα σας. Συγχαρητήρια. Αν τα πράγματα δεν πήγαν εντελώς σωστά, είναι εύκολο να μεταγλωττίσετε ξανά οποιοδήποτε τμήμα του συστήματος. Για παράδειγμα, αν διαγράψετε κατά λάθος το /etc/magic ως μέρος μιας αναβάθμισης ή συγχώνευσης του /etc, η εντολή &man.file.1; θα σταματήσει να λειτουργεί. Στην περίπτωση αυτή, η διόρθωση είναι να εκτελέσετε: &prompt.root; cd /usr/src/usr.bin/file &prompt.root; make all install Ερωτήσεις Πρέπει να μεταγλωττίσω ξανά ολόκληρο το βασικό σύστημα σε κάθε αλλαγή; Δεν υπάρχει εύκολη απάντηση σε αυτό το ερώτημα, καθώς εξαρτάται από τη φύση της αλλαγής. Για παράδειγμα, αν εκτελέσετε το CVSup, και δείτε ότι ενημερώθηκαν τα παρακάτω αρχεία: src/games/cribbage/instr.c src/games/sail/pl_main.c src/release/sysinstall/config.c src/release/sysinstall/media.c src/share/mk/bsd.port.mk Το πιθανότερο είναι ότι δεν χρειάζεται να μεταγλωττίσετε ξανά όλο το βασικό σύστημα. Μπορείτε απλώς να μεταβείτε στους σχετικούς υποκαταλόγους και να εκτελέσετε το make all install, και θα έχετε τελειώσει. Αν όμως υπάρχει κάποια σημαντική αλλαγή, για παράδειγμα το src/lib/libc/stdlib, θα πρέπει είτε να επαναμεταγλωττίσετε το βασικό σύστημα, ή τουλάχιστον αυτά τα κομμάτια τα οποία είναι στατικά συνδεδεμένα (όπως και οτιδήποτε άλλο έχετε προσθέσει εσείς και το οποίο είναι στατικά συνδεδεμένο). Τελικά, η απόφαση είναι δική σας. Μπορεί να είστε ικανοποιημένος αν μεταγλωττίζετε το βασικό σύστημα κάθε δύο βδομάδες, αφήνοντας τις αλλαγές να συγκεντρωθούν στη διάρκεια αυτού του διαστήματος. Ή μπορεί να θέλετε να μεταγλωττίσετε μόνο τις αλλαγές, αν έχετε την πεποίθηση ότι μπορείτε να εντοπίσετε όλες τις εξαρτήσεις τους. Και φυσικά, όλα αυτά εξαρτώνται από το πόσο συχνά θέλετε να ενημερώνετε το σύστημα σας, και από το αν ακολουθείτε το &os.stable; ή το &os.current;. Η μεταγλώττιση μου απέτυχε με πλήθος μηνυμάτων signal 11 (ή λάθη με άλλα σήματα). Τι έχει συμβεί; signal 11 Αυτό συνήθως δείχνει προβλήματα υλικού. Η διαδικασία μεταγλώττισης του βασικού συστήματος είναι ένας αποτελεσματικός τρόπος να δοκιμάσετε το υλικό σας στα όρια του, και συχνά θα δείξει προβλήματα που σχετίζονται με τη μνήμη. Το πιο σύνηθες σύμπτωμα, είναι η απότομη διακοπή της μεταγλώττισης, με τον μεταγλωττιστή να φαίνεται ότι έχει λάβει κάποιο μυστηριώδες σήμα. Ένα σίγουρο σημάδι για το παραπάνω, είναι να επανεκκινήσετε τη διαδικασία, και αυτή να σταματήσει σε διαφορετικό σημείο. Στην περίπτωση αυτή, δεν υπάρχουν και πολλά που μπορείτε να κάνετε, εκτός από το να αρχίσετε να αλλάζετε εξαρτήματα στο μηχάνημα σας μέχρι να βρείτε αυτό που είναι υπαίτιο. Μπορώ να διαγράψω το /usr/obj όταν τελειώσω; Η σύντομη απάντηση είναι ναι. Το /usr/obj περιέχει όλα τα αντικειμενικά αρχεία που παράγονται κατά τη διάρκεια της μεταγλώττισης. Συνήθως, ένα από τα πρώτα βήματα στην διαδικασία make buildworld είναι η διαγραφή αυτού του καταλόγου και η αναδημιουργία του. Στην περίπτωση αυτή, το να κρατήσετε τον κατάλογο /usr/obj αφού έχετε τελειώσει, δεν έχει και πολύ νόημα, ενώ αν τον σβήσετε θα κερδίσετε ένα μεγάλο κομμάτι ελεύθερου χώρου (την παρούσα στιγμή περίπου 340 MB). Όμως, αν ξέρετε τι κάνετε, μπορείτε να οδηγήσετε το make buildworld να παραλείψει αυτό το βήμα. Αυτό θα επιταχύνει ιδιαίτερα τις νέες μεταγλωττίσεις, καθώς τα περισσότερα τμήματα του πηγαίου κώδικα δεν θα χρειάζονται ξανά μεταγλώττιση. Το μειονέκτημα είναι ότι ορισμένες φορές εμφανίζονται προβλήματα που έχουν σχέση με όχι και τόσο εμφανείς εξαρτήσεις, και μπορεί να οδηγήσουν σε μυστηριώδη αποτυχία της μεταγλώττισης. Τέτοια προβλήματα συχνά δημιουργούν θόρυβο στις λίστες του &os;, όταν κάποιος χρήστης παραπονιέται ότι η μεταγλώττιση του αποτυγχάνει, χωρίς να αντιλαμβάνεται ότι αυτό οφείλεται στην προσπάθεια του να συντομεύσει την διαδικασία. Μπορώ να συνεχίσω μια μεταγλώττιση που διέκοψα; Αυτό εξαρτάται από το πόσο έχετε προχωρήσει στη διαδικασία μέχρι τη στιγμή που βρήκατε το πρόβλημα. Σε γενικές γραμμές (και αυτός δεν είναι κανόνας που ισχύει πάντα), η διεργασία του make buildworld μεταγλωττίζει νέα αντίγραφα βασικών εργαλείων (όπως τα &man.gcc.1;, και &man.make.1;) καθώς και των βιβλιοθηκών συστήματος. Έπειτα εγκαθιστώνται αυτά τα εργαλεία και οι βιβλιοθήκες. Τα νέα εργαλεία και βιβλιοθήκες χρησιμοποιούνται έπειτα για να επαναμεταγλωττίσουν τους εαυτούς τους, και εγκαθίστανται ξανά. Ολόκληρο το σύστημα (το οποίο τώρα περιλαμβάνει και τα συνηθισμένα προγράμματα χρήστη όπως το &man.ls.1; ή το &man.grep.1;) επαναμεταγλωττίζεται χρησιμοποιώντας τα νέα αρχεία του συστήματος. Αν βρίσκεστε στο τελευταίο στάδιο, το οποίο θα το γνωρίζετε κοιτάζοντας την έξοδο που έχετε αποθηκεύσει, είναι σχετικά ασφαλές να κάνετε: … fix the problem … &prompt.root; cd /usr/src &prompt.root; make -DNO_CLEAN all Με τον τρόπο αυτό δεν θα αναιρέσετε την εργασία που έχει γίνει από το προηγούμενο make buildworld. Αν δείτε το μήνυμα: -------------------------------------------------------------- Building everything.. -------------------------------------------------------------- στην έξοδο της εντολής make buildworld, τότε είναι μάλλον ασφαλές να προχωρήσετε με αυτό τον τρόπο. Αν δεν δείτε αυτό το μήνυμα, ή αν δεν είστε σίγουρος, τότε είναι καλύτερα να κάνετε πλήρη μεταγλώττιση παρά να μετανιώνετε αργότερα. Πως μπορώ να επιταχύνω τη μεταγλώττιση του βασικού συστήματος; Εκτελέστε την σε κατάσταση ενός χρήστη. Βάλτε τους καταλόγους /usr/src και /usr/obj σε διαφορετικά συστήματα αρχείων τα οποία βρίσκονται και σε διαφορετικούς φυσικούς δίσκους. Αν είναι δυνατόν, βάλτε αυτούς τους δίσκους σε χωριστούς ελεγκτές. Ακόμα καλύτερα, μοιράστε αυτά τα συστήματα αρχείων σε πολλαπλούς δίσκους, χρησιμοποιώντας το πρόγραμμα οδήγησης &man.ccd.4; (concatenated disk driver, οδήγησης συνενωμένων δίσκων). Απενεργοποιήστε το profiling (θέστε την μεταβλητή NO_PROFILE=true στο /etc/make.conf). Είναι σχεδόν σίγουρο ότι δεν το χρειάζεστε. Στο αρχείο /etc/make.conf, θέστε το CFLAGS σε κάτι όπως . Η βελτιστοποίηση χρειάζεται αρκετά περισσότερο χρόνο, και η διαφορά απόδοσης μεταξύ και είναι συνήθως αμελητέα. Το επιτρέπει στον μεταγλωττιστή να χρησιμοποιήσει pipes για επικοινωνία αντί για προσωρινά αρχεία. Αυτό καταναλώνει περισσότερη μνήμη, αλλά χρησιμοποιεί λιγότερο το σκληρό δίσκο. Χρησιμοποιήστε την επιλογή στο &man.make.1; ώστε να εκτελούνται παράλληλα πολλαπλές διεργασίες μεταγλώττισης. Αυτό συνήθως βοηθάει ακόμα και σε περίπτωση που έχετε μηχάνημα με ένα επεξεργαστή. Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το σύστημα αρχείων στο οποίο είναι αποθηκευμένο το /usr/src με την επιλογή . Αυτό αποτρέπει την καταγραφή ημερομηνίας / ώρας πρόσβασης στο σύστημα αρχείων. Κατά πάσα πιθανότητα, δεν χρειάζεστε αυτή την πληροφορία έτσι και αλλιώς. &prompt.root; mount -u -o noatime /usr/src Το παράδειγμα προϋποθέτει ότι έχετε το /usr/src στο δικό του σύστημα αρχείων. Αν αυτό δεν συμβαίνει (αν είναι μέρος του /usr για παράδειγμα) θα χρειαστεί να χρησιμοποιήσετε αυτό το σημείο προσάρτησης, και όχι το /usr/src. Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το σύστημα αρχείων που περιέχει το /usr/obj με την επιλογή . Με τον τρόπο αυτό, οι εγγραφές στο δίσκο θα γίνονται ασύγχρονα. Με άλλα λόγια, οι εγγραφές φαίνεται ότι ολοκληρώνονται άμεσα, ενώ η πραγματική εγγραφή στο δίσκο γίνεται λίγα δευτερόλεπτα αργότερα. Αυτό επιτρέπει την ομαδοποίηση των εγγραφών, το οποίο μπορεί να προσφέρει δραματική βελτίωση απόδοσης. Να έχετε υπόψιν σας ότι αυτή η επιλογή μπορεί να κάνει το σύστημα αρχείων σας πολύ πιο ευαίσθητο. Με την επιλογή αυτή, υπάρχει αυξημένη πιθανότητα το σύστημα αρχείων να βρεθεί σε μη επισκευάσιμη κατάσταση αν υπάρξει διακοπή ρεύματος. Αν το σύστημα αρχείων περιέχει μόνο το /usr/obj, το παραπάνω δεν είναι πρόβλημα. Αν ωστόσο έχετε και άλλα πολύτιμα δεδομένα στο ίδιο σύστημα αρχείων, σιγουρευτείτε ότι έχετε ενημερωμένα αντίγραφα ασφαλείας πριν ενεργοποιήσετε αυτή την επιλογή. &prompt.root; mount -u -o async /usr/obj Όπως και προηγουμένως, αν το /usr/obj δεν είναι σύστημα αρχείων από μόνο του, αντικαταστήστε το στο παράδειγμα με το όνομα του πραγματικού σημείου προσάρτησης. Τι να κάνω αν κάτι πάει στραβά; Σιγουρευτείτε ότι το περιβάλλον σας δεν έχει υπολείμματα από προηγούμενες μεταγλωττίσεις. Αυτό είναι αρκετά απλό. &prompt.root; chflags -R noschg /usr/obj/usr &prompt.root; rm -rf /usr/obj/usr &prompt.root; cd /usr/src &prompt.root; make cleandir &prompt.root; make cleandir Ναι, θα πρέπει να εκτελέσετε το make cleandir δύο φορές. Επανεκκινήστε έπειτα όλη τη διαδικασία, ξεκινώντας με το make buildworld. Αν έχετε ακόμα προβλήματα, στείλτε το μήνυμα λάθους και την έξοδο του uname -a στην &a.questions;. Να είστε προετοιμασμένοι να απαντήσετε επιπλέον ερωτήσεις σχετικά με την εγκατάσταση σας! Mike Meyer Συνεισφορά του Διαδικασία για Πολλαπλά Μηχανήματα NFS installing multiple machines Αν έχετε πολλαπλά μηχανήματα στα οποία πρόκειται να χρησιμοποιήσετε το ίδιο δέντρο πηγαίου κώδικα, είναι σπατάλη πόρων (δίσκου, δικτύου και επεξεργαστή) να επαναλαμβάνετε σε όλα τη διαδικασία ανάκτησης και μεταγλώττισης. Η λύση είναι να ορίσετε ένα μηχάνημα να εκτελεί το μεγαλύτερο μέρος της εργασίας, ενώ τα υπόλοιπα θα μπορούν να την ανακτούν μέσω NFS. Στην ενότητα αυτή θα παρουσιάσουμε ένα τρόπο με τον οποίο μπορεί να γίνει αυτό. Προκαταρκτικά Πρώτα από όλα, αναγνωρίστε το σετ των μηχανημάτων στα οποία σκοπεύετε να χρησιμοποιήσετε τα ίδια εκτελέσιμα. Θα ονομάσουμε αυτή την ομάδα σετ μεταγλώττισης. Κάθε μηχάνημα μπορεί να έχει δικό του προσαρμοσμένο πυρήνα, αλλά θα έχουν όλα τα ίδια εκτελέσιμα userland. Από το σετ αυτό, επιλέξτε ένα μηχάνημα το οποίο θα γίνει το μηχάνημα μεταγλώττισης. Θα είναι το μηχάνημα στο οποίο θα μεταγλωττίζεται το βασικό σύστημα και ο πυρήνας. Το ιδανικό είναι να επιλέξετε ένα γρήγορο μηχάνημα, στο οποίο να υπάρχει αρκετός ελεύθερος χρόνος στον επεξεργαστή για να εκτελεί τα make buildworld και make buildkernel. Θα πρέπει επίσης να επιλέξετε ένα μηχάνημα δοκιμών στο οποίο θα δοκιμάζετε τις ενημερώσεις λογισμικού πριν τις μεταφέρετε στην παραγωγή. Μπορεί να είναι και το ίδιο το μηχάνημα μεταγλώττισης, αλλά αυτό δεν είναι απαραίτητο. Όλα τα μηχανήματα στο σετ μεταγλώττισης χρειάζεται να προσαρτήσουν το /usr/obj και το /usr/src από το ίδιο μηχάνημα, και στο ίδιο σημείο προσάρτησης. Το ιδανικό είναι αυτά τα δύο συστήματα αρχείων να βρίσκονται σε διαφορετικό φυσικό δίσκο στο μηχάνημα μεταγλώττισης, αλλά μπορείτε να τα προσαρτήσετε μέσω NFS ακόμα και σε αυτό το μηχάνημα. Αν έχετε πολλαπλά σετ μεταγλώττισης, το /usr/src θα πρέπει να βρίσκεται σε ένα από τα μηχανήματα μεταγλώττισης, και να προσαρτάται στα υπόλοιπα μέσω NFS. Τέλος, βεβαιωθείτε ότι τα αρχεία /etc/make.conf και /etc/src.conf σε όλα τα μηχανήματα του σετ μεταγλώττισης, είναι ίδια με τα αντίστοιχα στο μηχάνημα μεταγλώττισης. Αυτό σημαίνει ότι το μηχάνημα μεταγλώττισης θα πρέπει να μεταγλωττίζει όλα τα τμήματα του βασικού συστήματος τα οποία θα εγκατασταθούν σε κάθε μηχάνημα του σετ. Επίσης, σε κάθε μηχάνημα στο σετ μεταγλώττισης θα πρέπει να οριστεί το όνομα του δικού του προσαρμοσμένου πυρήνα μέσω της μεταβλητής KERNCONF στο /etc/make.conf, ενώ και το μηχάνημα μεταγλώττισης θα πρέπει να έχει μια λίστα όλων των άλλων στο KERNCONF, ξεκινώντας από το δικό του. Το μηχάνημα μεταγλώττισης, θα πρέπει να έχει τα αρχεία ρύθμισης του πυρήνα όλων των άλλων μηχανημάτων στον κατάλογο /usr/src/sys/arch/conf αν πρόκειται να μεταγλωττίζει τους πυρήνες τους. Το Βασικό Σύστημα Έχοντας πραγματοποιήσει όλα τα παραπάνω, είστε έτοιμος να μεταγλωττίσετε τα πάντα. Μεταγλωττίστε τον πυρήνα και το βασικό σύστημα όπως περιγράψαμε στο χρησιμοποιώντας το μηχάνημα μεταγλώττισης, αλλά μην εγκαταστήσετε τίποτα. Μετά το τέλος της μεταγλώττισης, χρησιμοποιήστε το μηχάνημα δοκιμών και εγκαταστήστε τον πυρήνα που μόλις δημιουργήσατε. Αν το μηχάνημα αυτό προσαρτά το /usr/src και το /usr/obj μέσω NFS, όταν το επανεκκινήσετε σε κατάσταση ενός χρήστη, θα χρειαστεί να ενεργοποιήσετε το δίκτυο και να τα προσαρτήσετε. Ο ευκολότερος τρόπος για αυτό, είναι να εκκινήσετε σε κατάσταση πολλαπλών χρηστών και έπειτα να εκτελέσετε shutdown now για να μεταβείτε σε κατάσταση ενός χρήστη. Μόλις γίνει αυτό, μπορείτε να εγκαταστήσετε τον νέο πυρήνα και το βασικό σύστημα, και να εκτελέσετε το mergemaster όπως θα κάνατε συνήθως. Όταν τελειώσετε, επανεκκινήστε αυτό το μηχάνημα στην κανονική λειτουργία πολλαπλών χρηστών. Όταν βεβαιωθείτε ότι όλα λειτουργούν σωστά στο μηχάνημα δοκιμών, χρησιμοποιήστε την ίδια διαδικασία για να εγκαταστήσετε το νέο λογισμικό σε κάθε ένα από τα υπόλοιπα μηχανήματα του σετ μεταγλώττισης. Ports Μπορείτε να χρησιμοποιήσετε τις ίδιες ιδέες και για το δέντρο των ports. Το πρώτο κρίσιμο βήμα είναι να προσαρτήσετε το /usr/ports από το ίδιο μηχάνημα, σε όλα τα μηχανήματα του σετ μεταγλώττισης. Μπορείτε έπειτα να ρυθμίσετε το /etc/make.conf ώστε να διαμοιράζονται τα distfiles. Θα πρέπει να θέσετε το DISTDIR σε ένα κοινόχρηστο κατάλογο, στον οποίο θα δώσετε δικαιώματα εγγραφής σε οποιοδήποτε χρήστη έχετε δηλώσει ως root στο NFS. Σε κάθε μηχάνημα θα πρέπει επίσης να οριστεί η μεταβλητή WRKDIRPREFIX ώστε να δείχνει σε ένα τοπικό κατάλογο. Τέλος, αν σκοπεύετε να μεταγλωττίζετε και να διανέμετε έτοιμα πακέτα, θα πρέπει να θέσετε την μεταβλητή PACKAGES σε ένα κατάλογο, όπως κάνατε και με την DISTDIR. diff --git a/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml b/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml index 5a28cdedd7..b8d485a7dc 100644 --- a/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml @@ -1,1208 +1,1214 @@ Christophe Juniet Συνεισφορά του Desktop Εφαρμογές Σύνοψη Το &os; μπορεί να εκτελέσει μια ευρεία γκάμα desktop εφαρμογών, όπως φυλλομετρητές (browsers) και επεξεργαστές κειμένου. Οι περισσότερες από αυτές είναι διαθέσιμες ως πακέτα (packages) ή μπορούν να εγκατασταθούν αυτόματα από την Συλλογή των Ports. Πολλοί νέοι χρήστες αναμένουν να βρουν τέτοιου είδους εφαρμογές στο desktop τους. Το κεφάλαιο αυτό θα σας δείξει πως να εγκαταστήσετε χωρίς κόπο τις πιο δημοφιλείς desktop εφαρμογές, είτε από πακέτα είτε από τη Συλλογή των Ports. Σημειώστε ότι όταν εγκαθιστάτε προγράμματα από τη Συλλογή των Ports, γίνεται μεταγλώττιση από τον πηγαίο κώδικα. Αυτό μπορεί να χρειαστεί πολύ χρόνο, καθώς εξαρτάται από το πρόγραμμα το οποίο μεταγλωττίζετε και την υπολογιστική ισχύ του μηχανήματός σας. Αν το χρονικό διάστημα το οποίο χρειάζεται η μεταγλώττιση είναι απαγορευτικά μεγάλο, μπορείτε να εγκαταστήσετε τα περισσότερα προγράμματα της Συλλογής των Ports από προ-μεταγλωττισμένα πακέτα. Καθώς το &os; διαθέτει συμβατότητα με εκτελέσιμα προγράμματα για Linux, πολλές εφαρμογές που αναπτύχθηκαν αρχικά για το Linux είναι διαθέσιμες για το desktop σας. Σας συνιστούμε θερμά να διαβάσετε το πριν εγκαταστήσετε οποιαδήποτε από τις εφαρμογές Linux. Πολλά από τα ports που χρησιμοποιούν τη συμβατότητα με Linux έχουν ονόματα που ξεκινούν με linux-. Θυμηθείτε το όταν ψάχνετε για κάποιο συγκεκριμένο port, για παράδειγμα με την &man.whereis.1;. Στο κείμενο που ακολουθεί θεωρείται ότι έχετε ενεργοποιήσει την συμβατότητα με εκτελέσιμα προγράμματα Linux πριν εγκαταστήσετε οποιαδήποτε από τις εφαρμογές του Linux. Οι κατηγορίες που καλύπτονται από αυτό το κεφάλαιο είναι οι εξής: Φυλλομετρητές (όπως Firefox, Opera, Konqueror) Εφαρμογές γραφείου (όπως KOffice, AbiWord, The GIMP, OpenOffice.org) Προγράμματα προβολής εγγράφων (όπως &acrobat.reader;, gv, Xpdf, GQview) Χρηματοοικονομικές εφαρμογές (όπως GnuCash, Gnumeric, Abacus) Πριν διαβάσετε αυτό το κεφάλαιο θα πρέπει: Να ξέρετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (). Να ξέρετε πως να εγκαταστήσετε πρόσθετο λογισμικό Linux (). Για πληροφορίες σχετικά με την εγκατάσταση πολυμεσικού περιβάλλοντος διαβάστε το . Αν θέλετε να ρυθμίσετε και να χρησιμοποιήσετε κάποια υπηρεσία ηλεκτρονικού ταχυδρομείου δείτε το . Φυλλομετρητές (Browsers) browsers web Το &os; δεν έχει προεγκατεστημένο κάποιο συγκεκριμένο φυλλομετρητή. Στον κατάλογο www της συλλογής Ports μπορείτε να βρείτε αρκετούς φυλλομετρητές, έτοιμους για εγκατάσταση. Αν δεν έχετε χρόνο για να μεταγλωττίσετε ότι χρειάζεστε (ίσως χρειαστείτε αρκετή ώρα), πολλοί από αυτούς είναι διαθέσιμοι και ως έτοιμα πακέτα. Τα KDE και GNOME, ως πλήρη περιβάλλοντα εργασίας, παρέχουν τους δικούς τους φυλλομετρητές HTML. Δείτε το για περισσότερες πληροφορίες σχετικά με την εγκατάσταση τους. Αν ενδιαφέρεστε για ελαφρείς (από άποψη κατανάλωσης πόρων) φυλλομετρητές, δείτε τις ακόλουθες εφαρμογές στη συλλογή των Ports: www/dillo2, www/links, ή www/w3m. Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές: Όνομα Εφαρμογής Απαιτούμενοι Πόροι Εγκατάσταση από Ports Βασικές Εξαρτήσεις Firefox μεσαία βαριά Gtk+ Opera λίγοι (ελαφριά) ελαφριά Υπάρχουν διαθέσιμες εκδόσεις για &os; και Linux. Η έκδοση για Linux εξαρτάται από την δυαδική συμβατότητα με Linux (Linux Binary Compatibility) και το linux-openmotif. Konqueror μεσαία βαριά Βιβλιοθήκες KDE Firefox Firefox Ο Firefox είναι ένας μοντέρνος, ελεύθερος, ανοιχτός και σταθερός φυλλομετρητής, ο οποίος είναι πλήρως προσαρμοσμένος για χρήση στο &os;. Διαθέτει μηχανή απεικόνισης η οποία εναρμονίζεται πλήρως με τις τυποποιήσεις της HTML, και δυνατότητες όπως εμφάνιση πολλαπλών σελίδων σε tabs, μπλοκάρισμα αναδυόμενων παραθύρων (popups), πρόσθετα προγράμματα, βελτιωμένη ασφάλεια και πολλά ακόμη. Ο Firefox βασίζεται στον αρχικό πηγαίο κώδικα του Mozilla. Εγκαταστήστε το πακέτο γράφοντας: &prompt.root; pkg_add -r firefox Η παραπάνω εντολή θα εγκαταστήσει τον - Firefox της σειράς - 2.X. Αν θέλετε να εγκαταστήσετε τον - Firefox 3.X, - γράψτε: + Firefox 3.6. Αν θέλετε να εγκαταστήσετε + τον Firefox 3.5, γράψτε: - &prompt.root; pkg_add -r firefox3 + &prompt.root; pkg_add -r firefox35 Μπορείτε επίσης να χρησιμοποιήσετε την Συλλογή των Ports αν προτιμάτε να μεταγλωττίσετε από τον πηγαίο κώδικα: &prompt.root; cd /usr/ports/www/firefox &prompt.root; make install clean - Για τον Firefox - 3.X, αντικαταστήστε στην παραπάνω εντολή - τη λέξη firefox με - firefox3. + Για τον Firefox 3.5, αντικαταστήστε + στην παραπάνω εντολή τη λέξη firefox με + firefox35. Ο Firefox και το Πρόσθετο (plugin) της &java; Σε αυτό και το επόμενο τμήμα, θεωρούμε ότι έχετε ήδη εγκαταστήσει τον Firefox. + + Τη δεδομένη στιγμή, το πρόσθετο της &java; δεν λειτουργεί με + τον Firefox 3.6. To &os; Foundation διαθέτει άδεια από την Sun Microsystems για την διανομή εκτελέσιμου &os; προγράμματος για το περιβάλλον Εκτέλεσης της Java (Java Runtime Environment - &jre;) καθώς και για το περιβάλλον ανάπτυξης της Java (Java Development Kit - &jdk;). Τα αντίστοιχα εκτελέσιμα πακέτα για το &os; είναι διαθέσιμα στην τοποθεσία &os; Foundation. Για να προσθέσετε υποστήριξη &java; στον Firefox, πρέπει πρώτα να εγκαταστήσετε το port java/javavmwrapper. Έπειτα, κατεβάστε το πακέτο Diablo &jre; από την τοποθεσία , και εγκαταστήστε το με την &man.pkg.add.1;. Ξεκινήστε το φυλλομετρητή σας, γράψτε about:plugins στη γραμμή διευθύνσεων και πιέστε Enter. Θα δείτε μια σελίδα που αναφέρεται στα εγκατεστημένα plugins, και εκεί θα πρέπει να δείτε και την &java;. Αν αυτό δεν συμβαίνει, κάθε χρήστης θα πρέπει να εκτελέσει την ακόλουθη εντολή: - &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ + &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ $HOME/.mozilla/plugins Αν έχετε εγκαταστήσει το πακέτο Diablo &jdk;, θα χρειαστεί να εκτελέσετε: - &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ + &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ $HOME/.mozilla/plugins Επανεκκινήστε το φυλλομετρητή σας για να ισχύσουν οι αλλαγές. + + + Στις παραπάνω εντολές θεωρούμε ότι χρησιμοποιείτε αρχιτεκτονική + &arch.i386;. Διατίθενται ωστόσο πακέτα και για την αρχιτεκτονική + &arch.amd64;. + Ο Firefox και το ¯omedia; &flash; Plugin Flash Το ¯omedia; &flash; plugin δεν διατίθεται για το &os;. Ωστόσο, υπάρχει ένα επίπεδο εξομοίωσης (software layer, wrapper) για την εκτέλεση του αντίστοιχου plugin του Linux. To wrapper αυτό υποστηρίζει επίσης και τα plugins για τον &adobe; &acrobat;, το RealPlayer και άλλα. Εκτελέστε τα παρακάτω βήματα, ανάλογα με την έκδοση του &os; που χρησιμοποιείτε: Για το &os; 7.<replaceable>X</replaceable> Εγκαταστήστε το port www/nspluginwrapper. Το port αυτό απαιτεί το emulators/linux_base-fc4 το οποίο είναι μεγάλο. Το επόμενο βήμα είναι η εγκατάσταση του port www/linux-flashplugin9. Θα εγκατασταθεί η έκδοση &flash; 9.X η οποία γνωρίζουμε ότι δουλεύει σωστά στο &os; 7.X. Σε εκδόσεις του &os; παλαιότερες από την 7.1-RELEASE, θα πρέπει να εγκαταστήσετε το πακέτο www/linux-flashplugin7 και να παραλείψετε το βήμα σχετικά με το &man.linprocfs.5; που φαίνεται παρακάτω. Για το &os; 8.<replaceable>X</replaceable> Εγκαταστήστε το port www/nspluginwrapper. Το port αυτό απαιτεί το emulators/linux_base-f10 το οποίο είναι μεγάλο. Το επόμενο βήμα είναι η εγκατάσταση του port www/linux-f10-flashplugin10. Θα εγκατασταθεί η έκδοση &flash; 10.X η οποία γνωρίζουμε ότι δουλεύει σωστά στο &os; 8.X. Για να λειτουργήσει σωστά αυτή η έκδοση, θα χρειαστεί να δημιουργήσετε τον συμβολικό σύνδεσμο που φαίνεται παρακάτω: &prompt.root; ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \ /usr/local/lib/browser_plugins/ Μετά την εγκατάσταση του σωστού (σύμφωνα με την έκδοση του &os;) &flash; port, ο κάθε χρήστης θα πρέπει να ολοκληρώσει την προσωπική του εγκατάσταση του plugin εκτελώντας την παρακάτω εντολή του nspluginwrapper: &prompt.user; nspluginwrapper -v -a -i Θα πρέπει να προσαρτήσετε το σύστημα αρχείων διεργασιών του &linux;, &man.linprocfs.5; στον κατάλογο /usr/compat/linux/proc, αν επιθυμείτε να αναπαράγετε &flash; σκηνές (animations). Αυτό μπορεί να γίνει με την επομένη εντολή: &prompt.root; mount -t linprocfs linproc /usr/compat/linux/proc Η προσάρτηση μπορεί επίσης να γίνεται αυτόματα κατά την εκκίνηση, προσθέτοντας την παρακάτω γραμμή στο /etc/fstab: linproc /usr/compat/linux/proc linprocfs rw 0 0 Μετά την εγκατάσταση του plugin, ξεκινήστε το φυλλομετρητή σας, γράψτε about:plugins στη γραμμή διευθύνσεων και πιέστε Enter. Θα πρέπει να δείτε μια λίστα με όλα τα τρέχοντα διαθέσιμα plugins. Ο Firefox και το Swfdec &flash; Plugin To Swfdec είναι μια βιβλιοθήκη για αποκωδικοποίηση και αναπαραγωγή σκηνών &flash;. Το Swfdec-Mozilla είναι ένα plugin για τους φυλλομετρητές Firefox το οποίο χρησιμοποιεί αυτή τη βιβλιοθήκη για την αναπαραγωγή αρχείων SWF. Είναι ακόμα στο στάδιο της ανάπτυξης. Αν δεν μπορείτε ή δεν θέλετε να το μεταγλωττίσετε, απλώς εγκαταστήστε το πακέτο από το δίκτυο: &prompt.root; pkg_add -r swfdec-plugin Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να το μεταγλωττίσετε και να το εγκαταστήσετε από τη Συλλογή των Ports: &prompt.root; cd /usr/ports/www/swfdec-plugin &prompt.root; make install clean Μετά την εγκατάσταση, επανεκκινήστε το φυλλομετρητή σας για να ενεργοποιηθεί το plugin. Opera Opera Ο Opera είναι ένας φυλλομετρητής με πλήρεις δυνατότητες και συμβατός με τα πρότυπα. Έρχεται επίσης με ενσωματωμένο πρόγραμμα ανάγνωσης ταχυδρομείου (mail) και ειδήσεων (news), πρόγραμμα για IRC, αναγνώστη για RSS/Atom και πολλά ακόμα. Παρ'όλα αυτά, ο Opera είναι μια σχετικά ελαφριά και πολύ γρήγορη εφαρμογή. Έρχεται σε δύο τύπους: μια εγγενής έκδοση για το &os; και μια έκδοση που εκτελείται μέσω της συμβατότητας με το Linux. Για να χρησιμοποιήσετε την &os; έκδοση του Opera, εγκαταστήστε το πακέτο: &prompt.root; pkg_add -r opera Ορισμένες τοποθεσίες FTP δεν διαθέτουν όλα τα πακέτα, αλλά μπορείτε να έχετε το ίδιο αποτέλεσμα μέσω της συλλογής των Ports, γράφοντας: &prompt.root; cd /usr/ports/www/opera &prompt.root; make install clean Για να εγκαταστήσετε την Linux έκδοση του Opera, αντικαταστήστε με linux-opera το opera στα παραπάνω παραδείγματα. Η έκδοση Linux είναι χρήσιμη σε καταστάσεις που απαιτούν τη χρήση plugins που είναι διαθέσιμα μόνο για Linux, όπως το Adobe &acrobat.reader;. Σε κάθε άλλη περίπτωση, οι εκδόσεις Linux και &os; είναι λειτουργικά ισοδύναμες. Konqueror Konqueror Ο Konqueror είναι κομμάτι του KDE αλλά μπορεί να χρησιμοποιηθεί και έξω από το KDE με την εγκατάσταση του x11/kdebase3. Ο Konqueror είναι πολύ περισσότερο από ένας απλός φυλλομετρητής, είναι επίσης διαχειριστής αρχείων και πρόγραμμα προβολής αρχείων πολυμέσων. Ο Konqueror διατίθεται επίσης με ένα σετ από plugins, στο misc/konq-plugins. Ο Konqueror υποστηρίζει επίσης &flash; και οι σχετικές οδηγίες (How To) είναι διαθέσιμες στο . Εφαρμογές Γραφείου Όσο αφορά τις εφαρμογές γραφείου, οι νέοι χρήστες συχνά αναζητούν μια καλή σουίτα εφαρμογών ή ένα φιλικό επεξεργαστή κειμένου. Αν και κάποια γραφικά περιβάλλοντα όπως το KDE παρέχουν τη δική τους σουίτα εφαρμογών γραφείου, δεν υπάρχει ωστόσο προεπιλεγμένη εφαρμογή. Το &os; παρέχει ότι χρειάζεστε, άσχετα από το περιβάλλον εργασίας σας. Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές: Όνομα Εφαρμογής Απαιτούμενοι Πόροι Εγκατάσταση από Ports Βασικές Εξαρτήσεις KOffice λίγοι (ελαφριά) βαριά KDE AbiWord λίγοι (ελαφριά) ελαφριά Gtk+ ή GNOME The Gimp λίγοι (ελαφριά) βαριά Gtk+ OpenOffice.org πολλοί (βαριά) εξαιρετικά βαριά &jdk;, Mozilla KOffice KOffice office suite KOffice Η κοινότητα του KDE εξοπλίζει το γραφικό της περιβάλλον με μια σουίτα εφαρμογών γραφείου που μπορεί να χρησιμοποιηθεί και έξω από το KDE. Περιλαμβάνει τα τέσσερα βασικά προγράμματα που μπορείτε επίσης να βρείτε και σε άλλες σουίτες γραφείου. Το KWord είναι ο επεξεργαστής κειμένου, το KSpread είναι το πρόγραμμα υπολογιστικών φύλλων, το KPresenter διαχειρίζεται τις παρουσιάσεις, ενώ το Kontour σας επιτρέπει να δημιουργήσετε έγγραφα με γραφικά. Πριν εγκαταστήσετε το τελευταίο KOffice, βεβαιωθείτε ότι έχετε ανανεωμένη έκδοση του KDE. Για να εγκαταστήσετε το KOffice ως πακέτο, δώστε την ακόλουθη εντολή: &prompt.root; pkg_add -r koffice Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την συλλογή των ports. Για παράδειγμα, για να εγκαταστήσετε το KOffice για το KDE3, γράψτε: &prompt.root; cd /usr/ports/editors/koffice-kde3 &prompt.root; make install clean AbiWord AbiWord Το AbiWord είναι ένα ελεύθερο πρόγραμμα επεξεργασίας κειμένου, όμοιο στην αίσθηση και την εμφάνιση με το µsoft; Word. Είναι κατάλληλο για την πληκτρολόγηση άρθρων, γραμμάτων, αναφορών, υπενθυμίσεων κ.ο.κ. Είναι πολύ γρήγορο, έχει αρκετές δυνατότητες και είναι ιδιαίτερα φιλικό στο χρήστη. Το AbiWord μπορεί να εισάγει ή να εξάγει αρχεία διάφορων μορφών, περιλαμβανομένων και κάποιων κλειστών όπως το .doc της µsoft;. Το AbiWord είναι διαθέσιμο ως πακέτο. Μπορείτε να το εγκαταστήσετε γράφοντας: &prompt.root; pkg_add -r abiword Αν το πακέτο δεν είναι διαθέσιμο για κάποιο λόγο, μπορείτε να το μεταγλωττίσετε από την Συλλογή των Ports. Σε αυτή την περίπτωση πιθανώς να εγκαταστήσετε νεώτερη έκδοση σε σχέση με το έτοιμο πακέτο. Μπορείτε να το κάνετε ως εξής: &prompt.root; cd /usr/ports/editors/abiword &prompt.root; make install clean Το GIMP The GIMP Το The GIMP είναι ένα ιδιαίτερα εξελιγμένο πρόγραμμα διαχείρισης γραφικών για δημιουργία εικόνων ή επεξεργασία φωτογραφιών. Μπορεί να χρησιμοποιηθεί ως απλό πρόγραμμα ζωγραφικής ή σαν σουίτα επεξεργασίας και διόρθωσης φωτογραφιών. Περιέχει μεγάλο αριθμό από plugins ενώ διαθέτει και scripting interface. Το The GIMP μπορεί να διαβάσει και να γράψει μεγάλο φάσμα αρχείων εικόνας. Περιλαμβάνει επίσης διεπαφές διασύνδεσης με σαρωτές και tablets. Μπορείτε να εγκαταστήσετε το πακέτο δίνοντας την εντολή: &prompt.root; pkg_add -r gimp Αν η τοποθεσία FTP που χρησιμοποιείτε δεν διαθέτει αυτό το πακέτο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports. Ο κατάλογος graphics της Συλλογής των Ports περιέχει επίσης και το The Gimp Manual (εγχειρίδιο χρήσης). Δείτε παρακάτω πως να το εγκαταστήσετε: &prompt.root; cd /usr/ports/graphics/gimp &prompt.root; make install clean &prompt.root; cd /usr/ports/graphics/gimp-manual-pdf &prompt.root; make install clean Ο κατάλογος graphics της συλλογής των Ports έχει επίσης την υπό εξέλιξη έκδοση της εφαρμογής The GIMP στο graphics/gimp-devel. Μπορείτε να βρείτε την HTML έκδοση του εγχειριδίου, The Gimp Manual στο graphics/gimp-manual-html. OpenOffice.org OpenOffice.org office suite OpenOffice.org Το OpenOffice.org περιέχει όλες τις απαραίτητες εφαρμογές σε μια πλήρη σουίτα εφαρμογών γραφείου: επεξεργαστή κειμένου, υπολογιστικό φύλλο, διαχειριστή παρουσιάσεων και πρόγραμμα σχεδίασης. Το περιβάλλον εργασίας του είναι πολύ όμοιο με άλλες σουίτες γραφείου, και μπορεί να χρησιμοποιήσει διάφορους δημοφιλείς τύπους αρχείων. Είναι διαθέσιμο σε πολλές διαφορετικές γλώσσες, τόσο ως προς το περιβάλλον εργασίας όσο και ως προς τα λεξικά και τον ορθογραφικό έλεγχο. Ο επεξεργαστής κειμένου του OpenOffice.org χρησιμοποιεί εγγενώς μορφή αρχείου XML για αυξημένη φορητότητα και ευελιξία. Το πρόγραμμα υπολογιστικών φύλλων διαθέτει γλώσσα μακροεντολών και μπορεί να διασυνδεθεί με εξωτερικές βάσεις δεδομένων. Το OpenOffice.org είναι σταθερή εφαρμογή και εκτελείται εγγενώς στα &windows;, το &solaris;, το Linux, το &os;, καθώς και στο &macos; X. Περισσότερες πληροφορίες για το OpenOffice.org μπορείτε να βρείτε στη δικτυακή τοποθεσία του OpenOffice.org . Για πληροφορίες σχετικά με την έκδοση για &os;, καθώς και για απευθείας κατέβασμα πακέτων, χρησιμοποιήστε την δικτυακή τοποθεσία FreeBSD OpenOffice.org Porting Team. Για να εγκαταστήσετε το OpenOffice.org, γράψτε: &prompt.root; pkg_add -r openoffice.org Αν χρησιμοποιείτε -RELEASE έκδοση του &os;, το παραπάνω πρέπει να δουλέψει. Διαφορετικά, θα πρέπει να δείτε την δικτυακή τοποθεσία του &os; OpenOffice.org Porting Team για να κατεβάσετε και να εγκαταστήσετε το αντίστοιχο πακέτο χρησιμοποιώντας την &man.pkg.add.1;. Τόσο η τρέχουσα όσο και η υπό εξέλιξη έκδοση είναι διαθέσιμες για κατέβασμα από την παραπάνω τοποθεσία. Από τη στιγμή που το πακέτο εγκατασταθεί, πρέπει να γράψετε απλώς την παρακάτω εντολή για να εκτελέσετε το OpenOffice.org: &prompt.user; openoffice.org Κατά την πρώτη εκκίνηση, θα σας γίνουν διάφορες ερωτήσεις και θα δημιουργηθεί ένας κατάλογος με όνομα .openoffice.org μέσα στον προσωπικό σας κατάλογο. Αν τα πακέτα του OpenOffice.org δεν είναι διαθέσιμα, έχετε πάντα την επιλογή να μεταγλωττίσετε το αντίστοιχο port. Ωστόσο, να έχετε υπόψη σας ότι αυτό απαιτεί αρκετό χώρο στο δίσκο και θα χρειαστεί και πάρα πολύ χρόνο για να ολοκληρωθεί. &prompt.root; cd /usr/ports/editors/openoffice.org-3 &prompt.root; make install clean Αν θέλετε να δημιουργήσετε μια έκδοση με τις δικές σας τοπικές ρυθμίσεις, αντικαταστήστε την προηγούμενη γραμμή εντολών με την επόμενη: &prompt.root; make LOCALIZED_LANG=your_language install clean Πρέπει να αντικαταστήσετε το your_language με το σωστό ISO κωδικό για τη γλώσσα σας. Η λίστα με τους υποστηριζόμενους κωδικούς γλωσσών είναι διαθέσιμη στο αρχείο files/Makefile.localized, το οποίο βρίσκεται στον κατάλογο του port. Μόλις γίνει αυτό, μπορείτε να ξεκινήσετε την εφαρμογή OpenOffice.org δίνοντας την εντολή: &prompt.user; openoffice.org Προγράμματα Προβολής Εγγράφων Πρόσφατα έχουν γίνει αρκετά δημοφιλείς κάποιες νέες μορφές αρχείων. Τα προγράμματα προβολής που απαιτούνται για τα αρχεία αυτά ίσως να μην είναι διαθέσιμα στο βασικό σύστημα. Στο τμήμα αυτό θα δούμε πως μπορείτε να τα εγκαταστήσετε. Το τμήμα αυτό καλύπτει τις εφαρμογές: Όνομα Εφαρμογής Απαιτούμενοι Πόροι Εγκατάσταση από Ports Βασικές Εξαρτήσεις &acrobat.reader; λίγοι (ελαφριά) ελαφριά Δυαδική συμβατότητα με Linux (Linux Binary Compatibility) gv λίγοι (ελαφριά) ελαφριά Xaw3d Xpdf λίγοι (ελαφριά) ελαφριά FreeType GQview λίγοι (ελαφριά) ελαφριά Gtk+ ή GNOME &acrobat.reader; Acrobat Reader PDF viewing Πολλά έγγραφα διανέμονται πλέον ως αρχεία PDF το οποίο σημαίνει Portable Document Format (Φορητή Μορφή Εγγράφου). Ένα από τα συνιστώμενα προγράμματα προβολής για αυτό τον τύπο αρχείων είναι το &acrobat.reader;, το οποίο η Adobe διαθέτει για Linux. Καθώς το &os; μπορεί να χρησιμοποιήσει εκτελέσιμα του Linux, η εφαρμογή είναι επίσης διαθέσιμη για το &os;. Για να εγκαταστήσετε το &acrobat.reader; 8 από τη Συλλογή των Ports, γράψτε: &prompt.root; cd /usr/ports/print/acroread8 &prompt.root; make install clean Δεν υπάρχει διαθέσιμο πακέτο, λόγω περιορισμών στην άδεια χρήσης. gv gv PDF viewing PostScript viewing Το gv είναι ένα πρόγραμμα προβολής εγγράφων για αρχεία &postscript; και PDF. Είναι αρχικά βασισμένο στην εφαρμογή ghostview αλλά έχει καλύτερη εμφάνιση χάρη στη βιβλιοθήκη Xaw3d. Είναι γρήγορο, και το interface του είναι ξεκάθαρο. Το gv έχει πολλές δυνατότητες, όπως προσανατολισμό και μέγεθος χαρτιού, εμφάνιση υπό κλίμακα και βελτίωση εμφάνισης γραμματοσειρών (antialias). Σχεδόν κάθε λειτουργία του μπορεί να εκτελεστεί τόσο από το πληκτρολόγιο όσο και από το ποντίκι. Για να εγκαταστήσετε το gv ως πακέτο, γράψτε: &prompt.root; pkg_add -r gv Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την συλλογή των Ports: &prompt.root; cd /usr/ports/print/gv &prompt.root; make install clean Xpdf Xpdf PDF viewing Αν θέλετε ένα μικρό πρόγραμμα προβολής αρχείων PDF για το &os;, το Xpdf είναι ελαφρύ και αποδοτικό. Απαιτεί ελάχιστους πόρους και είναι ιδιαίτερα σταθερό. Χρησιμοποιεί τις βασικές γραμματοσειρές των X και δεν απαιτεί χρήση του &motif; ή άλλης εργαλειοθήκης των Χ. Για να εγκαταστήσετε το Xpdf ως πακέτο, δώστε την εντολή: &prompt.root; pkg_add -r xpdf Αν το πακέτο δεν είναι διαθέσιμο ή προτιμάτε να χρησιμοποιήσετε την Συλλογή των Ports, γράψτε: &prompt.root; cd /usr/ports/graphics/xpdf &prompt.root; make install clean Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να ξεκινήσετε το Xpdf και να χρησιμοποιήσετε το δεξί πλήκτρο του ποντικιού για να ενεργοποιήσετε το μενού. GQview GQview Το GQview είναι ένας διαχειριστής εικόνων. Μπορείτε να δείτε ένα αρχείο με ένα απλό κλικ, να ξεκινήσετε ένα εξωτερικό πρόγραμμα επεξεργασίας, να δείτε προεπισκόπηση σε μορφή thumbnail και πολλά άλλα. Διαθέτει επίσης προβολή παρουσίασης και κάποιες βασικές λειτουργίες αρχείων. Μπορείτε να διαχειριστείτε συλλογές εικόνων και να βρείτε με εύκολο τρόπο τις διπλές. Το GQview μπορεί να χρησιμοποιηθεί για προβολή σε πλήρη οθόνη και υποστηρίζει τοπικές / διεθνείς ρυθμίσεις. Αν θέλετε να εγκαταστήσετε το GQview ως πακέτο, γράψτε: &prompt.root; pkg_add -r gqview Αν το πακέτο δεν είναι διαθέσιμο, ή προτιμάτε να χρησιμοποιήσετε την Συλλογή των Ports, γράψτε: &prompt.root; cd /usr/ports/graphics/gqview &prompt.root; make install clean Χρηματοοικονομικές Εφαρμογές Αν, για οποιοδήποτε λόγο, θέλετε να διαχειρίζεστε τα χρηματοοικονομικά σας μέσω του &os; desktop σας, υπάρχουν κάποιες ισχυρές και εύκολες στη χρήση εφαρμογές, έτοιμες προς εγκατάσταση. Ορισμένες από αυτές είναι συμβατές με διαδεδομένες μορφές αρχείων, όπως αυτές που χρησιμοποιούνται στα έγγραφα του Quicken ή του Excel. Το τμήμα αυτό καλύπτει τις εφαρμογές: Όνομα Εφαρμογής Απαιτούμενοι Πόροι Εγκατάσταση Από Ports Βασικές Εξαρτήσεις GnuCash λίγοι (ελαφριά) βαριά GNOME Gnumeric λίγοι (ελαφριά) βαριά GNOME Abacus λίγοι (ελαφριά) ελαφριά Tcl/Tk KMyMoney λίγοι (ελαφριά) βαριά KDE GnuCash GnuCash Το GnuCash είναι μέρος της προσπάθειας του GNOME να παρέχει φιλικές εφαρμογές στους τελικούς χρήστες. Με το GnuCash, μπορείτε να κρατάτε λογαριασμό των εσόδων και εξόδων σας, των τραπεζικών σας λογαριασμών και των μετοχών σας. Διαθέτει περιβάλλον εργασίας το οποίο είναι εύκολο στη χρήση χωρίς να χρειάζεται ιδιαίτερη εκμάθηση, αλλά είναι ταυτόχρονα και πολύ επαγγελματικό. Το GnuCash παρέχει έξυπνο σύστημα καταχώρησης, ιεραρχικό σύστημα λογαριασμών, πολλά πλήκτρα συντομεύσεων πληκτρολογίου, καθώς και μεθόδους αυτόματης συμπλήρωσης. Μπορεί να διαχωρίσει μια συναλλαγή σε πολλά λεπτομερή τμήματα. Το GnuCash μπορεί να εισάγει και να συγχωνεύσει αρχεία QIF του Quicken. Μπορεί επίσης να χειριστεί τις περισσότερες διεθνείς μορφές ημερομηνιών και νομισματικών μονάδων. Για να εγκαταστήσετε το GnuCash στο σύστημα σας, γράψτε: &prompt.root; pkg_add -r gnucash Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την συλλογή των ports: &prompt.root; cd /usr/ports/finance/gnucash &prompt.root; make install clean Gnumeric Gnumeric spreadsheet Gnumeric Το Gnumeric είναι ένα υπολογιστικό φύλλο και αποτελεί μέρος του περιβάλλοντος εργασίας GNOME. Διαθέτει βολική αυτόματη πρόβλεψη της εισόδου του χρήστη σύμφωνα με τη μορφή του κελιού καθώς και σύστημα αυτόματης συμπλήρωσης (autofill) για διάφορες ακολουθίες. Μπορεί να εισάγει αρχεία διάφορων δημοφιλών μορφών, όπως αυτά που χρησιμοποιούνται στο Excel, το Lotus 1-2-3, ή το Quattro Pro. Το Gnumeric υποστηρίζει γραφήματα μέσω του προγράμματος γραφικών math/guppi. Έχει μεγάλο αριθμό ενσωματωμένων συναρτήσεων και επιτρέπει όλες τις συνήθεις μορφές κελιών, όπως αριθμούς, νομισματικές μονάδες, ημερομηνίες, ώρες και πολλές ακόμα. Για να εγκαταστήσετε το Gnumeric ως πακέτο, γράψτε: &prompt.root; pkg_add -r gnumeric Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την συλλογή των ports, γράφοντας: &prompt.root; cd /usr/ports/math/gnumeric &prompt.root; make install clean Abacus Abacus spreadsheet Abacus Το Abacus είναι ένα μικρό και εύκολο στη χρήση υπολογιστικό φύλλο. Περιλαμβάνει πολλές ενσωματωμένες συναρτήσεις οι οποίες είναι χρήσιμες σε διάφορα πεδία, όπως η στατιστική, τα χρηματοοικονομικά και τα μαθηματικά. Μπορεί να εισάγει και να εξάγει αρχεία του Excel. Το Abacus μπορεί να παράγει έξοδο μορφής &postscript;. Για να εγκαταστήσετε το Abacus ως πακέτο, γράψτε: &prompt.root; pkg_add -r abacus Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την συλλογή των ports, γράφοντας: &prompt.root; cd /usr/ports/deskutils/abacus &prompt.root; make install clean KMyMoney KMyMoney spreadsheet KMyMoney Το KMyMoney είναι μια εφαρμογή διαχείρισης των προσωπικών σας οικονομικών, φτιαγμένη για το περιβάλλον KDE. To KMyMoney στοχεύει να παρέχει και να ενσωματώσει όλες τις λειτουργίες που διατίθενται σε αντίστοιχες εμπορικές εφαρμογές. Το KMyMoney μπορεί να εισάγει αρχεία του προτύπου QIF (Quicken Interchange Format), να τηρεί καταγραφή των επενδύσεων σας, να χειρίζεται πολλαπλές νομισματικές μονάδες και να παρέχει πλήθος αναφορών. Μέσα από ξεχωριστό plugin, παρέχεται επίσης η δυνατότητα εισαγωγής αρχείων OFX. Για να εγκαταστήσετε το KMyMoney ως πακέτο, εκτελέστε την εντολή: &prompt.root; pkg_add -r kmymoney2 Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports, όπως φαίνεται παρακάτω: &prompt.root; cd /usr/ports/finance/kmymoney2 &prompt.root; make install clean Περίληψη Αν και το &os; είναι δημοφιλές στους παροχείς Internet (ISPs) για την απόδοση και τη σταθερότητα του, είναι επίσης έτοιμο και για καθημερινή χρήση ως desktop. Με αρκετές χιλιάδες εφαρμογές διαθέσιμες ως πακέτα ή ports, μπορείτε να δημιουργήσετε το τέλειο desktop που καλύπτει όλες τις ανάγκες σας. Παρακάτω, φαίνεται μια γρήγορη περίληψη όλων των desktop εφαρμογών που παρουσιάστηκαν σε αυτό το κεφάλαιο: Όνομα Εφαρμογής Όνομα Πακέτου Όνομα Port Opera opera www/opera Firefox firefox www/firefox KOffice koffice-kde3 editors/koffice-kde3 AbiWord abiword editors/abiword The GIMP gimp graphics/gimp OpenOffice.org openoffice editors/openoffice.org-3 &acrobat.reader; acroread print/acroread8 gv gv print/gv Xpdf xpdf graphics/xpdf GQview gqview graphics/gqview GnuCash gnucash finance/gnucash Gnumeric gnumeric math/gnumeric Abacus abacus deskutils/abacus KMyMoney kmymoney2 finance/kmymoney2 diff --git a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml index 4aedbcc0c6..555672e1cd 100644 --- a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml @@ -1,3367 +1,3360 @@ Που θα Βρείτε το &os; Εκδόσεις σε CDROM και DVD Retail Εκδόσεις Το &os; είναι διαθέσιμο ως εμπορικό προϊόν (&os; CD, επιπρόσθετο λογισμικό, και τυπωμένη τεκμηρίωση) από διάφορους προμηθευτές:
CompUSA WWW:
Frys Electronics WWW:
CD και DVD διανομές Το &os; είναι διαθέσιμο σε CD και DVD για αγορά μέσω διαδικτύου από τους παρακάτω προμηθευτές:
&os; Mall, Inc. 700 Harvest Park Ste F Brentwood, CA 94513 USA Τηλέφωνο: +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 Τηλέφωνο: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre France WWW:
JMC Software Ireland Τηλέφωνο: 353 1 6291282 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA United Kingdom Τηλέφωνο: +44 1491 837010 Fax: +44 1491 837016 WWW:
Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Poland Τηλέφωνο: +48 22 860 18 18 Email: editors@lpmagazine.org WWW:
Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Australia Τηλέφωνο: +61 3 9857 5918 Fax: +61 3 9857 8974 WWW:
LinuxCenter.Kz Ust-Kamenogorsk Kazakhstan Τηλέφωνο: +7-705-501-6001 Email: info@linuxcenter.kz WWW:
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Τηλέφωνο: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Διανομείς Αν είστε μεταπωλητής και μπορείτε να διανείμετε σε CD-ROM προϊόντα βασισμένα στο &os;, παρακαλούμε επικοινωνήστε με κάποιον από τους διανομείς:
Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 USA Τηλέφωνο: +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 Τηλέφωνο: 1 (800) 456-8000 WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 USA Τηλέφωνο: +1 952 947-0822 Fax: +1 952 947-0876 Email: sales@kudzuenterprises.com
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Τηλέφωνο: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Navarre Corp 7400 49th Ave South New Hope, MN 55428 USA Τηλέφωνο: +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; BitTorrent BitTorrent Μπορείτε να ανακτήσετε τα βασικά αρχεία ISO των εκδόσεων του &os;, μέσω του συστήματος BitTorrent. Στην τοποθεσία http://torrents.freebsd.org:8080 υπάρχει μια πλήρης συλλογή από αρχεία torrent που μπορείτε να κατεβάσετε. Για να χρησιμοποιήσετε τα αρχεία torrent, θα χρειαστείτε κατάλληλο λογισμικό-πελάτη, όπως αυτό που παρέχεται από το port ή πακέτο net-p2p/py-bittorrent. Αφού κατεβάσετε το αρχείο ISO με το BitTorrent, μπορείτε να το γράψετε σε CD ή DVD, όπως περιγράφεται στο (burncd). Ανώνυμο 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 χρησιμοποιήστε την εντολή + cvs login και δώστε τον κωδικό + anoncvs όταν σας ζητηθεί. Το ssh δεν απαιτεί + τη χρήση κωδικού.) - + Ταΐβάν: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs - (για τον pserver χρησιμοποιήστε την εντολή + (Για pserver χρησιμοποιήστε την εντολή cvs login και δώστε οτιδήποτε για κωδικό - όταν σας ζητηθεί, το ssh δεν έχει κωδικό.) + όταν σας ζητηθεί, Το ssh δεν απαιτεί τη χρήση κωδικού.) SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub 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 - χωρίς - κωδικό) + anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (Για πρόσβαση μέσω ssh, + χρησιμοποιήστε την έκδοση 2 του ssh, χωρίς κωδικό.) 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 από το California Polytechnic State University. 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/&os; διατίθεται μέσω ανώνυμου 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, απλώς παραλείψτε τα βήματα για την εγκατάσταση του 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; Ετικέτες (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_8 Η γραμμή ανάπτυξης για το &os;-8.X, γνωστή επίσης και ως &os; 8-STABLE RELENG_8_0 Η γραμμή έκδοσης του &os;-8.0, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_7 Η γραμμή ανάπτυξης για το &os;-7.X, γνωστή επίσης και ως &os; 7-STABLE RELENG_7_3 Η γραμμή έκδοσης του &os;-7.3, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_7_2 Η γραμμή έκδοσης του &os;-7.2, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_7_1 Η γραμμή έκδοσης του &os;-7.1, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_7_0 Η γραμμή έκδοσης του &os;-7.0, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. RELENG_6 Η γραμμή ανάπτυξης για το &os;-6.X, γνωστή επίσης και ως &os; 6-STABLE RELENG_6_4 Η γραμμή έκδοσης του &os;-6.4, χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις. 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_8_0_0_RELEASE &os; 8.0 RELENG_7_3_0_RELEASE &os; 7.3 RELENG_7_2_0_RELEASE &os; 7.2 RELENG_7_1_0_RELEASE &os; 7.1 RELENG_7_0_0_RELEASE &os; 7.0 RELENG_6_4_0_RELEASE &os; 6.4 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://ftp.nl.FreeBSD.org/ Διαθέσιμες Συλλογές: &os;: Πλήρες mirror του διακομιστή FTP του &os;. Ρωσία rsync://ftp.mtu.ru/ Διαθέσιμες Συλλογές: &os;: Πλήρες mirror του διακομιστή FTP του &os;. &os;-gnats: Η βάση δεδομένων του συστήματος παρακολούθησης σφαλμάτων GNATS. &os;-Archive: Mirror του διακομιστή FTP παλαιότερων εκδόσεων (archive) του &os;. Ταΐβάν rsync://ftp.tw.FreeBSD.org/ rsync://ftp2.tw.FreeBSD.org/ rsync://ftp6.tw.FreeBSD.org/ Διαθέσιμες Συλλογές: &os;: Πλήρες mirror του διακομιστή FTP του &os;. Ηνωμένο Βασίλειο rsync://rsync.mirrorservice.org/ Διαθέσιμες Συλλογές: sites/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/virtualization/chapter.sgml b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml index 7407aa04a0..84c4298469 100644 --- a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml @@ -1,923 +1,1130 @@ Murray Stokely Συνεισφορά από τον Εικονικοποίηση Σύνοψη Το λογισμικό εικονικοποίησης επιτρέπει σε πολλαπλά λειτουργικά συστήματα να εκτελούνται ταυτόχρονα στον ίδιο υπολογιστή. Σε υπολογιστές PC το λογισμικό αυτό τυπικά χρησιμοποιεί ένα λειτουργικό ως ξενιστή (host) στο οποίο και εκτελείται, και το οποίο υποστηρίζει ένα οποιοδήποτε αριθμό από φιλοξενούμενα (guest) λειτουργικά. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Τη διαφορά μεταξύ ενός ξενιστή (host) και ενός φιλοξενούμενου (guest) λειτουργικού. Πως να εγκαταστήσετε το &os; σε ένα &apple; &macintosh; υπολογιστή που βασίζεται σε &intel; αρχιτεκτονική. Πως να εγκαταστήσετε το &os; στο Linux με τη βοήθεια του &xen;. Πώς να εγκαταστήσετε το &os; κάτω από µsoft.windows; με το Virtual PC. Πως να βελτιστοποιήσετε ένα &os; σύστημα για την καλύτερη απόδοση σε περιβάλλον εικονικού μηχανήματος. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να έχετε κατανοήσει τις βασικές έννοιες του &unix; και του &os; (). Να γνωρίζετε πως θα εγκαταστήσετε το &os; (). Να γνωρίζετε πως θα ρυθμίσετε τη σύνδεση σας στο δίκτυο (). Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (). Το &os; ως φιλοξενούμενο λειτουργικό Το Parallels σε MacOS Το Parallels Desktop για &mac; είναι ένα εμπορικό λογισμικό το οποίον είναι διαθέσιμο για υπολογιστές &apple; &mac; με επεξεργαστή &intel; και λειτουργικό &macos; 10.4.6 ή νεότερο. Το &os; παρέχει πλήρη υποστήριξη ως φιλοξενούμενο λειτουργικό. Όταν το Parallels έχει εγκατασταθεί στο &macos; X, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό σύστημα και στη συνέχεια να εγκαταστήσει το φιλοξενούμενο λειτουργικό σύστημα που επιθυμεί. Εγκαθιστώντας το &os; στο Parallels/&macos; X Το πρώτο βήμα για την εγκατάσταση του &os; στο &macos; X/Parallels είναι να δημιουργήσετε ένα νέο εικονικό σύστημα για το &os;. Όταν ερωτηθείτε, επιλέξτε το &os; σαν το φιλοξενούμενο λειτουργικό (Guest OS) . Ορίστε ένα λογικό μέγεθος δίσκου και μνήμης που να ανταποκρίνεται στα σχέδια που έχετε για την εικονικοποίηση του &os;. 4GB δίσκος και 512MB μνήμης δουλεύουν μια χαρά για τους περισσότερους χρήστες του &os;μέσα από το Parallels: Επιλέξτε τον τύπο δικτύωσης και τον προσαρμογέα δικτύου: Αποθήκευση και τέλος των ρυθμίσεων: Όταν το εικονικό σύστημα έχει δημιουργηθεί, θα χρειαστεί να εγκαταστήσετε το ίδιο το &os;. Ο καλύτερος τρόπος για να γίνει η εγκατάσταση είναι με το επίσημο &os; CD-ROM ή με κάποιο αρχείο ISO, κατεβασμένο από τον επίσημο FTP τόπο. Όταν έχετε το κατάλληλο ISO στο σκληρό σας, ή το CD-ROM στον οδηγό CD, ενεργοποιήστε με το ποντίκι το εικονίδιο του CD στο κάτω δεξί μέρος της οθόνης του Parallels. Με αυτόν τον τρόπο θα μπορέσετε να ορίσετε την πηγή της εγκατάστασης. Μπορείτε να ορίσετε το CDROM ή κάποιο διαθέσιμο ISO αρχείο. Όταν έχετε αντιστοιχήσει τη πηγή εγκατάστασης, επανεκκινήστε το εικονικό σύστημα πατώντας απλά το κουμπί της επανεκκίνησης (reboot) - του Parallels. To + του Parallels. Το Parallels θα ξεκινήσει με ένα ειδικό BIOS το οποίο πρώτα ελέγχει εάν υπάρχει διαθέσιμο κάποιο CD-ROM, όπως κάνει και ένα φυσιολογικό BIOS. Σε αυτή τη περίπτωση θα βρει το μέσο εγκατάστασης του &os; και θα ξεκινήσει το sysinstall όπως περιγράφεται στο . Μπορείτε να εγκαταστήσετε το X11, αλλά μη δοκιμάσετε να ρυθμίσετε αυτή τη στιγμή. Όταν τελειώσετε με την εγκατάσταση, κάντε μια επανεκκίνηση στο φρέσκο εικονικό &os;. Ρυθμίζοντας το &os; στο &macos; X/Parallels Αφού έχει εγκατασταθεί επιτυχώς το &os; στο &macos; X με το Parallels, υπάρχουν μερικά βήματα ακόμη που μπορούν να σας βοηθήσουν να ρυθμίσετε το εικονικό σας σύστημα. Μεταβλητές του boot loader Το ποιο σημαντικό βήμα είναι να μειώσετε το μέγεθος του προκειμένου να αξιοποιήσετε τη CPU μέσα από το Parallels. Αυτό μπορεί να γίνει με το να προσθέσετε την ακόλουθη γραμμή στο /boot/loader.conf: kern.hz=100 Χωρίς αυτή τη ρύθμιση, ένα αδρανές &os; στο Parallels θα καταναλώνει το 15% της CPU ενός μονοπύρηνου &imac;. Μετά από την αλλαγή, η κατανάλωση θα πέσει κοντά στο 5%. Δημιουργία νέου αρχείου ρυθμίσεων του πυρήνα Μπορείτε να αφαιρέσετε όλες τους οδηγούς για SCSI, FireWire, και USB συσκευές. Το Parallels παρέχει ένα εικονικό προσαρμογέα δικτύου ο οποίος χρησιμοποιείται από τον οδηγό &man.ed.4;, οπότε όλοι οι οδηγοί για δικτυακές συσκευές εκτός των &man.ed.4; και &man.miibus.4; μπορούν να αφαιρεθούν από τον πυρήνα. Ρύθμιση δικτύου Η πιο απλή ρύθμιση δικτύου κάνει χρήση του DHCP για να συνδεθεί το εικονικό σας σύστημα στο ίδιο τοπικό δίκτυο με τον &mac;. Αυτό μπορεί εύκολα να γίνει με το να προσθέσετε τη γραμμή ifconfig_ed0="DHCP" στο /etc/rc.conf. Πολυπλοκότερες ρυθμίσεις δικτύου περιγράφονται στο κεφάλαιο . + &os; με &xen; στο Linux Το &xen; hypervisor είναι ένα προϊόν παρα-εικονικοποίησης (paravirtualization) ανοιχτού κώδικα το οποίο υποστηρίζεται από την εταιρεία XenSource. Τα φιλοξενούμενα λειτουργικά είναι γνωστά σαν domU domains, και ο ξενιστής σαν dom0. Το πρώτο βήμα για να τρέξετε ένα εικονικό σύστημα &os; μέσα από το Linux είναι να εγκαταστήσετε το &xen; για Linux dom0. Εμείς χρησιμοποιήσαμε ως ξενιστή της διανομή Slackware Linux. Εγκατάσταση &xen; 3 σε Linux dom0 Κατέβασμα &xen; 3.0 από XenSource Κατεβάστε xen-3.0.4_1-src.tgz from . Ξεπακετάρετε το tarball &prompt.root; cd xen-3.0.4_1-src &prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world &prompt.root; make install Για να μεταγλωττίσετε ξανά τον πυρήνα για το dom0: &prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0 &prompt.root; make menuconfig &prompt.root; make &prompt.root; make install Παλιές εκδόσεις του &xen; ίσως χρειάζονται να οριστεί το make ARCH=xen menuconfig Προσθήκη στη λίστα του Grub menu.lst Επεξεργαστείτε το /boot/grub/menu.lst και προσθέστε τις παρακάτω γραμμές: title Xen-3.0.4 root (hd0,0) kernel /boot/xen-3.0.4-1.gz dom0_mem=262144 module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro Επανεκκινήστε το σύστημά σας και φορτώστε το &xen; Αρχικά, επεξεργαστείτε το /etc/xen/xend-config.sxp, και προσθέστε τις παρακάτω γραμμές: (network-script 'network-bridge netdev=eth0') Στη συνέχεια, μπορούμε να τρέξουμε το &xen;: &prompt.root; /etc/init.d/xend start &prompt.root; /etc/init.d/xendomains start Το dom0 τρέχει: &prompt.root; xm list Name ID Mem VCPUs State Time(s) -Domain-0 0 256 1 r----- 54452.9 +Domain-0 0 256 1 r––––– 54452.9 &os; 7-CURRENT domU Κατεβάστε το &os; domU kernel για το &xen; 3.0 και την εικόνα δίσκο (disk image) από http://www.fsmware.com/ kernel-current mdroot-7.0.bz2 xmexample1.bsd Τοποθετήστε το αρχείο ρυθμίσεων xmexample1.bsd μέσα στο /etc/xen/ και αλλάξτε τα στοιχεία που σχετίζονται με το που βρίσκεται ο πυρήνας και η εικόνα δίσκου. Θα πρέπει να μοιάζει με το παρακάτω: kernel = "/opt/kernel-current" memory = 256 name = "freebsd" vif = [ '' ] disk = [ 'file:/opt/mdroot-7.0,hda1,w' ] #on_crash = 'preserve' extra = "boot_verbose" extra += ",boot_single" extra += ",kern.hz=100" extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a" Το αρχείο mdroot-7.0.bz2 θα πρέπει να είναι αποσυμπιεσμένο Στη συνέχεια, το __xen_guest που βρίσκεται στο kernel-current πρέπει να αλλάξει για να προστεθεί το VIRT_BASE που απαιτεί το &xen; 3.0.3: &prompt.root; objcopy kernel-current -R __xen_guest &prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp -&prompt.root; objcopy kernel-current --add-section __xen_guest=tmp +&prompt.root; objcopy kernel-current ––add-section __xen_guest=tmp &prompt.root; objdump -j __xen_guest -s kernel-current kernel-current: file format elf32-i386 Contents of section __xen_guest: 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd, 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. Τώρα είμαστε έτοιμοι να δημιουργήσουμε και να εκκινήσουμε το domU: &prompt.root; xm create /etc/xen/xmexample1.bsd -c Using config file "/etc/xen/xmexample1.bsd". Started domain freebsd WARNING: loader(8) metadata is missing! Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF WARNING: DIAGNOSTIC option enabled, expect reduced performance. Xen reported: 1796.927 MHz processor. Timecounter "ixen" frequency 1796927000 Hz quality 0 CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0x4400<CNTX-ID,<b14>> real memory = 265244672 (252 MB) avail memory = 255963136 (244 MB) xc0: <Xen Console> on motherboard cpu0 on motherboard Timecounters tick every 10.000 msec [XEN] Initialising virtual ethernet driver. xn0: Ethernet address: 00:16:3e:6b:de:3a [XEN] Trying to mount root from ufs:/dev/xbd769a WARNING: / was not properly dismounted Loading configuration files. No suitable dump device was found. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation) Setting hostname: demo.freebsd.org. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Additional routing options:. Mounting NFS file systems:. Starting syslogd. /etc/rc: WARNING: Dump device does not exist. Savecore not run. ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout Starting usbd. usb: Kernel module not available: No such file or directory Starting local daemons:. Updating motd. Starting sshd. Initial i386 initialization:. Additional ABI support: linux. Starting cron. Local package initialization:. Additional TCP options:. Starting background file system checks in 60 seconds. Sun Apr 1 02:11:43 UTC 2007 FreeBSD/i386 (demo.freebsd.org) (xc0) login: Το domU θα πρέπει να τρέχει τον πυρήνα &os; 7.0-CURRENT: &prompt.root; uname -a FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386 Τώρα μπορούμε να ρυθμίσουμε και το δίκτυο στο domU. Το &os; domU θα κάνει χρήση ενός ειδικού προσαρμογέα με όνομα xn0: &prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0 &prompt.root; ifconfig xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500 inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255 ether 00:16:3e:6b:de:3a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Στο dom0 Slackware, κάποιa network interfaces που εξαρτώνται από το &xen; θα πρέπει τώρα να είναι διαθέσιμα: &prompt.root; ifconfig eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2 inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:815 errors:0 dropped:0 overruns:0 frame:0 TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:99 errors:0 dropped:0 overruns:0 frame:0 TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB) peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0 TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB) Base address:0xc000 Memory:ef020000-ef040000 vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1400 errors:0 dropped:0 overruns:0 frame:0 TX packets:815 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB) vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:157 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:140 (140.0 b) TX bytes:158 (158.0 b) xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:112 (112.0 b) TX bytes:0 (0.0 b) &prompt.root; brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no vif0.1 peth0 vif1.0 +--> + + Το Virtual PC στα &windows; + + Το Virtual PC για &windows; είναι ένα + προϊόν της µsoft; που διατίθεται για δωρεάν κατέβασμα. Δείτε + τις απαιτήσεις συστήματος. + Μετά την εγκατάσταση του Virtual PC στα + µsoft.windows;, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό + μηχάνημα και να εγκαταστήσει το φιλοξενούμενο λειτουργικό που + επιθυμεί. + + + Εγκατάσταση του &os; στο Virtual PC/µsoft.windows; + + Το πρώτο βήμα στην εγκατάσταση του &os; στα µsoft.windows; + με χρήση του Virtual PC, είναι η + δημιουργία ενός νέου εικονικού μηχανήματος για την εγκατάσταση του. + Επιλέξτε Create a virtual machine όταν + ερωτηθείτε: + + + + + + + + + + + + + + Στην ερώτηση Operating System + επιλέξτε Other: + + + + + + + + Επιλέξτε έπειτα κατάλληλο μέγεθος για το σκληρό δίσκο και τη + μνήμη RAM του εικονικού μηχανήματος, ανάλογα με τη χρήση που + σκοπεύετε να κάνετε. Στις περισσότερες περιπτώσεις, τα 4GB δίσκου + και 512MB RAM είναι αρκετά για χρήση του &os; στο + Virtual PC: + + + + + + + + + + + + + + Ολοκληρώστε αποθηκεύοντας τις ρυθμίσεις: + + + + + + + + Επιλέξτε την εικονική μηχανή &os; που δημιουργήσατε και + κάντε κλικ στο Settings. Ρυθμίστε + έπειτα το είδος και την διεπαφή (interface) του δικτύου: + + + + + + + + + + + + + + Αφού δημιουργήσετε την εικονική μηχανή σας για το &os;, θα + πρέπει να εγκαταστήσετε το λειτουργικό σε αυτήν. Ο καλύτερος + τρόπος είναι να χρησιμοποιήσετε ένα από τα επίσημα CDROM του + &os; ή να κατεβάσετε κάποιο αρχείο ISO από την επίσημη τοποθεσία + FTP. Έχοντας το κατάλληλο αρχείο ISO στο τοπικό σας σύστημα + αρχείων των &windows; (ή το αντίστοιχο CDROM στον οδηγό), κάντε + διπλό κλικ στο εικονίδιο της εικονικής μηχανής &os; για να την + εκκινήσετε. Έπειτα κάντε κλικ στο CD και + επιλέξτε Capture ISO Image... στο παράθυρο + του Virtual PC. Θα εμφανιστεί ένα + παράθυρο που θα σας επιτρέψει να συσχετίσετε τον εικονικό οδηγό + CDROM με ένα αρχείο ISO ή και με τον πραγματικό σας οδηγό. + + + + + + + + + + + + + + Μόλις δημιουργήσετε τη συσχέτιση με την πηγή που θα + χρησιμοποιήσετε ως CDROM, επανεκκινήστε το εικονικό σας &os; + μηχάνημα, επιλέγοντας Reset από το μενού + Action. + Το Virtual PC εκκινεί με ένα ειδικό + BIOS το οποίο ελέγχει πρώτα αν υπάρχει CDROM στον οδηγό, όπως + ακριβώς συμβαίνει και με ένα φυσιολογικό BIOS. + + + + + + + + Στη δική μας περίπτωση, θα ανιχνεύσει το μέσο εγκατάστασης του + &os; και θα ξεκινήσει η συνηθισμένη διαδικασία εγκατάστασης μέσω + του sysinstall, όπως περιγράφεται στο + . Μπορείτε να προχωρήσετε με την + εγκατάσταση, αλλά μη προσπαθήσετε να ρυθμίσετε το γραφικό + σύστημα X11 τη δεδομένη στιγμή. + + + + + + + + Όταν τελειώσετε την εγκατάσταση, μη ξεχάσετε να βγάλετε το + CDROM από τον οδηγό (ή να καταργήσετε την αντίστοιχη συσχέτιση με + το αρχείο ISO). Μπορείτε έπειτα να επανεκκινήσετε στη νέα σας + εγκατάσταση του &os;. + + + + + + + + + + Ρύθμιση του &os; στο Virtual PC σε µsoft.windows; + + Μετά την επιτυχή εγκατάσταση του &os; στα µsoft.windows; + μέσω του Virtual PC, θα πρέπει να + εκτελέσετε μια σειρά από ρυθμίσεις για να βελτιστοποιήσετε + την λειτουργία του συστήματος σε περιβάλλον εικονικής + μηχανής. + + + + Θέστε τιμές στις μεταβλητές του φορτωτή εκκίνησης + + Η πιο σημαντική ρύθμιση είναι να μειώσετε την τιμή της + μεταβλητής για να μειώσετε τη χρήση + της CPU στο &os; όταν το χρησιμοποιείτε στο εικονικό περιβάλλον + του Virtual PC. Αυτό μπορεί να + επιτευχθεί προσθέτοντας την παρακάτω γραμμή στο αρχείο + /boot/loader.conf: + + kern.hz=100 + + Χωρίς αυτή τη ρύθμιση, μια εικονική μηχανή &os; στο + Virtual PC, όταν εκτελείται χωρίς + φορτίο, θα χρησιμοποιεί περίπου το 40% του επεξεργαστή σε + ένα μηχάνημα με μία CPU. Μετά από την αλλαγή αυτή, η χρήση + θα είναι κοντά στο 3%. + + + + Δημιουργήστε ένα νέο αρχείο ρυθμίσεων πυρήνα + + Μπορείτε να αφαιρέσετε όλα τα προγράμματα οδήγησης για + συσκευές SCSI, Firewire και USB. + Το Virtual PC παρέχει μια εικονική + κάρτα δικτύου η οποία υποστηρίζεται από το πρόγραμμα οδήγησης + &man.de.4;, άρα μπορείτε να αφαιρέσετε όλες τις άλλες κάρτες + δικτύου από τον πυρήνα, εκτός από το &man.de.4; και το + &man.miibus.4;. + + + + Ρύθμιση δικτύου + + Η πιο απλή ρύθμιση δικτύου περιλαμβάνει τη χρήση του + πρωτοκόλλου DHCP για να συνδέσετε το εικονικό μηχάνημα σας στο + ίδιο τοπικό δίκτυο με το μηχάνημα ξενιστή. Αυτό επιτυγχάνεται + προσθέτοντας τη γραμμή ifconfig_de0="DHCP" + στο /etc/rc.conf. Μπορείτε να βρείτε + πιο προχωρημένες ρυθμίσεις δικτύου στο . + + + + Το VMware σε MacOS Το VMware Fusion για &mac; είναι ένα εμπορικό πρόγραμμα. Υπάρχει διαθέσιμο για υπολογιστές &apple; &mac; αρχιτεκτονικής &intel; που τρέχουν &macos; 10.4.9 ή κάποια πιο πρόσφατη έκδοση. Το &os; υποστηρίζεται πλήρως ως φιλοξενούμενο (guest) λειτουργικό. Μόλις ολοκληρωθεί η εγκατάσταση του VMware Fusion στο &macos; X, πρέπει να ρυθμίσετε μια εικονική μηχανή και να εγκαταστήσετε το φιλοξενούμενο λειτουργικό σύστημα. Εγκατάσταση του &os; στο VMware/&macos; X Αρχικά ξεκινήστε το VMware Fusion, και θα φορτώσει η Συλλογή Εικονικών Μηχανών. Επιλέξτε "New" για να δημιουργήσετε μια νέα εικονική μηχανή: Θα δείτε να φορτώνει το New Virtual Machine Assistant, το βοηθητικό πρόγραμμα δημιουργίας μιας νέας εικονικής μηχανής. Επιλέξτε Continue για να συνεχίσετε: Στην επιλογή λειτουργικού συστήματος διαλέξτε Other και ως έκδοση λειτουργικού συστήματος διαλέξτε &os; ή &os; 64-bit (ανάλογα με το αν θέλετε υποστήριξη για 64-bit εφαρμογές ή όχι): Δώστε ένα όνομα για το VM Image και ρυθμίστε τον κατάλογο στον οποίο θέλετε να αποθηκευθεί: Ρυθμίστε το μέγεθος του Εικονικού Δίσκου για την εικονική μηχανή: Επιλέξτε μια μέθοδο εγκατάστασης για την εικονική μηχανή: είτε από ένα ISO image είτε από το CD-ROM: Μόλις επιλέξετε Finish, η εικονική μηχανή θα ξεκινήσει τη διαδικασία εκκίνησης (boot): Εγκαταστήστε το &os; όπως θα κάνατε και σε οποιοδήποτε άλλο υπολογιστή, ή ακολουθώντας τις οδηγίες από το : Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να αλλάξετε τις ρυθμίσεις της εικονικής μηχανής, όπως π.χ. το μέγεθος μνήμης που θα χρησιμοποιεί: Οι ρυθμίσεις υλικού μιας εικονικής μηχανής δε μπορούν να αλλάξουν όσο τρέχει αυτή η εικονική μηχανή. Μπορείτε, ακόμη, να ρυθμίσετε τον αριθμό των επεξεργαστών τους οποίους επιτρέπεται να χρησιμοποιήσει αυτή η εικονική μηχανή: Ίσως έχει νόημα, επίσης, να αλλάξετε το αρχείο ή τη συσκευή που φαίνεται ως CD-ROM μέσα στην εικονική μηχανή. Συνήθως μπορείτε να αποσυνδέσετε το CD-ROM ή το ISO image από την εικονική μηχανή, αφού δε χρειάζεται πλέον όταν έχει ολοκληρωθεί η εγκατάσταση του &os;: Μια από τις τελευταίες ρυθμίσεις είναι η σύνδεση της εικονικής μηχανής με το δίκτυο. Για να μπορείτε να συνδεθείτε στην ΕΜ από άλλα μηχανήματα (εκτός του ξενιστή), ενεργοποιήστε την επιλογή Connect directly to the physical network (Bridged). Αλλιώς, για να μπορεί η ΕΜ να συνδεθεί στο δίκτυο μέσω του ξενιστή, αλλά να μη μπορούν άλλα μηχανήματα να συνδεθούν σε αυτή, ενεργοποιήστε την επιλογή Share the host's internet connection (NAT). Μόλις τελειώσετε με αυτές τις ρυθμίσεις, μπορείτε να εκκινήσετε τη νέα εικονική μηχανή με το φρεσκο-εγκατεστημένο &os; σας. Ρυθμίσεις του &os; μέσα στο &macos; X/VMware Αφού τελειώσετε με την εγκατάσταση του &os; σε μια εικονική μηχανή VMware μέσα σε &macos; X, πρέπει να κάνετε κάποιες ρυθμίσεις για να βελτιωθεί η απόδοση του &os; ως φιλοξενούμενου συστήματος. Ρυθμίσεις μεταβλητών του boot loader Η πιο σημαντική ρύθμιση είναι να μειώσετε την τιμή της μεταβλητής , για να μειωθεί κάπως η χρήση του επεξεργαστή από το &os; καθώς τρέχει μέσα στο VMware. Προσθέστε, λοιπόν, την παρακάτω γραμμή στο αρχείο /boot/loader.conf: kern.hz=100 Χωρίς αυτή τη ρύθμιση ένα φιλοξενούμενο &os; που τρέχει μέσα σε VMware μπορεί να χρησιμοποιεί μέχρι και 15% του επεξεργαστή ενός &imac;. Μετά από αυτή τη ρύθμιση η χρήση του επεξεργαστή μπορεί να είναι μικρότερη από 5%. Δημιουργήστε ένα νέο αρχείο ρυθμίσεων πυρήνα Μπορείτε να αφαιρέσετε όλες τις συσκευές FireWire και USB. Το VMware παρέχει μια εικονική κάρτα δικτύου, η οποία είναι συμβατή με τον οδηγό &man.em.4;, οπότε μπορείτε να αφαιρέσετε όλες τις υπόλοιπες κάρτες δικτύου από τον πυρήνα σας. Ρυθμίστε το δίκτυο Ο πιο εύκολος τρόπος να ρυθμίσετε το δίκτυο της εικονικής μηχανής είναι να συνδεθείτε μέσω DHCP με το τοπικό δίκτυο, χρησιμοποιώντας τη διεύθυνση MAC του ξενιστή. Αυτό μπορεί να γίνει προσθέτοντας τη γραμμή ifconfig_em0="DHCP" στο αρχείο /etc/rc.conf. Για περισσότερες πληροφορίες και πιο προχωρημένες ρυθμίσεις δικτύου, δείτε το . Το &os; ως Ξενιστής (Host) Για αρκετά χρόνια, κανένα από τα πακέτα εικονικοποίησης δεν υποστήριζε επίσημα το &os; ως ξενιστή. Κάποιοι χρήστες χρησιμοποιούσαν παλιές και κατά βάση εγκαταλελειμμένες εκδόσεις του VMware (όπως το emulators/vmware3), οι οποίες χρησιμοποιούσαν την συμβατότητα εκτέλεσης προγραμμάτων &linux;. Λίγο μετά την επίσημη κυκλοφορία του &os; 7.2, έγινε διαθέσιμη στη Συλλογή των Ports η έκδοση Ανοικτού Κώδικα (OSE, Open Source Edition) του &virtualbox; της &sun;. Η εφαρμογή αυτή εκτελείται ως εγγενές πρόγραμμα του &os;. Το &virtualbox; είναι ένα πλήρες πακέτο εικονικοποίησης το οποίο βρίσκεται σε διαρκή ανάπτυξη. Είναι διαθέσιμο για τα περισσότερα λειτουργικά συστήματα, συμπεριλαμβανομένων των &windows;, &macos;, &linux; και &os;. Έχει τη δυνατότητα να εκτελεί το ίδιο καλά τόσο λειτουργικά τύπου &windows; όσο και &unix;. Έρχεται σε δύο εκδόσεις: ανοικτού και κλειστού κώδικα. Από την μεριά του χρήστη, ίσως ο μεγαλύτερος περιορισμός της έκδοσης ανοικτού κώδικα είναι η έλλειψη υποστήριξης συσκευών USB. Μπορείτε να δείτε όλες τις διαφορές στη σελίδα Editions του &virtualbox; wiki, στην τοποθεσία . Τη δεδομένη στιγμή, μόνο η έκδοση OSE διατίθεται για το &os;. Εγκατάσταση του &virtualbox; Το &virtualbox; είναι διαθέσιμο ως &os; port στο emulators/virtualbox-ose, και μπορείτε να το εγκαταστήσετε με τις παρακάτω εντολές: &prompt.root; cd /usr/ports/emulators/virtualbox-ose &prompt.root; make install clean Μια χρήσιμη επιλογή που εμφανίζεται στο διάλογο ρυθμίσεων, αφορά την εγκατάσταση των προγραμμάτων GuestAdditions. Τα προγράμματα αυτά παρέχουν μια σειρά από χρήσιμες λειτουργίες στα φιλοξενούμενα λειτουργικά, όπως η διάφανη λειτουργία του δείκτη ποντικιού (επιτρέπει στο ποντίκι να κινείται ελεύθερα μεταξύ του ξενιστή και του φιλοξενούμενου λειτουργικού, χωρίς να απαιτείται η χρήση κάποιου ειδικού πλήκτρου για εναλλαγή) καθώς και ταχύτερη γραφική απεικόνιση, ειδικά σε λειτουργικά &windows;. Μπορείτε να βρείτε τα guest additions στο μενού Devices, όταν ολοκληρώσετε την εγκατάσταση του φιλοξενούμενου λειτουργικού. Πριν χρησιμοποιήσετε το &virtualbox; για πρώτη φορά, θα πρέπει να αλλάξετε κάποιες ρυθμίσεις. Το port εγκαθιστά ένα άρθρωμα πυρήνα στον κατάλογο /boot/modules το οποίο θα πρέπει να φορτώσετε στον πυρήνα που εκτελείται: &prompt.root; kldload vboxdrv Για να φορτώνεται το άρθρωμα αυτόματα σε κάθε επανεκκίνηση του συστήματος, προσθέστε την παρακάτω γραμμή στο αρχείο /boot/loader.conf: vboxdrv_load="YES" - Οικ εκδόσεις του &virtualbox; πριν την + Οι εκδόσεις του &virtualbox; πριν την 3.1.2 απαιτούν επίσης την προσάρτηση του συστήματος αρχείων proc. Αυτό δεν απαιτείται στις πρόσφατες εκδόσεις, οι οποίες χρησιμοποιούν τις συναρτήσεις που παρέχει η βιβλιοθήκη &man.sysctl.3;. Όταν χρησιμοποιείτε κάποια παλιότερη έκδοση του port, ακολουθήστε τις παρακάτω οδηγίες για να βεβαιωθείτε ότι γίνεται σωστά η προσάρτηση του proc: &prompt.root; mount -t procfs proc /proc Για να παραμείνει αυτή η ρύθμιση μετά από μια επανεκκίνηση, θα πρέπει να προσθέσετε την παρακάτω γραμμή στο αρχείο /etc/fstab: proc /proc procfs rw 0 0 Αν δείτε το παρακάτω μήνυμα όταν εκτελείτε το &virtualbox; μέσω τερματικού: VirtualBox: supR3HardenedExecDir: couldn't read "", errno=2 cchLink=-1 Η πιο πιθανή αιτία είναι κάποιο πρόβλημα με το σύστημα αρχείων proc. Χρησιμοποιήστε την εντολή mount για να δείτε αν το proc έχει προσαρτηθεί σωστά. Κατά τη διάρκεια της εγκατάστασης του &virtualbox;, δημιουργείται αυτόματα η ομάδα χρηστών vboxusers. Όλοι οι χρήστες που χρειάζονται πρόσβαση στο &virtualbox;, θα πρέπει να ανήκουν σε αυτή την ομάδα. Μπορείτε να χρησιμοποιήσετε την εντολή pw για να προσθέσετε νέα μέλη στην ομάδα: &prompt.root; pw groupmod vboxusers -m yourusername Για να εκτελέσετε το &virtualbox;, μπορείτε απλώς να επιλέξετε την καταχώριση Sun VirtualBox από το μενού του γραφικού σας περιβάλλοντος, ή να πληκτρολογήσετε το παρακάτω σε ένα τερματικό: &prompt.user; VirtualBox Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση και χρήση του &virtualbox;, παρακαλούμε επισκεφθείτε την επίσημη δικτυακή τοποθεσία στο . Καθώς το &os; port είναι πολύ πρόσφατο, η εξέλιξη του είναι συνεχής. Για τις τελευταίες πληροφορίες καθώς και για οδηγίες αντιμετώπισης τυχόν προβλημάτων, παρακαλούμε δείτε τη σχετική σελίδα στο wiki του &os;, στην τοποθεσία . Άλλες Επιλογές Εικονικοποίησης Υπό εξέλιξη βρίσκεται η προσπάθεια να λειτουργήσει το &xen; ως περιβάλλον ξενιστή για το &os;.