Εγκατάσταση ενός CVS Repository — ο τρόπος του FreeBSD | ||
---|---|---|
Προηγ |
Το ίδιο το FreeBSD project χρησιμοποιεί μια ελαφρώς διαφορετική εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο freebsd του CVSROOT που χρησιμοποιείται στο FreeBSD. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group. Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε αυτό του repository.
Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε μια σύντομη επισκόπηση των σχετικών αρχείων.
access - το αρχείο αυτό ελέγχει τις πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του project σας.
freebsd/commitmail.pl - το αρχείο αυτό δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους. Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο.
freebsd/cvswrap.c - πρόκειται για τον πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν. Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε παρακάτω. Θα πρέπει να διορθώσετε τα paths στις ACCESS και REALCVS μακροεντολές ώστε να ταιριάζουν με τη δική σας εγκατάσταση.
freebsd/mailsend.c - το αρχείο αυτό χρειάζεται για την σχετική με τις λίστες ταχυδρομείου εγκατάσταση του FreeBSD. Δεν θα χρειαστεί να πειράξετε το αρχείο αυτό.
Διορθώστε το αρχείο access ώστε να περιέχει μόνο το δικό σας username.
Διορθώστε το αρχείο 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"
Το επόμενο βήμα είναι να εγκαταστήσουμε τον 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, θα πρέπει να έχει τα κατάλληλα επίπεδα πρόσβασης.
Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το οποίο θα γίνεται και η τελική πρόσβαση.
Ο 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>.