A.6. Χρησιμοποιώντας το CVSup
Προηγ | Παράρτημα A. Που θα Βρείτε το FreeBSD | Επόμενο

## 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` είναι ένα αρχείο κειμένου. Τα σχόλια ξεκινάνε με `#` και επεκτείνονται ως το τέλος της γραμμής. Οι κενές γραμμές, καθώς και αυτές που περιέχουν μόνο σχόλια, αγνοούνται.

Κάθε γραμμή από τις υπόλοιπες περιγράφει ένα σετ αρχείων τα οποία επιθυμεί να λάβει ο χρήστης. Η γραμμή ξεκινάει με το όνομα μιας &#x201C;συλλογής&#x201D;, ενός λογικού γκρουπ από αρχεία που ορίζεται από τον εξυπηρετητή. Το όνομα της συλλογής δηλώνει στον εξυπηρετητή ποια αρχεία επιθυμείτε. Μετά το όνομα της συλλογής, μπορεί να υπάρχουν από μηδέν ως κάποια πεδία, τα οποία χωρίζονται μεταξύ τους με κενά διαστήματα. Τα πεδία αυτά απαντούν τις ερωτήσεις που τέθηκαν παραπάνω. Υπάρχουν δύο τύποι πεδίων: πεδία σήμανσης (flags) και πεδία τιμών. Ένα πεδίο σήμανσης αποτελείται από μια μόνο λέξη κλειδί π.χ. `delete` ή `compress`. Ένα πεδίο τιμής ξεκινάει επίσης με μια λέξη κλειδί, αλλά αυτή ακολουθείτε χωρίς την παρεμβολή κενού διαστήματος από `=` και μια δεύτερη λέξη. Για παράδειγμα το `release=cvs` αποτελεί ένα πεδίο τιμής.

Ένα `supfile` τυπικά καθορίζει προς λήψη περισσότερες από μία συλλογές. Ένα τρόπος για να δομήσετε ένα `supfile` είναι να καθορίσετε όλα τα σχετικά πεδία χωριστά για κάθε συλλογή. Με τον τρόπο αυτό ωστόσο το `supfile` θα καταλάβει αρκετές γραμμές και θα είναι άβολο, επειδή τα περισσότερα πεδία είναι ίδια για όλες τις συλλογές που περιέχονται σε αυτό. Το CVSup παρέχει ένα μηχανισμό χρήσης προεπιλεγμένων τιμών, ώστε να αποφεύγονται αυτά τα προβλήματα. Οι γραμμές που ξεκινάνε με το ειδικό όνομα ψευτό-συλλογής `*default` μπορούν να χρησιμοποιηθούν για να θέσουν πεδία σήμανσης και τιμών τα οποία θα χρησιμοποιηθούν ως προεπιλογές για τις συλλογές του `supfile` που βρίσκονται μετά από αυτά. Μια προεπιλεγμένη τιμή μπορεί να αλλάξει αν καθοριστεί ξανά με νέα τιμή μέσα στην ίδια τη συλλογή. Οι προεπιλογές μπορούν επίσης να αλλάξουν, ή να προστεθούν νέες, βάζοντας πρόσθετα `*default` σε οποιοδήποτε σημείο μέσα στο `supfile`.

Γνωρίζοντας τα παραπάνω, θα προχωρήσουμε τώρα στη δόμηση ενός `supfile` για λήψη και ανανέωση του κυρίως δέντρου πηγαίου κώδικα για το FreeBSD-CURRENT.

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

  Τα αρχεία που είναι διαθέσιμα μέσω της CVSup είναι οργανωμένα σε γκρουπ που ονομάζονται &#x201C;συλλογές&#x201D;. Περιγραφή των διαθέσιμων συλλογών θα βρείτε στο ακόλουθο τμήμα. Στο παράδειγμα μας, θέλουμε να λάβουμε το πλήρες δέντρο πηγαίου κώδικα του 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, &#x201C;Ετικέτες (Tags) για το CVS&#x201D; θα βρείτε 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) σε αυτό που αποκαλείται κατάλογος &#x201C;base&#x201D;. Τα αρχεία αυτά βοηθούν το 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, αυτός λέει &#x201C;Αυτά είναι τα αρχεία που μπορείτε να κατεβάσετε από μένα..&#x201D;, και το δικό σας πρόγραμμα απαντάει &#x201C;Εντάξει, θα πάρω αυτό, αυτό, αυτό, και αυτό.&#x201D; Στην προεπιλεγμένη ρύθμιση, ο πελάτης 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`, είναι πρακτικά βέβαιο ότι οι αλλαγές αυτές πολύ σύντομα θα χρησιμοποιηθούν από &#x201C;πραγματικά&#x201D; ports. Έτσι, αν ανανεώνετε μόνο τα &#x201C;πραγματικά&#x201D; 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, Greece, Iceland, Ireland, Italy, Japan, Korea, Latvia, Lithuania, Netherlands, Norway, Poland, Russia, Slovak Republic, 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

  - cvsup8.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

  - cvsup2.dk.FreeBSD.org

Estonia

  - cvsup.ee.FreeBSD.org

Finland

  - cvsup.fi.FreeBSD.org

France

  - cvsup.fr.FreeBSD.org

  - cvsup1.fr.FreeBSD.org

  - cvsup3.fr.FreeBSD.org

  - cvsup5.fr.FreeBSD.org

  - cvsup8.fr.FreeBSD.org

Germany

  - cvsup.de.FreeBSD.org

  - cvsup2.de.FreeBSD.org

  - cvsup3.de.FreeBSD.org

  - cvsup4.de.FreeBSD.org

  - cvsup5.de.FreeBSD.org

  - cvsup6.de.FreeBSD.org

  - cvsup7.de.FreeBSD.org

  - cvsup8.de.FreeBSD.org

Greece

  - cvsup.gr.FreeBSD.org

Iceland

  - cvsup.is.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

  - cvsup3.pl.FreeBSD.org

Russia

  - cvsup3.ru.FreeBSD.org

  - cvsup5.ru.FreeBSD.org

  - cvsup6.ru.FreeBSD.org

Slovak Republic

  - cvsup.sk.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

  - cvsup2.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

  - cvsup6.us.FreeBSD.org

  - cvsup7.us.FreeBSD.org

  - cvsup8.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

Προηγ | Πάνω | Επόμενο
A.5. Χρησιμοποιώντας το CTM | Αρχή | A.7. Ετικέτες (Tags) για το CVS

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

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