A.6. Χρησιμοποιώντας το CVSup

A.6.1. Εισαγωγή

Το CVSup είναι ένα λογισμικό για την διανομή και ανανέωση δέντρων πηγαίου κώδικα από ένα κεντρικό (master) CVS repository το οποίο βρίσκεται σε κάποιο απομακρυσμένο υπολογιστή. Το repository του FreeBSD βρίσκεται σε ένα κεντρικό μηχάνημα στην Καλιφόρνια. Με το CVSup, οι χρήστες του FreeBSD μπορούν εύκολα να διατηρήσουν ανανεωμένα τα αντίγραφα του πηγαίου τους κώδικα.

Το CVSup χρησιμοποιεί ένα μοντέλο ανανέωσης γνωστό ως pull. Στο μοντέλο αυτό, κάθε πελάτης ζητά τις ανανεώσεις από τον εξυπηρετητή, όταν και αν τις επιθυμεί. Ο εξυπηρετητής περιμένει, παθητικά, τις απαιτήσεις από τους πελάτες. Με τον τρόπο αυτό, κάθε ανανέωση ξεκινάει κατόπιν απαίτησης του πελάτη. Ο εξυπηρετητής ποτέ δεν στέλνει ανανεώσεις που δεν έχουν ζητηθεί. Οι χρήστες θα πρέπει είτε να εκτελέσουν το CVSup χειροκίνητα για να λάβουν μια ανανέωση, είτε θα πρέπει να ρυθμίσουν κατάλληλα το cron ώστε να το εκτελεί αυτόματα κατά τακτά χρονικά διαστήματα.

Ο όρος CVSup, γραμμένος με κεφαλαία και μικρά όπως φαίνεται, αναφέρεται σε ολόκληρο το πακέτο λογισμικού. Τα βασικά του τμήματα είναι η εντολή πελάτη cvsup η οποία εκτελείται στο μηχάνημα του κάθε χρήστη, και το πρόγραμμα του εξυπηρετητή cvsupd το οποίο εκτελείται σε κάθε ένα από τα mirror sites του FreeBSD.

Καθώς διαβάζετε την τεκμηρίωση και τις λίστες ταχυδρομείου του FreeBSD, μπορεί να βρείτε αναφορές στην εφαρμογή sup. Το sup ήταν ο πρόγονος του CVSup, και εξυπηρετούσε παρόμοιο σκοπό. Το CVSup χρησιμοποιείται με αρκετά όμοιο τρόπο με το sup, και στην πραγματικότητα, χρησιμοποιεί αρχεία ρυθμίσεων τα οποία έχουν πίσω συμβατότητα με αυτά του sup. Το sup δεν χρησιμοποιείται πλέον στο FreeBSD Project, επειδή το CVSup είναι ταχύτερο και προσφέρει μεγαλύτερη ευελιξία.

Σημείωση:

Το πρόγραμμα csup είναι το CVSup ξαναγραμμένο σε γλώσσα C. Το μεγαλύτερο του πλεονέκτημα είναι ότι είναι ταχύτερο, και δεν εξαρτάται από την γλώσσα προγραμματισμού Modula-3, την οποία και δεν χρειάζεται πλέον να εγκαταστήσετε. Επίσης μπορείτε να το χρησιμοποιήσετε άμεσα, καθώς περιλαμβάνεται στο βασικό σύστημα. Αν αποφασίσετε να χρησιμοποιήσετε το csup, απλώς παραλείψτε τα βήματα για την εγκατάσταση του CVSup και αντικαταστήστε κάθε αναφορά στο CVSup σε αυτό το άρθρο, με csup.

A.6.2. Εγκατάσταση

Ο ευκολότερος τρόπος για να εγκαταστήσετε το CVSup είναι μέσω του έτοιμου πακέτου net/cvsup από την συλλογή πακέτων του FreeBSD. Αν προτιμάτε να μεταγλωττίσετε το CVSup από τον πηγαίο κώδικα, μπορείτε να χρησιμοποιήσετε το port net/cvsup. Σας προειδοποιούμε ωστόσο ότι το port net/cvsup εξαρτάται από την Modula-3, η οποία χρειάζεται αρκετό χρόνο και χώρο στο δίσκο για να κατέβει και να μεταγλωττιστεί.

Σημείωση:

Αν πρόκειται να χρησιμοποιήσετε το CVSup σε ένα μηχάνημα το οποίο δεν θα διαθέτει γραφικό περιβάλλον μέσω του Xorg, όπως π.χ. σε ένα εξυπηρετητή, βεβαιωθείτε ότι εγκαθιστάτε το αντίστοιχο port το οποίο δεν περιλαμβάνει γραφικό περιβάλλον, δηλαδή το net/cvsup-without-gui.

A.6.3. Ρύθμιση του 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 για λήψη και ανανέωση του κυρίως δέντρου πηγαίου κώδικα για το FreeBSD-CURRENT.

  • Ποια αρχεία θέλετε να λάβετε;

    Τα αρχεία που είναι διαθέσιμα μέσω της CVSup είναι οργανωμένα σε γκρουπ που ονομάζονται «συλλογές». Περιγραφή των διαθέσιμων συλλογών θα βρείτε στο ακόλουθο τμήμα. Στο παράδειγμα μας, θέλουμε να λάβουμε το πλήρες δέντρο πηγαίου κώδικα του FreeBSD συστήματος. Υπάρχει μια μεγάλη συλλογή src-all η οποία θα μας την δώσει όλη. Σαν πρώτο βήμα για την δόμηση του supfile, απλώς γράφουμε τις συλλογές, μία σε κάθε γραμμή (στην περίπτωση μας έχουμε μόνο μια γραμμή):

    src-all
  • Ποιες εκδόσεις των αρχείων θέλετε να λάβετε;

    Με το CVSup, μπορείτε ουσιαστικά να λάβετε οποιαδήποτε έκδοση του πηγαίου κώδικα υπήρξε ποτέ. Αυτό είναι δυνατόν επειδή ο εξυπηρετητής cvsupd λειτουργεί απευθείας από το CVS repository, το οποίο περιέχει όλες τις εκδόσεις. Δηλώνετε ποια από αυτές θέλετε χρησιμοποιώντας τα πεδία τιμών tag= και date=.

    Προειδοποίηση:

    Θα πρέπει να δώσετε ιδιαίτερη προσοχή στον καθορισμό των πεδίων tag= ώστε να είναι σωστά. Κάποια tags είναι έγκυρα μόνο για συγκεκριμένες συλλογές αρχείων. Αν καθορίσετε λανθασμένο tag (ή κάνετε ορθογραφικό λάθος) το CVSup θα σβήσει αρχεία τα οποία πιθανώς δεν θέλετε να σβηστούν. Ειδικότερα, για την συλλογή των ports-*, χρησιμοποιήστε μόνο το tag=..

    Το πεδίο tag= δείχνει προς ένα συμβολικό tag στο repository. Υπάρχουν δύο είδη tags, τα tags εκδόσεων (revision tags) και τα tags κλάδων (branch tags). Ένα revision tag αναφέρεται σε μια συγκεκριμένη έκδοση. Η σημασία του διατηρείται ίδια από τη μια μέρα στην άλλη. Από την άλλη, ένα branch tag, αναφέρεται στην τελευταία έκδοση μια συγκεκριμένης γραμμής ανάπτυξης, σε κάθε χρονική στιγμή. Επειδή ένα branch tag δεν αναφέρεται σε κάποια συγκεκριμένη έκδοση, μπορεί αύριο να σημαίνει κάτι διαφορετικό από ότι σημαίνει σήμερα.

    Στο Τμήμα A.7, «Ετικέτες (Tags) για το CVS» θα βρείτε branch tags τα οποία μπορεί να σας ενδιαφέρουν. Όταν καθορίζετε ένα tag στο αρχείο ρυθμίσεων του CVSup, θα πρέπει πριν από αυτό να βάζετε τη λέξη κλειδί tag= (δηλ. το RELENG_8 θα γίνει tag=RELENG_8). Να έχετε υπόψιν σας ότι για την συλλογή των Ports, το tag=. είναι το μόνο έγκυρο.

    Προειδοποίηση:

    Να είστε ιδιαίτερα προσεκτικός, ώστε να γράψετε το tag ακριβώς όπως φαίνεται. Το CVSup δεν μπορεί να διαχωρίσει μεταξύ έγκυρων και μη-έγκυρων tags. Αν γράψετε λάθος το tag, το CVSup θα συμπεριφερθεί σαν να έχετε δώσει ένα έγκυρο tag το οποίο δεν αναφέρεται σε κανένα αρχείο. Στην περίπτωση αυτή θα διαγράψει τα υπάρχοντα αρχεία σας πηγαίου κώδικα.

    Όταν καθορίσετε κάποιο branch tag, φυσιολογικά θα λάβετε τις τελευταίες εκδόσεις των αρχείων που υπάρχουν σε αυτή τη γραμμή ανάπτυξης. Αν θέλετε να λάβετε κάποιες παλιότερες εκδόσεις, μπορείτε να το κάνετε καθορίζοντας μια ημερομηνία μέσω του πεδίου τιμών date=. Η σελίδα manual csup(1) εξηγεί πως μπορείτε να το κάνετε.

    Στο παράδειγμα μας, επιθυμούμε να λάβουμε το FreeBSD-CURRENT. Προσθέτουμε τη γραμμή αυτή στην αρχή του supfile αρχείου μας:

    *default tag=.

    Υπάρχει μια σημαντική ειδική περίπτωση όταν δεν καθορίσετε ούτε πεδίο tag= ούτε πεδίο date=. Στην περίπτωση αυτή θα λάβετε τα κανονικά αρχεία RCS απευθείας από το CVS repository του εξυπηρετητή, αντί για να λάβετε κάποια συγκεκριμένη έκδοση. Οι προγραμματιστές γενικά προτιμούν αυτό τον τρόπο λειτουργίας. Διατηρώντας πλήρες αντίγραφο του CVS repository στα συστήματα τους έχουν την ικανότητα να βλέπουν το ιστορικό αλλαγών κάθε έκδοσης και να εξετάζουν παλιότερες εκδόσεις των αρχείων. Τα παραπάνω πλεονεκτήματα ωστόσο έχουν το κόστος της μεγαλύτερης χρήσης χώρου στο σκληρό δίσκο.

  • Από που θέλετε να τα λάβετε;

    Χρησιμοποιούμε το πεδίο host= για να πούμε στο cvsup από που να λάβει τις ανανεώσεις του. Οποιοδήποτε από τα CVSup mirror sites είναι κατάλληλο, αν και θα πρέπει να προσπαθήσετε να επιλέξετε κάποιο το οποίο να βρίσκεται κοντά σας. Στο παράδειγμα μας, θα χρησιμοποιήσουμε μια φανταστική τοποθεσία διανομής του FreeBSD, το cvsup99.FreeBSD.org:

    *default host=cvsup99.FreeBSD.org

    Θα πρέπει να αλλάξετε το host σε κάποιο που πραγματικά υπάρχει πριν εκτελέσετε το CVSup. Κάθε φορά που εκτελείτε το cvsup, έχετε την δυνατότητα να ανατρέπετε αυτή τη ρύθμιση μέσω της γραμμής εντολών με την επιλογή -h hostname.

  • Που θέλετε να τα αποθηκεύσετε στο μηχάνημα σας;

    Το πεδίο 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 του FreeBSD. Αυτό ισχύει σχεδόν πάντα, αλλά υπάρχουν και άλλες πιθανότητες που ξεφεύγουν από το σκοπό αυτής της συζήτησης.

    Η λέξη delete δίνει δικαιώματα στο CVSup να διαγράφει αρχεία. Θα πρέπει πάντοτε να έχετε την επιλογή αυτή, ώστε το CVSup να μπορεί να κρατήσει το δέντρο του πηγαίου σας κώδικα πλήρως ανανεωμένο. Το CVSup είναι αρκετά προσεκτικό ώστε να σβήνει μόνο τα αρχεία που βρίσκονται υπό την ευθύνη του. Αν τυχόν βάλετε έξτρα αρχεία στον ίδιο κατάλογο, δεν θα τα αγγίξει.

    Η επιλογή use-rel-suffix είναι... αρχαιολογική. Αν πραγματικά θέλετε να μάθετε σχετικά με αυτήν, διαβάστε τη σελίδα manual 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

A.6.3.1. Το Αρχείο refuse

Όπως αναφέραμε παραπάνω, το 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_*

κ.ο.κ. για τις υπόλοιπες γλώσσες (μπορείτε να βρείτε την πλήρη λίστα στο FreeBSD CVS repository).

Με αυτή τη χρήσιμη δυνατότητα, οι χρήστες που έχουν αργή σύνδεση ή πληρώνουν το Internet με χρονοχρέωση ανά λεπτό, θα μπορέσουν να εξοικονομήσουν πολύτιμο χρόνο καθώς δεν θα χρειάζεται πλέον να κατεβάσουν αρχεία που δεν πρόκειται να χρησιμοποιήσουν ποτέ. Για περισσότερες πληροφορίες σχετικά με τα αρχεία refuse και άλλα χρήσιμα χαρακτηριστικά του CVSup, παρακαλούμε διαβάστε την αντίστοιχη σελίδα του manual.

A.6.4. Εκτελώντας το CVSup

Είστε τώρα έτοιμοι να δοκιμάσετε μια ανανέωση. Η γραμμή εντολής για το σκοπό αυτό είναι ιδιαίτερα απλή:

# cvsup supfile

όπου το supfile είναι φυσικά το όνομα του αρχείου supfile που μόλις δημιουργήσατε. Υποθέτοντας ότι χρησιμοποιείτε τα X11, η εντολή cvsup θα σας εμφανίσει ένα γραφικό παράθυρο με κάποια πλήκτρα συνηθισμένων λειτουργιών. Πιέστε το πλήκτρο go, και παρακολουθήστε την εκτέλεση.

Καθώς στην περίπτωση μας ανανεώνεται το πραγματικό δέντρο /usr/src, θα χρειαστεί να εκτελέσετε το πρόγραμμα ως root ώστε η cvsup να έχει τα δικαιώματα που χρειάζεται για να ανανεώσει τα αρχεία σας. Καθώς μόλις έχετε δημιουργήσει το αρχείο ρυθμίσεων, και δεν έχετε ποτέ πριν χρησιμοποιήσει το πρόγραμμα, ίσως αισθάνεστε λίγο άβολα. Υπάρχει εύκολος τρόπος να κάνετε δοκιμαστική εκτέλεση χωρίς να πειράξετε τα πολύτιμα αρχεία σας. Απλώς δημιουργήστε ένα άδειο κατάλογο σε ένα βολικό μέρος, και δώστε το σαν έξτρα παράμετρο στην γραμμή εντολών:

# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest

Ο κατάλογος που καθορίσατε θα χρησιμοποιηθεί ως προορισμός για όλες τις ανανεώσεις αρχείων. Το CVSup θα εξετάσει τα κανονικά αρχεία σας στο /usr/src, αλλά δεν θα τροποποιήσει ούτε θα διαγράψει κανένα από αυτά. Κάθε ανανέωση αρχείου θα γίνει στον κατάλογο /var/tmp/dest/usr/src. Το CVSup όταν εκτελείται με αυτό τον τρόπο αφήνει επίσης ανέπαφα τα αρχεία κατάστασης του στον κατάλογο base. Οι νέες εκδόσεις των αρχείων αυτών θα γραφούν στον καθορισμένο κατάλογο. Αν έχετε απλώς πρόσβαση ανάγνωσης στο /usr/src, δεν χρειάζεστε να είστε καν root για να κάνετε αυτή τη δοκιμαστική εκτέλεση.

Αν δεν εκτελείτε τα X11 ή απλώς δεν σας αρέσουν τα γραφικά περιβάλλοντα, μπορείτε να δώσετε κάποιες επιλογές στην γραμμή εντολών όταν εκτελείτε την cvsup:

# cvsup -g -L 2 supfile

Η επιλογή -g λέει στο CVSup να μη χρησιμοποιήσει το γραφικό του περιβάλλον. Αυτό γίνεται αυτόματα αν δεν εκτελούνται τα X11, αλλά διαφορετικά θα πρέπει να το καθορίσετε.

Η επιλογή -L 2 λέει στο CVSup να εμφανίσει όλες τις λεπτομέρειες για όλες τις ανανεώσεις αρχείων που εκτελεί. Υπάρχουν τρία επίπεδα περιγραφής, από το -L 0 ως το -L 2. Η προεπιλογή είναι το 0, που σημαίνει απόλυτη σιωπή εκτός από μηνύματα λάθους.

Υπάρχουν διαθέσιμες αρκετές ακόμα επιλογές. Για μια περιληπτική λίστα, γράψτε cvsup -H. Για περισσότερο λεπτομερείς περιγραφές, δείτε τη σελίδα του manual.

Όταν μείνετε ικανοποιημένος από τον τρόπο που γίνονται οι ανανεώσεις, μπορείτε να κανονίσετε την σε τακτά διαστήματα εκτέλεση του CVSup με την χρήση του cron(8). Προφανώς δεν θα πρέπει να αφήσετε το CVSup να χρησιμοποιεί το γραφικό του περιβάλλον όταν το εκτελείτε μέσω του cron(8).

A.6.5. Συλλογές Αρχείων τουCVSup

Οι συλλογές αρχείων που διατίθενται μέσω του CVSup είναι οργανωμένες ιεραρχικά. Υπάρχουν λίγες μεγάλες συλλογές, και αυτές χωρίζονται σε μικρότερες υπο-συλλογές. Η λήψη μιας μεγάλης συλλογής, ισοδυναμεί με την λήψη κάθε μιας από τις υπο-συλλογές τις. Οι ιεραρχικές σχέσεις μεταξύ των συλλογών, αντικατοπτρίζονται παρακάτω με την χρήση των εσοχών.

Οι πιο συχνά χρησιμοποιούμενες συλλογές είναι η src-all, και η ports-all. Οι άλλες συλλογές χρησιμοποιούνται μόνο από μικρές ομάδες ανθρώπων για ειδικούς σκοπούς, και κάποια mirror sites μπορεί να μην τις έχουν καθόλου.

cvs-all release=cvs

Το κύριο CVS repository του FreeBSD, που περιλαμβάνει και τον κώδικα κρυπτογραφίας.

distrib release=cvs

Αρχεία που αναφέρονται στην διανομή και το mirroring του FreeBSD.

doc-all release=cvs

Πηγαίος κώδικας για το FreeBSD Handbook και την υπόλοιπη τεκμηρίωση. Δεν περιλαμβάνει αρχεία για το web site του FreeBSD.

ports-all release=cvs

Η συλλογή Ports του FreeBSD.

Σημαντικό:

Αν δεν θέλετε να ανανεώσετε όλο το 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 του FreeBSD.

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-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 του FreeBSD.

src-all release=cvs

Ο βασικός πηγαίος κώδικα του FreeBSD, συμπεριλαμβανομένου του κώδικα κρυπτογραφίας.

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

Εργαλεία και βιβλιοθήκες που δεν ανήκουν στο FreeBSD Project, και τα οποία χρησιμοποιούνται ουσιαστικά αναλλοίωτα (/usr/src/contrib).

src-crypto release=cvs

Εργαλεία και βιβλιοθήκες κρυπτογράφησης που δεν ανήκουν στο FreeBSD project και τα οποία χρησιμοποιούνται ουσιαστικά αναλλοίωτα (/usr/src/crypto).

src-eBones release=cvs

Kerberos και DES (/usr/src/eBones). Δεν χρησιμοποιούνται στις τρέχουσες εκδόσεις του FreeBSD.

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

Αρχεία που απαιτούνται για την παραγωγή μιας έκδοσης του FreeBSD (/usr/src/release).

src-rescue release=cvs

Προγράμματα με στατική μεταγλώττιση για χρήση σε έκτακτες περιπτώσεις επαναφοράς του συστήματος. Δείτε το 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

Διάφορα εργαλεία για τη συντήρηση του FreeBSD (/usr/src/tools).

src-usrbin release=cvs

Εργαλεία χρήστη (/usr/src/usr.bin).

src-usrsbin release=cvs

Εργαλεία συστήματος (/usr/src/usr.sbin).

www release=cvs

Ο πηγαίος κώδικας για την τοποθεσία WWW του FreeBSD.

distrib release=self

Τα αρχεία ρυθμίσεων του ίδιου του εξυπηρετητή CVSup. Χρησιμοποιείται από CVSup mirror sites.

gnats release=current

H βάση δεδομένων του συστήματος παρακολούθησης προβλημάτων GNATS.

mail-archive release=current

Τα αρχεία της λίστας ταχυδρομείου του FreeBSD.

www release=current

Προ-επεξεργασμένα αρχεία της δικτυακής τοποθεσίας (WWW) του FreeBSD (όχι ο πηγαίος κώδικας). Χρησιμοποιείται από WWW mirror sites.

A.6.6. Για Περισσότερες Πληροφορίες

Για το FAQ του CVSup και άλλες πληροφορίες σχετικά με αυτό, δείτε τη Σελίδα του CVSup.

Συζητήσεις σχετικά με τη χρήση του CVSup στο FreeBSD λαμβάνουν χώρα στην ηλεκτρονική λίστα τεχνικών συζητήσεων του FreeBSD. Στη λίστα αυτή, καθώς και στην ηλεκτρονική λίστα ανακοινώσεων του FreeBSD ανακοινώνονται και οι νέες εκδόσεις του προγράμματος.

Για ερωτήσεις ή αναφορές σφαλμάτων σχετικά με το CVSup ρίξτε μια ματιά στο CVSup FAQ.

A.6.7. Τοποθεσίες CVSup

Μπορείτε να βρείτε εξυπηρετητές CVSup για το FreeBSD στις ακόλουθες τοποθεσίες:

Central Servers, Primary Mirror Sites, Armenia, Australia, Brazil, Czech Republic, Denmark, Estonia, Finland, France, Germany, Ireland, Italy, Japan, Korea, Latvia, Lithuania, Netherlands, Norway, Poland, Russia, Slovenia, South Africa, Spain, Sweden, Switzerland, Taiwan, Ukraine, USA.

(as of UTC)

Central Servers
  • cvsup.FreeBSD.org

Primary Mirror Sites
  • cvsup1.FreeBSD.org

  • cvsup3.FreeBSD.org

  • cvsup4.FreeBSD.org

  • cvsup5.FreeBSD.org

  • cvsup6.FreeBSD.org

  • cvsup7.FreeBSD.org

  • cvsup9.FreeBSD.org

  • cvsup10.FreeBSD.org

  • cvsup11.FreeBSD.org

  • cvsup12.FreeBSD.org

  • cvsup14.FreeBSD.org

  • cvsup15.FreeBSD.org

  • cvsup18.FreeBSD.org

Armenia
  • cvsup1.am.FreeBSD.org

Australia
  • cvsup.au.FreeBSD.org

Brazil
  • cvsup2.br.FreeBSD.org

Czech Republic
  • cvsup.cz.FreeBSD.org

Denmark
  • cvsup.dk.FreeBSD.org

Estonia
  • cvsup.ee.FreeBSD.org

Finland
  • cvsup.fi.FreeBSD.org

France
  • cvsup3.fr.FreeBSD.org

  • cvsup5.fr.FreeBSD.org

  • cvsup8.fr.FreeBSD.org

Germany
  • cvsup.de.FreeBSD.org

  • cvsup2.de.FreeBSD.org

  • cvsup4.de.FreeBSD.org

  • cvsup5.de.FreeBSD.org

Ireland
  • cvsup.ie.FreeBSD.org

  • cvsup2.ie.FreeBSD.org

Italy
  • cvsup.it.FreeBSD.org

Japan
  • cvsup.jp.FreeBSD.org

  • cvsup2.jp.FreeBSD.org

  • cvsup3.jp.FreeBSD.org

  • cvsup4.jp.FreeBSD.org

  • cvsup5.jp.FreeBSD.org

  • cvsup6.jp.FreeBSD.org

Korea
  • cvsup.kr.FreeBSD.org

Latvia
  • cvsup.lv.FreeBSD.org

Lithuania
  • cvsup.lt.FreeBSD.org

Netherlands
  • cvsup.nl.FreeBSD.org

  • cvsup2.nl.FreeBSD.org

  • cvsup3.nl.FreeBSD.org

Norway
  • cvsup.no.FreeBSD.org

Poland
  • cvsup.pl.FreeBSD.org

Russia
  • cvsup3.ru.FreeBSD.org

  • cvsup5.ru.FreeBSD.org

  • cvsup6.ru.FreeBSD.org

Slovenia
  • cvsup.si.FreeBSD.org

South Africa
  • cvsup.za.FreeBSD.org

Spain
  • cvsup.es.FreeBSD.org

  • cvsup2.es.FreeBSD.org

  • cvsup3.es.FreeBSD.org

Sweden
  • cvsup.se.FreeBSD.org

Switzerland
  • cvsup.ch.FreeBSD.org

Taiwan
  • cvsup.tw.FreeBSD.org

  • cvsup3.tw.FreeBSD.org

  • cvsup6.tw.FreeBSD.org

  • cvsup10.tw.FreeBSD.org

  • cvsup11.tw.FreeBSD.org

  • cvsup12.tw.FreeBSD.org

  • cvsup13.tw.FreeBSD.org

Ukraine
  • cvsup5.ua.FreeBSD.org

  • cvsup6.ua.FreeBSD.org

USA
  • cvsup1.us.FreeBSD.org

  • cvsup3.us.FreeBSD.org

  • cvsup4.us.FreeBSD.org

  • cvsup5.us.FreeBSD.org

  • cvsup7.us.FreeBSD.org

  • cvsup9.us.FreeBSD.org

  • cvsup11.us.FreeBSD.org

  • cvsup12.us.FreeBSD.org

  • cvsup13.us.FreeBSD.org

  • cvsup14.us.FreeBSD.org

  • cvsup15.us.FreeBSD.org

  • cvsup18.us.FreeBSD.org

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

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

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