2 Πρώτη Εγκατάσταση

Προειδοποίηση: Είναι καλή ιδέα να εκτελέσετε για πρώτη φορά αυτή τη διαδικασία χρησιμοποιώντας ένα κενό δοκιμαστικό repository, για να είναι βέβαιο ότι θα κατανοήσετε όλες τις συνέπειες. Πριν ξεκινήσετε σιγουρευτείτε ότι έχετε πρόσφατα backups, τα οποία εγγυημένα δουλεύουν!

2.1 Αρχικοποίηση του repository

Το πρώτο πράγμα που θα πρέπει να κάνετε όταν στήνετε ένα νέο repository είναι να πείτε στο CVS να το αρχικοποιήσει:

% cvs -d path-to-repository init

Αυτό λέει στο CVS να δημιουργήσει τον φάκελο διαχείρισης CVSROOT, όπου συμβαίνουν όλες οι παραμετροποιήσεις.

2.2 Η ομάδα του repository

Τώρα θα δημιουργήσουμε την ομάδα στην οποία θα ανήκει το repository. Όλοι οι committers θα πρέπει να ανήκουν σε αυτή την ομάδα, ώστε να μπορούν να γράφουν στο repository. Για το σκοπό αυτό θα χρησιμοποιήσουμε την ίδια ομάδα που χρησιμοποιεί γι' αυτό το σκοπό και το FreeBSD, την ομάδα ncvs.

# pw groupadd ncvs

Μετά, θα πρέπει να εκτελέσετε την εντολή chown(8) στον φάκελο με παράμετρο την ομάδα που μόλις προσθέσατε, θέτοντας έτσι την ομάδα στην οποία ανήκει ο κατάλογος:

# chown -R :ncvs path-to-your-repository

Αυτό εξασφαλίζει ότι κανείς δεν θα μπορεί να γράψει στο repository αν δεν ανήκει στην σωστή ομάδα.

2.3 Παίρνοντας τον πηγαίο κώδικα

Τώρα θα πρέπει να αποκτήσετε τον κατάλογο CVSROOT από το repository του FreeBSD. Αυτό γίνεται εύκολα, κάνοντας check out από ένα ανοιχτής πρόσβασης FreeBSD CVS mirror. Δείτε το σχετικό κεφάλαιο στο εγχειρίδιο για περισσότερες πληροφορίες. Ας υποθέσουμε ότι ο πηγαίος κώδικας θα αποθηκευτεί στον κατάλογο CVSROOT-freebsd που βρίσκεται μέσα στον τρέχοντα κατάλογο.

2.4 Αντιγράφοντας τα scripts του FreeBSD

Ύστερα, αντιγράφουμε τον πηγαίο κώδικα από τον CVSROOT κατάλογο του FreeBSD στο δικό μας repository. Αν είστε συνηθισμένος με το CVS, ίσως να σας περάσει από το μυαλό να προσπαθήσετε να κάνετε import τα scripts, σε μια προσπάθεια να γίνει ύστερα ο συγχρονισμός με τις κατοπινές εκδόσεις ευκολότερος. Ωστόσο, αποδεικνύεται ότι το CVS παρουσιάζει μια δυσλειτουργία στην περιοχή αυτή: Όταν εισάγετε πηγαίο κώδικα μέσα στο CVSROOT φάκελο, δεν θα ενημερωθούν τα απαραίτητα αρχεία διαχείρισης. Για να μπορέσετε να το κάνετε να τα αναγνωρίσει, θα πρέπει να κάνετε checkin ξεχωριστά κάθε αρχείο αφού έχετε τελειώσει με την εισαγωγή, χάνοντας έτσι την αξία του cvs import. Επομένως, η προτεινόμενη μέθοδος είναι απλά να αντιγράψετε τα scripts.

Δεν είναι και τόσο σημαντικό το αν η παραπάνω παράγραφος δεν σας φαίνεται πολύ ξεκάθαρη—το τελικό αποτέλέσμα είναι το ίδιο. Απλά ελέγξτε τον CVSROOT φάκελο και αντιγράψτε τα FreeBSD αρχεία πάνω από τα δικά σας τοπικά (απείραχτα) αντίγραφα:

% cvs -d path-to-your-repository checkout CVSROOT
% cd CVSROOT
% cp ../CVSROOT-freebsd/* .
% cvs add *

Σημειώστε ότι πιθανότατα θα πάρετε μερικές προειδοποιήσεις σχετικά με το ότι μερικοί φάκελοι δεν θα αντιγραφούν. Δεν πειράζει. Δεν τους χρειάζεστε αυτούς τους καταλόγους.

2.5 Tα scripts

Τώρα έχετε στον φάκελο εργασίας σας ένα ακριβές αντίγραφο των scripts που το ίδιο το FreeBSD project χρησιμοποιεί στο δικό του repository. Μια περίληψη του σε τι χρησιμεύει το κάθε αρχείο περιλαμβάνεται παρακάτω.

2.6 Τροποποιώντας τα scripts

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

  1. Αν δεν θέλετε να χρησιμοποιήσετε τις λειτουργίες των scripts οι οποίες χρησιμοποιούνται αποκλειστικά από το FreeBSD, μπορείτε να αφαιρέσετε με ασφάλεια το αρχείο access:

    % cvs rm -f access
    


  2. Διορθώστε το αρχείο avail ώστε να περιέχει τους διάφορους φακέλους του repository στους οποίους θέλετε να ελέγξετε την πρόσβαση. Σιγουρευτείτε ότι θα διατηρήσετε ανέπαφη την avail||CVSROOT γραμμή, ειδάλλως θα αποκλείσετε ακόμα και τον εαυτό σας με το επόμενο βημα.

    Εκτός αυτού στο συγκεκριμένο αρχείο μπορείτε να εισάγετε και ομάδες από committers. Εξ' ορισμού, το FreeBSD χρησιμοποιεί το αρχείο access για την τοποθέτηση όλων των committers, αλλά μπορείτε να χρησιμοποιήσετε όποιο άλλο επιθυμείτε. Μπορείτε επίσης να προσθέσετε και ομάδες αν το επιθυμείτε (η σύνταξη καθορίζεται στην κορυφή του αρχείου cvs_acls.pl).

  3. Διορθώστε το αρχείο cfg_local.pm ώστε να περιέχει τις επιλογές που επιθυμείτε. Πιο συγκεκριμένα, θα πρέπει να ελέγξετε τις παρακάτω τροποποιήσιμες επιλογές:

    • %TEMPLATE_HEADERS - Αυτές οι επικεφαλίδες επεξεργάζονται από τα log scripts, και τοποθετούνται κάτω από το mail του κάθε commit αν υπάρχουν και δεν είναι κενές στο μήνυμα του commit. Γενικά, μπορείτε να αφαιρέσετε τις καταχωρήσεις PR και MFC after—αφού αυτές σχετίζονται με το bug tracking σύστημα του FreeBSD και τον τρόπο που διαχειρίζεται το FreeBSD τα branches του repository του. Και φυσικά μπορείτε να προσθέσετε τις δικές σας.

    • $MAIL_BRANCH_HDR - Αν θέλετε να προστίθεται αυτόματα μια επικεφαλίδα σε κάθε commit μήνυμα mail, η οποία θα περιγράφει το branch στο οποίο έγινε το συγκεκριμένο commit, ορίστε την τιμή αυτή να ταιριάζει με την δική σας εγκατάσταση. Αφήστε την κενή αν δεν επιθυμείτε να προστίθεται αυτόματα μια τέτοια επικεφαλίδα.

    • @COMMIT_HOSTS - Ορίστε την τιμή αυτή σε μια λίστα από συστήματα (hosts), από τα οποία επιτρέπεται να γίνονται commits.

    • $MAILADDRS - Ρυθμίστε αυτή την τιμή στο email του διαχειριστή ή σε μια διεύθυνση λίστας στην οποία θέλετε να πηγαίνουν τα mail των commit μηνυμάτων.

    • @LOG_FILE_MAP - Αλλάξτε αυτό το array όπως επιθυμείτε. Κάθε regexp αντιστοιχεί στο συγκεκριμένο φάκελο στον οποίο γίνεται το commit, και το log μήνυμα του commit αποθηκεύεται κάτω από τον κατάλογο CVSROOT, στον υποκατάλογο commitlogs, στο αρχείο που αναφέρεται στην αντίστοιχη εγγραφή του πίνακα @LOG_FILE_MAP.

    • $COMMITCHECK_EXTRA - Αν δεν θέλετε να χρησιμοποιήσετε τους ίδιους ελέγχους πρόσβασης με το FreeBSD, θα πρέπει να αφαιρέσετε τον ορισμό της τιμής $COMMITCHECK_EXTRA από το αρχείο αυτό.

    Σημείωση: Η αλλαγή της παραμέτρου $IDHEADER είναι εγγυημένο ότι θα δουλέψει μόνο σε πλατφόρμες FreeBSD. Εξαρτάται από ειδικές μετατροπές του FreeBSD στο CVS.

    Μπορείτε να ελέγξετε το αρχείο cfg.pm για να δείτε ποιές άλλες παραμέτρους μπορείτε να αλλάξετε, αλλά οι παραπάνω είναι οι πιο συνήθεις επιλογές.

  4. Επεξεργαστείτε το αρχείο exclude για να αφαιρέσετε τις ειδικές καταχωρήσεις του FreeBSD (όπως όλες τις γραμμές που ξεκινούν με ^ports/ κτλ.). Εκτός αυτού, βάλτε σε σχόλια τις γραμμές που ξεκινούν με ^CVSROOT/, και προσθέστε μια γραμμή που θα περιέχει μόνο το ^CVSROOT/. Αφού εγκατασταθεί ο wrapper, μπορείτε να προσθέσετε το δικό σας header στα αρχεία που βρίσκονται μέσα στον κατάλογο CVSROOT και να επαναφέρετε τις γραμμές αυτές, αλλά προς το παρόν απλά θα σας δημιουργήσουν προβλήματα όταν θα προσπαθήσετε να κάνετε commit αργότερα.

  5. Ανοίξτε το αρχείο modules, και αφαιρέστε όλες τις σχετικές με το FreeBSD καταχωρήσεις. Προσθέστε τα δικά σας modules αν το επιθυμείτε.

  6. Σημείωση: Το βήμα αυτό είναι απαραίτητο μόνο αν έχετε ορίσει κάποια τιμή στην παράμετρο $IDHEADER του αρχείου cfg_local.pm (η οποία δουλεύει μόνο εφόσον χρησιμοποιείτε την τροποποιημένη έκδοση του CVS που έχει το FreeBSD).

    Διορθώστε το αρχείο options ώστε να ταιριάζει με το tag που ορίσατε στο αρχείο cfg_local.pm. Μια αναζήτηση και αντικατάσταση του FreeBSD σε όλο το αρχείο είναι αρκετή.

  7. Επεξεργαστείτε το αρχείο rcstemplate ώστε να περιέχει τα ίδια keywords με αυτά που έχετε ορίσει στο cfg_local.pm.

  8. Προαιρετικά, αφαιρέστε τους ελέγχους του FreeBSD από το αρχείο tagcheck. Μπορείτε απλά να προσθέσετε exit 0 στην αρχή του αρχείου για να απενεργοποιήσετε όλους τους ελέγχους στο tagging.

  9. Το τελευταίο πράγμα που πρέπει να γίνει, είναι να σιγουρευτείτε ότι τα commitlogs μπορούν να αποθηκευτούν. Τα CVS scripts του FreeBSD αποθηκεύουν αυτά τα logs στον υποκατάλογο commitlogs του καταλόγου CVSROOT. Αυτός ο φάκελος πρέπει να δημιουργηθεί, οπότε κάντε τα ακόλουθα:

    % mkdir commitlogs
    % cvs add commitlogs
    

Τώρα, αφού ελέγξετε τα πάντα προσεκτικά, θα πρέπει να κάνετε commit τις αλλαγές σας. Φροντίστε να είστε σίγουροι ότι έχετε δώσει στον εαυτό σας πρόσβαση στον φάκελο CVSROOT μέσα από το αρχείο avail πριν κάνετε οτιδήποτε, εφόσον στην αντίθετη περίπτωση θα κλειδώσετε τον εαυτό σας έξω. Οπότε, φροντίστε τα πάντα να είναι όπως επιθυμείτε, και μόνο τότε δώστε τα ακόλουθα:

% cvs commit -m '- Initial FreeBSD scripts commit'


2.7 Δοκιμάζοντας την Εγκατάσταση

Είστε έτοιμοι για την πρώτη σας δοκιμή: Ένα forced commit στο αρχείο avail, για να σιγουρευτείτε ότι όλα δουλεύουν όπως θα έπρεπε.

% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail

Άν όλα πάνε καλά, συγχαρητήρια! Έχετε καταφέρει να στήσετε μια πλήρως λειτουργική εγκατάσταση των FreeBSD scripts για το repository σας. Στην περίπτωση που το CVS εξακολουθεί να παραπονιέται για κάτι, επιστρέψτε στις προηγούμενες ενότητες και ελέγξτε ξανά ότι έχετε εκτελέσει σωστά όλα τα προηγούμενα βήματα.

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

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