Εγκατάσταση ενός CVS Repository — ο τρόπος του FreeBSD
Προηγ |  |

# 3 Ειδική Εγκατάσταση του FreeBSD Project

Το ίδιο το FreeBSD project χρησιμοποιεί μια ελαφρώς διαφορετική εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο `freebsd` του `CVSROOT` που χρησιμοποιείται στο FreeBSD. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group. Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε αυτό του repository.

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

## 3.1 Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του FreeBSD

- `access` - το αρχείο αυτό ελέγχει τις πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του project σας.

- `freebsd/commitmail.pl` - το αρχείο αυτό δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους. Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο.

- `freebsd/cvswrap.c` - πρόκειται για τον πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν. Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε παρακάτω. Θα πρέπει να διορθώσετε τα paths στις `ACCESS` και `REALCVS` μακροεντολές ώστε να ταιριάζουν με τη δική σας εγκατάσταση.

- `freebsd/mailsend.c` - το αρχείο αυτό χρειάζεται για την σχετική με τις λίστες ταχυδρομείου εγκατάσταση του FreeBSD. Δεν θα χρειαστεί να πειράξετε το αρχείο αυτό.

## 3.2 Η διαδικασία

1. Διορθώστε το αρχείο `access` ώστε να περιέχει μόνο το δικό σας username.

2. Διορθώστε το αρχείο `cvswrap.c` ώστε να περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται ως μια μακροεντολή που ονομάζεται `ACCESS`. Θα πρέπει επίσης να αλλάξετε και το όνομα αρχείου του πραγματικού `cvs` binary αν αυτή που υπάρχει δεν είναι η σωστή για τη δική σας περίπτωση. Το κανονικό `cvswrap.c` θεωρεί πως θα αντικαταστήσετε την εντολή cvs σε επίπεδο συστήματος με το cvwrap, κι η αρχική εντολή cvs θα μεταφερθεί στο αρχείο `/usr/bin/ncvs`.

   Το δικό μου αντίτυπο του αρχείου `cvswrap.c` έχει τα ακόλουθα:

       #define ACCESS "/local/cvsroot/CVSROOT/access"
       #define REALCVS "/usr/bin/ncvs"

3. Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο `cvswrap.c` στον κατάλογο `CVSROOT`.

   Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να περιέχει τα σωστά paths:

       % cc -o cvs cvswrap.c

   Στη συνέχεια εγκαταστήστε το νέο cvs εκτελέσιμο ακολουθώντας τα ακόλουθα βήματα (θα πρέπει να είστε root για το βήμα αυτό):

       # mv /usr/bin/cvs /usr/bin/ncvs
       # mv cvs /usr/bin/cvs
       # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
       # chmod o-rx /usr/bin/ncvs
       # chmod u-w,g+s /usr/bin/cvs

   Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού `cvs` εντολή, κάνοντας έτσι σίγουρο ότι οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να έχει τα κατάλληλα επίπεδα πρόσβασης.

4. Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το οποίο θα γίνεται και η τελική πρόσβαση.

## 3.3 Ελέγχοντας την εγκατάσταση

Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το δοκιμάσετε κάνοντας ένα forced commit στο αρχείο `access`:

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

Ξανά, αν αυτό αποτύχει, ελέγξτε ότι όλα τα παραπάνω βήματα έχουν εκτελεστεί σωστά.

Προηγ | Αρχή |
Πρώτη Εγκατάσταση |  |

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

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