805 lines
34 KiB
XML
805 lines
34 KiB
XML
<?xml version="1.0" encoding="iso-8859-7"?>
|
||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
|
||
"../../../share/xml/freebsd45.dtd">
|
||
|
||
<!--
|
||
|
||
FreeBSD Greek Documentation Project
|
||
|
||
%SOURCE% en_US.ISO8859-1/articles/cvs-freebsd/article.xml
|
||
%SRCID% 1.17
|
||
|
||
-->
|
||
|
||
<article lang="el">
|
||
<articleinfo>
|
||
<title>Εγκατάσταση ενός CVS Repository — ο τρόπος του &os;</title>
|
||
|
||
<author>
|
||
<firstname>Stijn</firstname>
|
||
<surname>Hoop</surname>
|
||
<affiliation>
|
||
<address><email>stijn@win.tue.nl</email></address>
|
||
</affiliation>
|
||
</author>
|
||
|
||
<copyright>
|
||
<year>2001</year>
|
||
<year>2002</year>
|
||
<year>2003</year>
|
||
<holder role="mailto:stijn@win.tue.nl">Stijn Hoop</holder>
|
||
</copyright>
|
||
|
||
<pubdate>$FreeBSD$</pubdate>
|
||
|
||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||
|
||
<legalnotice id="trademarks" role="trademarks">
|
||
&tm-attrib.freebsd;
|
||
&tm-attrib.general;
|
||
</legalnotice>
|
||
|
||
<abstract>
|
||
<para>Το άρθρο αυτό περιγράφει τα βήματα που έκανα για να εγκαταστήσω
|
||
ένα CVS repository που χρησιμοποιεί τα ίδια αρχεία δέσμης εντολών
|
||
(scripts) με αυτά που χρησιμοποιεί και το &os; project στη δική του
|
||
εγκατάσταση. Η συγκεκριμένη προσέγγιση έχει αρκετά πλεονεκτήματα
|
||
έναντι μιας τυποποιημένης CVS εγκατάστασης, όπως πιο λεπτομερή έλεγχο
|
||
πρόσβασης στο δέντρο του κώδικα καθώς και αυτόματη παραγωγή
|
||
ευανάγνωστων email με λεπτομέρειες για κάθε αλλαγή στον πηγαίο κώδικα
|
||
(commit).</para>
|
||
</abstract>
|
||
</articleinfo>
|
||
|
||
<sect1 id="introduction">
|
||
<title>Εισαγωγή</title>
|
||
|
||
<para>Τα περισσότερα projects ελεύθερου λογισμικού (free software) και
|
||
ανοιχτού κώδικα (open source) χρησιμοποιούν το
|
||
<application>CVS</application> σαν σύστημα ελέγχου του κώδικά τους.
|
||
Παρόλο που το <application>CVS</application> είναι πολύ καλό σε αυτόν
|
||
τον τομέα έχει κι αυτό το μερίδιό του σε ελαττώματα και αδυναμίες. Μια
|
||
από αυτές τις αδυναμίες είναι το ότι η κοινή χρήση κώδικα μπορεί γρήγορα
|
||
να οδηγήσει σε έναν διαχειριστικό εφιάλτη, ειδικά αν υπάρχει η επιθυμία
|
||
να προστατευτούν ορισμένα κομμάτια του δέντρου του κώδικα από κοινή
|
||
πρόσβαση.</para>
|
||
|
||
<para>Η ομάδα ανάπτυξης του &os; χρησιμοποιεί εκτενώς το
|
||
<application>CVS</application>. Διαθέτει επίσης μια μεγάλη βάση από
|
||
προγραμματιστές από πολλές διαφορετικές χώρες. Αναπτύχθηκαν λοιπόν
|
||
μερικά αρχεία δέσμης εντολών για να κάνουν την διαχείριση του repository
|
||
πιο εύκολη. Πρόσφατα τα αρχεία αυτά αναθεωρήθηκαν και κανονικοποιήθηκαν
|
||
από τον &a.joe; για να είναι πιο εύκολο να χρησιμοποιηθούν και σε άλλα
|
||
έργα. Το άρθρο αυτό περιγράφει μια μέθοδο χρήσης αυτών των νέων αρχείων
|
||
δέσμης εντολών.</para>
|
||
|
||
<para>Για να μπορέσετε να χρησιμοποιήσετε με τον καλύτερο τρόπο τις
|
||
πληροφορίες αυτού του άρθρου θα πρέπει να γνωρίζετε τις βασικές μεθόδους
|
||
λειτουργίας του <application>CVS</application>.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="first-setup">
|
||
<title>Πρώτη Εγκατάσταση</title>
|
||
|
||
<warning>
|
||
<para>Είναι καλή ιδέα να εκτελέσετε για πρώτη φορά αυτή τη διαδικασία
|
||
χρησιμοποιώντας ένα κενό δοκιμαστικό repository, για να είναι βέβαιο
|
||
ότι θα κατανοήσετε όλες τις συνέπειες. Πριν ξεκινήσετε σιγουρευτείτε
|
||
ότι έχετε πρόσφατα backups, τα οποία εγγυημένα δουλεύουν!</para>
|
||
</warning>
|
||
|
||
<sect2>
|
||
<title>Αρχικοποίηση του repository</title>
|
||
|
||
<para>Το πρώτο πράγμα που θα πρέπει να κάνετε όταν στήνετε ένα νέο
|
||
repository είναι να πείτε στο <application>CVS</application> να το
|
||
αρχικοποιήσει:</para>
|
||
|
||
<screen>&prompt.user; <userinput>cvs -d <replaceable>path-to-repository</replaceable> init</userinput></screen>
|
||
|
||
<para>Αυτό λέει στο <application>CVS</application> να δημιουργήσει τον
|
||
φάκελο διαχείρισης <filename class="directory">CVSROOT</filename>, όπου
|
||
συμβαίνουν όλες οι παραμετροποιήσεις.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Η ομάδα του repository</title>
|
||
|
||
<para>Τώρα θα δημιουργήσουμε την ομάδα στην οποία θα ανήκει το
|
||
repository. Όλοι οι committers θα πρέπει να ανήκουν σε αυτή την
|
||
ομάδα, ώστε να μπορούν να γράφουν στο repository. Για το σκοπό αυτό
|
||
θα χρησιμοποιήσουμε την ίδια ομάδα που χρησιμοποιεί γι' αυτό το σκοπό
|
||
και το &os;, την ομάδα <literal>ncvs</literal>.</para>
|
||
|
||
<screen>&prompt.root; <userinput>pw groupadd <replaceable>ncvs</replaceable></userinput></screen>
|
||
|
||
<para>Μετά, θα πρέπει να εκτελέσετε την εντολή &man.chown.8; στον φάκελο
|
||
με παράμετρο την ομάδα που μόλις προσθέσατε, θέτοντας έτσι την ομάδα
|
||
στην οποία ανήκει ο κατάλογος:</para>
|
||
|
||
<screen>&prompt.root; <userinput>chown -R :<replaceable>ncvs</replaceable> <replaceable>path-to-your-repository</replaceable></userinput></screen>
|
||
|
||
<para>Αυτό εξασφαλίζει ότι κανείς δεν θα μπορεί να γράψει στο repository
|
||
αν δεν ανήκει στην σωστή ομάδα.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Παίρνοντας τον πηγαίο κώδικα</title>
|
||
|
||
<para>Τώρα θα πρέπει να αποκτήσετε τον κατάλογο
|
||
<filename class="directory">CVSROOT</filename> από το repository του
|
||
&os;. Αυτό γίνεται εύκολα, κάνοντας check out από ένα ανοιχτής
|
||
πρόσβασης &os; CVS mirror.
|
||
Δείτε <ulink url="&url.books.handbook;/anoncvs.html">το σχετικό
|
||
κεφάλαιο στο εγχειρίδιο</ulink> για περισσότερες πληροφορίες.
|
||
Ας υποθέσουμε ότι ο πηγαίος κώδικας θα αποθηκευτεί στον
|
||
κατάλογο <filename class="directory">CVSROOT-freebsd</filename> που
|
||
βρίσκεται μέσα στον τρέχοντα κατάλογο.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Αντιγράφοντας τα scripts του &os;</title>
|
||
|
||
<para>Ύστερα, αντιγράφουμε τον πηγαίο κώδικα από τον
|
||
<filename class="directory">CVSROOT</filename> κατάλογο του &os; στο
|
||
δικό μας repository. Αν είστε συνηθισμένος με
|
||
το <application>CVS</application>, ίσως να σας περάσει από το μυαλό να
|
||
προσπαθήσετε να κάνετε import τα scripts, σε μια προσπάθεια να γίνει
|
||
ύστερα ο συγχρονισμός με τις κατοπινές εκδόσεις ευκολότερος. Ωστόσο,
|
||
αποδεικνύεται ότι το <application>CVS</application> παρουσιάζει μια
|
||
δυσλειτουργία στην περιοχή αυτή: Όταν εισάγετε πηγαίο κώδικα μέσα
|
||
στο <filename class="directory">CVSROOT</filename> φάκελο, δεν θα
|
||
ενημερωθούν τα απαραίτητα αρχεία διαχείρισης. Για να μπορέσετε να το
|
||
κάνετε να τα αναγνωρίσει, θα πρέπει να κάνετε checkin ξεχωριστά κάθε
|
||
αρχείο αφού έχετε τελειώσει με την εισαγωγή, χάνοντας έτσι την αξία
|
||
του <literal>cvs import</literal>. Επομένως, η προτεινόμενη μέθοδος
|
||
είναι απλά να αντιγράψετε τα scripts.</para>
|
||
|
||
<para>Δεν είναι και τόσο σημαντικό το αν η παραπάνω παράγραφος δεν σας
|
||
φαίνεται πολύ ξεκάθαρη—το τελικό αποτέλέσμα είναι το ίδιο. Απλά
|
||
ελέγξτε τον <filename class="directory">CVSROOT</filename> φάκελο και
|
||
αντιγράψτε τα &os; αρχεία πάνω από τα δικά σας τοπικά (απείραχτα)
|
||
αντίγραφα:</para>
|
||
|
||
<screen>&prompt.user; <userinput>cvs -d <replaceable>path-to-your-repository</replaceable> checkout CVSROOT</userinput>
|
||
&prompt.user; <userinput>cd CVSROOT</userinput>
|
||
&prompt.user; <userinput>cp ../CVSROOT-freebsd/* .</userinput>
|
||
&prompt.user; <userinput>cvs add *</userinput></screen>
|
||
|
||
<para>Σημειώστε ότι πιθανότατα θα πάρετε μερικές προειδοποιήσεις σχετικά
|
||
με το ότι μερικοί φάκελοι δεν θα αντιγραφούν. Δεν πειράζει. Δεν τους
|
||
χρειάζεστε αυτούς τους καταλόγους.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Tα scripts</title>
|
||
|
||
<para>Τώρα έχετε στον φάκελο εργασίας σας ένα ακριβές αντίγραφο των
|
||
scripts που το ίδιο το &os; project χρησιμοποιεί στο δικό του
|
||
repository. Μια περίληψη του σε τι χρησιμεύει το κάθε αρχείο
|
||
περιλαμβάνεται παρακάτω.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><filename>access</filename> - το αρχείο αυτό δεν
|
||
χρησιμοποιείται στις συνηθισμένες εγκαταστάσεις
|
||
του <application>CVS</application>. Χρησιμοποιείται μόνο
|
||
στην <link linkend="freebsdspecific">ειδική εγκατάσταση του &os;
|
||
project</link>, για να ελέγχεται η πρόσβαση στο repository.
|
||
Μπορείτε να αφαιρέσετε αυτό το αρχείο αν δεν σας ενδιαφέρει να
|
||
χρησιμοποιήσετε κάτι τέτοιο στη δική σας εγκατάσταση.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>avail</filename> - το αρχείο αυτό ελέγχει την
|
||
πρόσβαση στο repository ανά κατάλογο ή αρχείο. Μέσα σε αυτό,
|
||
μπορείτε να καθορίσετε ομάδες χρηστών στους οποίους θέλετε να
|
||
δώσετε πρόσβαση στο repository, όπως επίσης και να απαγορέψετε
|
||
commits σε επίπεδο καταλόγου ή αρχείου. Θα πρέπει να το
|
||
προσαρμόσετε ώστε να περιέχει τις ομάδες χρηστών και τους φακέλους
|
||
που θα υπάρχουν στο δικό σας repository.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>cfg.pm</filename> - το αρχείο αυτό ερμηνεύει τις
|
||
ρυθμίσεις σας και παρέχει τις εξ' ορισμού ρυθμίσεις.
|
||
<emphasis>Δεν</emphasis> πρέπει να αλλάξετε αυτό το αρχείο.
|
||
Αντίθετα, θα πρέπει να τοποθετήσετε τις δικές σας αλλαγές στις
|
||
ρυθμίσεις στο αρχείο <filename>cfg_local.pm</filename>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>cfg_local.pm</filename> - το αρχείο αυτό περιέχει
|
||
όλες τις ρυθμιζόμενες παραμέτρους του συστήματος. Θα πρέπει να
|
||
κάνετε οποιεσδήποτε ρυθμίσεις σας εδώ, όπως σε ποια διεύθυνση θα
|
||
στέλνονται τα email από κάθε commit, σε ποιους hosts θα
|
||
επιτρέπεται να γίνονται commit, κλπ. Περισσότερες πληροφορίες
|
||
σχετικά με αυτό θα βρείτε παρακάτω.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>checkoutlist</filename> - το αρχείο αυτό
|
||
περιλαμβάνει όλα τα αρχεία που βρίσκονται κάτω από τον έλεγχο του
|
||
<application>CVS</application> στον κατάλογο αυτό—όλα εκτός
|
||
από τα προκαθορισμένα αρχεία που δημιουργεί η εντολή
|
||
<command>cvs init</command>. Θα πρέπει να
|
||
το αλλάξετε για να αφαιρέσετε μερικά, σχετικά μόνο με το &os;,
|
||
αρχεία.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>commit_prep.pl</filename> - το script αυτό εκτελεί
|
||
διάφορους ελέγχους πριν από κάθε commit, ανάλογα με τις ρυθμίσεις
|
||
που έχετε κάνει στο αρχείο <filename>cfg_local.pm</filename>. Δεν
|
||
θα χρειαστεί να πειράξετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>commitcheck</filename> - το script αυτό καλείται
|
||
απευθείας από το <application>CVS</application>. Πρώτα ελέγχει,
|
||
χρησιμοποιώντας το πρόγραμμα <filename>cvs_acls.pl</filename>, αν
|
||
ο committer έχει πρόσβαση στο συγκεκριμένο μέρος του δέντρου του
|
||
κώδικα, και μετά εκτελεί το <filename>commit_prep.pl</filename>
|
||
που εκτελεί τους διάφορους pre-commit ελέγχους. Αν δεν υπάρξει
|
||
κάποιο πρόβλημα στους ελέγχους αυτούς, τότε το
|
||
<application>CVS</application> θα επιτρέψει στο commit να
|
||
συνεχίσει. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>commitinfo</filename> - το αρχείο αυτό
|
||
χρησιμοποιείται από το <application>CVS</application> στο να
|
||
αποφασίσει ποιο script να εκτελέσει πριν από κάθε commit—στη
|
||
δική μας περίπτωση αυτό το ρόλο καλύπτει το
|
||
<filename>commitcheck</filename>. Δεν θα
|
||
χρειαστεί να πειράξετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>config</filename> - το αρχείο ρυθμίσεων γι' αυτό το
|
||
repository. Θα πρέπει να κάνετε αλλαγές σ' αυτό το αρχείο ανάλογα
|
||
με τις ανάγκες σας, αλλά οι περισσότεροι διαχειριστές μπορούν να
|
||
αφήσουν τις εξ' ορισμού ρυθμίσεις. Περισσότερες πληροφορίες για
|
||
τις διάφορες δυνατότητες επιλογών που έχετε στο αρχείο αυτό
|
||
μπορείτε να βρείτε στο εγχειρίδιο του <application>CVS</application>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>cvs_acls.pl</filename> - το script αυτό ελέγχει την
|
||
ταυτότητα του committer, και αν επιτρέπεται αυτός να έχει πρόσβαση
|
||
στο δέντρο του κώδικα. Αυτό γίνεται με βάση το
|
||
αρχείο <filename>avail</filename>. Δεν θα χρειαστεί να πειράξετε
|
||
αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>cvsignore</filename> - στο αρχείο αυτό καθορίζονται
|
||
τα αρχεία που το <application>CVS</application> δεν θα πρέπει να
|
||
επιτρέψει το checkin τους στο repository. Μπορείτε να
|
||
επεξεργαστείτε αυτό το αρχείο ανάλογα με τις δικές σας
|
||
προτιμήσεις. Περισσότερες πληροφορίες για το αρχείο αυτό θα
|
||
βρείτε στο εγχειρίδιο του <application>CVS</application>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>cvswrappers</filename> - το αρχείο αυτό
|
||
χρησιμοποιείται από το <application>CVS</application> για την
|
||
ενεργοποίηση ή απενεργοποίηση του keyword expansion, ή για το αν
|
||
κάποιο αρχείο θα πρέπει να αντιμετωπίζεται ως binary. Μπορείτε να
|
||
επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας.
|
||
Περισσότερες πληροφορίες σχετικά με το αρχείο αυτό μπορείτε να
|
||
βρείτε στο εγχειρίδιο του <application>CVS</application>.
|
||
Σημειώστε πως οι επιλογές <literal>-t</literal> και
|
||
<literal>-f</literal> δε δουλεύουν σωστά για client/server χρήση
|
||
του <application>CVS</application>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>edithook</filename> - το αρχείο αυτό δεν
|
||
χρησιμοποιείται πια, αλλά εξακολουθεί να υπάρχει για ιστορικούς
|
||
λόγους. Μπορείτε να σβήσετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>editinfo</filename> - το
|
||
<application>CVS</application> χρησιμοποιεί αυτό το αρχείο για
|
||
παράκαμψη των editors. Το &os; δεν χρησιμοποιεί αυτή την
|
||
λειτουργικότητα γιατί η ερμηνεία του log μηνύματος γίνεται από τα
|
||
<filename>verifymsg</filename> και <filename>logcheck</filename>
|
||
αρχεία. Επιλέξαμε να γίνεται έτσι αυτό επειδή η χρήση του
|
||
<filename>editinfo</filename> έχει κάποια προβλήματα με τα commits
|
||
από μακριά και με τα commits που χρησιμοποιούν τις επιλογές
|
||
<literal>-F</literal> ή <literal>-F</literal>. Δεν θα χρειαστεί να
|
||
πειράξετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>exclude</filename> - το αρχείο αυτό περιέχει κανονικές
|
||
εκφράσεις (regular expressions) που χρησιμοποιούνται από το πρόγραμμα
|
||
<filename>commit_prep.pl</filename> για να προσδιοριστούν τα
|
||
αρχεία που δεν είναι απαραίτητο να περιέχουν επικεφαλίδα
|
||
επισκόπησης (revision header). Στην εγκατάσταση του &os;, όλα τα
|
||
αρχεία κάτω από έλεγχο επισκόπησης (revision control) είναι
|
||
απαραίτητο να περιέχουν μια επικεφαλίδα επισκόπησης (όπως
|
||
$FreeBSD$). Όλα τα ονόματα αρχείων που ταιριάζουν
|
||
με τουλάχιστον μια από τις γραμμές του αρχείου αυτού εξαιρούνται
|
||
από τον συγκεκριμένο έλεγχο. Θα πρέπει να προσθέσετε τις ανάλογες
|
||
κανονικές εκφράσεις στο αρχείο αυτό όταν κάνετε checkin αρχεία που
|
||
δεν είναι απαραίτητο να περιέχουν επικεφαλίδα επισκόπησης. Κατά
|
||
τη διάρκεια της εγκατάστασης των νέων scripts ελέγχου, ίσως να
|
||
είναι καλύτερα να εξαιρείται ο
|
||
κατάλογος <filename class="directory">CVSROOT/</filename> από τον
|
||
έλεγχο των headers.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>log_accum.pl</filename> - πρόκειται για ένα script
|
||
που παίρνει το log μήνυμα όπως αυτό δίνεται από το
|
||
<filename>logcheck</filename> script, και το προσθέτει στο τέλος
|
||
ενός αρχείου log στο repository, έτσι ώστε να υπάρχουν αντίγραφα
|
||
ασφαλείας από τα commit logs. Επίσης, αναλαμβάνει να στείλει ένα
|
||
mail στην email διεύθυνση που έχετε δηλώσει (στο
|
||
<filename>cfg_local.pm</filename>). Συνεργάζεται με το
|
||
<application>CVS</application> μέσω του αρχείου
|
||
<filename>loginfo</filename>. Δεν θα χρειαστεί να πειράξετε το
|
||
αρχείο αυτό.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>logcheck</filename> - το αρχείο αυτό ερμηνεύει το
|
||
commit log μήνυμα που παρέχουν οι committers, και προσπαθεί κατά
|
||
κάποιο τρόπο να το κανονικοποιήσει. Συνεργάζεται με το
|
||
<application>CVS</application> μέσω του αρχείου
|
||
<filename>verifymsg</filename>. Δεν θα χρειαστεί να πειράξετε το
|
||
αρχείο αυτό.</para>
|
||
|
||
<note>
|
||
<para>Το script εξαρτάται από μια τοπική αλλαγή του &os; στο
|
||
<application>CVS</application>: Η αλλαγή αυτή ξαναδιαβάζει το
|
||
log μήνυμα αφού αυτό έχει τροποποιηθεί από το script. Η
|
||
κανονική έκδοση του <application>CVS</application> προφανώς δεν
|
||
κάνει κάτι τέτοιο, οπότε το <filename>logcheck</filename> δε
|
||
μπορεί να κάνει μικροδιορθώσεις στο log μήνυμα, αλλά μπορεί να
|
||
ελέγξει ότι το μήνυμα δεν έχει συντακτικά λάθη. Απο την έκδοση
|
||
1.11.2 και μετά το ίδιο το <application>CVS</application> μπορεί
|
||
να ρυθμιστεί να έχει την ίδια συμπεριφορά με αυτή που έχει η
|
||
έκδοση του &os; με την επιλογή
|
||
<literal>RereadLogAfterVerify=always</literal> στο αρχείο
|
||
<filename>config</filename>.</para>
|
||
</note>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>loginfo</filename> - το αρχείο αυτό χρησιμοποιείται
|
||
από το <application>CVS</application> για τον έλεγχο του που θα
|
||
στέλνονται οι πληροφορίες των logs. Εδώ ενεργοποιείται το
|
||
πρόγραμμα <filename>log_accum.pl</filename>. Δεν θα χρειαστεί να
|
||
πειράξετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>modules</filename> - το αρχείο αυτό διατηρεί την
|
||
παραδοσιακή του σημασία στο <application>CVS</application>. Θα
|
||
πρέπει να αφαιρέσετε τα &os; modules από την κανονική έκδοση.
|
||
Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες
|
||
σας. Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες
|
||
στο εγχειρίδιο του <application>CVS</application>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>notify</filename> - το αρχείο αυτό χρησιμοποιείται
|
||
από το <application>CVS</application> στην περίπτωση που κάποιος
|
||
τοποθετήσει εντολή παρακολούθησης σε κάποιο αρχείο. Δεν
|
||
χρησιμοποιείται στο repository του &os;. Μπορείτε να
|
||
επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας.
|
||
Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες στο
|
||
εγχειρίδιο του <application>CVS</application>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>options</filename> - το αρχείο αυτό σχετίζεται άμεσα
|
||
με την &os; έκδοση του <application>CVS</application> και
|
||
υποστηρίζεται μόνο από αυτή και την έκδοση του Debian. Περιέχει
|
||
το keyword που θα γίνεται expand στα revision headers. Θα πρέπει
|
||
να τροποποιήσετε το αρχείο αυτό για να είναι ίδιο με την έκδοση
|
||
που έχετε εισάγει στο αρχείο <filename>cfg_local.pm</filename> (αν
|
||
αποφασίσετε να χρησιμοποιήσετε αυτή την λειτουργία, που προς το
|
||
παρόν δουλεύει σωστά μόνο με την έκδοση του
|
||
<application>CVS</application> που έχει το &os;).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>rcsinfo</filename> - το αρχείο αυτό αντιστοιχεί
|
||
φακέλους του repository σε αρχεία template, όπως π.χ. το
|
||
<filename>rcstemplate</filename>. Εξ' ορισμού, το
|
||
&os; χρησιμοποιεί ένα template για ολόκληρο το repository.
|
||
Μπορείτε να προσθέσετε και άλλα στο αρχείο αυτό αν το
|
||
επιθυμείτε.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>rcstemplate</filename> - το αρχείο αυτό είναι το
|
||
template που θα δούν τελικά οι committers όταν θα κάνουν checkin.
|
||
Θα πρέπει να επεξεργαστείτε αυτό το αρχείο ώστε να περιγράφει τις
|
||
διάφορες επιπλέον παραμέτρους που ορίσατε στο αρχείο
|
||
<filename>cfg_local.pm</filename>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>tagcheck</filename> - το αρχείο αυτό ελέγχει την
|
||
πρόσβαση στην χρήση των tags στο repository. Η κανονική έκδοση
|
||
του &os; δεν επιτρέπει tags με ονόματα όπως RELENG*, λόγω της
|
||
διαδικασίας δημιουργίας των επίσημων εκδόσεων. Θα πρέπει να
|
||
επεξεργαστείτε το αρχείο αυτό ανάλογα με τις δικές σας ανάλογες
|
||
προτιμήσεις.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>taginfo</filename> - το αρχείο αυτό αντιστοιχεί
|
||
λειτουργίες των tags σε φακέλους του repository με προγράμματα
|
||
ελέγχου, όπως το <filename>tagcheck</filename>. Δεν θα χρειαστεί
|
||
να τροποποιήσετε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>unwrap</filename> - το αρχείο αυτό μπορεί να
|
||
χρησιμοποιηθεί για το αυτόματο <quote>unwrap</quote> των binary
|
||
αρχείων (δείτε <filename>cvswrappers</filename>) στο checkout.
|
||
Δεν χρησιμοποιείται στην τρέχουσα εγκατάσταση του CVS για το &os;
|
||
επειδή δεν λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα
|
||
χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>verifymsg</filename> - το αρχείο αυτό αντιστοιχεί
|
||
υποκαταλόγους του repository σε προγράμματα επεξεργασίας των
|
||
μηνυμάτων του log, όπως π.χ. το <filename>logcheck</filename>.
|
||
Δεν θα χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>wrap</filename> - το script αυτό χρειάζεται για το
|
||
αυτόματο <quote>wrap</quote> των binary αρχείων (δείτε
|
||
<filename>cvswrappers</filename>) κατά το checkin. Δεν
|
||
χρησιμοποιείται στην τρέχουσα εγκατάσταση του &os; επειδή δεν
|
||
λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα
|
||
χρειαστεί να τροποποιήσετε το αρχείο αυτό.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Τροποποιώντας τα scripts</title>
|
||
|
||
<para>Το επόμενο βήμα είναι η αλλαγή των scripts ώστε να μπορούν να
|
||
χρησιμοποιηθούν στο δικό σας περιβάλλον. Θα πρέπει να ελέγξετε όλα τα
|
||
αρχεία μέσα στον φάκελο και να κάνετε τις τροποποιήσεις σας. Πιο
|
||
συγκεκριμένα, θα θέλετε κατά πάσα πιθανότητα να τροποποιήσετε τα
|
||
παρακάτω αρχεία:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Αν δεν θέλετε να χρησιμοποιήσετε τις λειτουργίες των scripts
|
||
οι οποίες χρησιμοποιούνται
|
||
<link linkend="freebsdspecific">αποκλειστικά από το &os;</link>,
|
||
μπορείτε να αφαιρέσετε με ασφάλεια το αρχείο
|
||
<filename>access</filename>:
|
||
|
||
<screen>&prompt.user; <userinput>cvs rm -f access</userinput></screen></para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Διορθώστε το αρχείο <filename>avail</filename> ώστε να
|
||
περιέχει τους διάφορους φακέλους του repository στους οποίους
|
||
θέλετε να ελέγξετε την πρόσβαση. Σιγουρευτείτε ότι θα διατηρήσετε
|
||
ανέπαφη την <literal>avail||CVSROOT</literal> γραμμή, ειδάλλως θα
|
||
αποκλείσετε ακόμα και τον εαυτό σας με το επόμενο βημα.</para>
|
||
|
||
<para>Εκτός αυτού στο συγκεκριμένο αρχείο μπορείτε να εισάγετε και
|
||
ομάδες από committers. Εξ' ορισμού, το &os; χρησιμοποιεί το
|
||
αρχείο <filename>access</filename> για την τοποθέτηση όλων των
|
||
committers, αλλά μπορείτε να χρησιμοποιήσετε όποιο άλλο
|
||
επιθυμείτε. Μπορείτε επίσης να προσθέσετε και ομάδες αν το
|
||
επιθυμείτε (η σύνταξη καθορίζεται στην κορυφή του αρχείου
|
||
<filename>cvs_acls.pl</filename>).</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Διορθώστε το αρχείο <filename>cfg_local.pm</filename> ώστε να
|
||
περιέχει τις επιλογές που επιθυμείτε. Πιο συγκεκριμένα, θα πρέπει
|
||
να ελέγξετε τις παρακάτω τροποποιήσιμες επιλογές:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>%TEMPLATE_HEADERS</literal> - Αυτές οι
|
||
επικεφαλίδες επεξεργάζονται από τα log scripts, και
|
||
τοποθετούνται κάτω από το mail του κάθε commit αν υπάρχουν και
|
||
δεν είναι κενές στο μήνυμα του commit. Γενικά, μπορείτε να
|
||
αφαιρέσετε τις καταχωρήσεις <literal>PR</literal> και
|
||
<literal>MFC after</literal>—αφού αυτές σχετίζονται με
|
||
το bug tracking σύστημα του &os; και τον τρόπο που
|
||
διαχειρίζεται το &os; τα branches του repository του. Και
|
||
φυσικά μπορείτε να προσθέσετε τις δικές σας.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>$MAIL_BRANCH_HDR</literal> - Αν θέλετε να
|
||
προστίθεται αυτόματα μια επικεφαλίδα σε κάθε commit μήνυμα
|
||
mail, η οποία θα περιγράφει το branch στο οποίο έγινε το
|
||
συγκεκριμένο commit, ορίστε την τιμή αυτή να ταιριάζει με την
|
||
δική σας εγκατάσταση. Αφήστε την κενή αν δεν επιθυμείτε να
|
||
προστίθεται αυτόματα μια τέτοια επικεφαλίδα.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>@COMMIT_HOSTS</literal> - Ορίστε την τιμή αυτή σε
|
||
μια λίστα από συστήματα (hosts), από τα οποία επιτρέπεται να
|
||
γίνονται commits.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>$MAILADDRS</literal> - Ρυθμίστε αυτή την τιμή στο
|
||
email του διαχειριστή ή σε μια διεύθυνση λίστας στην οποία
|
||
θέλετε να πηγαίνουν τα mail των commit μηνυμάτων.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>@LOG_FILE_MAP</literal> - Αλλάξτε αυτό το array
|
||
όπως επιθυμείτε. Κάθε regexp αντιστοιχεί στο συγκεκριμένο
|
||
φάκελο στον οποίο γίνεται το commit, και το log μήνυμα του
|
||
commit αποθηκεύεται κάτω από τον κατάλογο
|
||
<filename class="directory">CVSROOT</filename>, στον υποκατάλογο
|
||
<filename class="directory">commitlogs</filename>, στο αρχείο
|
||
που αναφέρεται στην αντίστοιχη εγγραφή του
|
||
πίνακα <literal>@LOG_FILE_MAP</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>$COMMITCHECK_EXTRA</literal> - Αν δεν θέλετε να
|
||
χρησιμοποιήσετε <link linkend="freebsdspecific">τους ίδιους
|
||
ελέγχους πρόσβασης με το &os;</link>, θα πρέπει να αφαιρέσετε
|
||
τον ορισμό της τιμής <literal>$COMMITCHECK_EXTRA</literal> από
|
||
το αρχείο αυτό.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<note>
|
||
<para>Η αλλαγή της παραμέτρου <literal>$IDHEADER</literal> είναι
|
||
εγγυημένο ότι θα δουλέψει μόνο σε πλατφόρμες &os;.
|
||
Εξαρτάται από ειδικές μετατροπές του &os; στο
|
||
<application>CVS</application>.</para>
|
||
</note>
|
||
|
||
<para>Μπορείτε να ελέγξετε το αρχείο <filename>cfg.pm</filename> για
|
||
να δείτε ποιές άλλες παραμέτρους μπορείτε να αλλάξετε, αλλά οι
|
||
παραπάνω είναι οι πιο συνήθεις επιλογές.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Επεξεργαστείτε το αρχείο <filename>exclude</filename> για να
|
||
αφαιρέσετε τις ειδικές καταχωρήσεις του &os; (όπως όλες τις
|
||
γραμμές που ξεκινούν με <literal>^ports/</literal> κτλ.). Εκτός
|
||
αυτού, βάλτε σε σχόλια τις γραμμές που ξεκινούν με
|
||
<literal>^CVSROOT/</literal>, και προσθέστε μια γραμμή που θα
|
||
περιέχει μόνο το <literal>^CVSROOT/</literal>. Αφού εγκατασταθεί
|
||
ο wrapper, μπορείτε να προσθέσετε το δικό σας header στα αρχεία
|
||
που βρίσκονται μέσα στον κατάλογο
|
||
<filename class="directory">CVSROOT</filename> και να επαναφέρετε
|
||
τις γραμμές αυτές, αλλά προς το παρόν απλά θα σας δημιουργήσουν
|
||
προβλήματα όταν θα προσπαθήσετε να κάνετε commit αργότερα.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Ανοίξτε το αρχείο <filename>modules</filename>, και αφαιρέστε
|
||
όλες τις σχετικές με το &os; καταχωρήσεις. Προσθέστε τα δικά
|
||
σας modules αν το επιθυμείτε.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<note>
|
||
<para>Το βήμα αυτό είναι απαραίτητο μόνο αν έχετε ορίσει
|
||
κάποια τιμή στην παράμετρο <literal>$IDHEADER</literal> του
|
||
αρχείου <filename>cfg_local.pm</filename> (η οποία δουλεύει μόνο
|
||
εφόσον χρησιμοποιείτε την τροποποιημένη έκδοση του
|
||
<application>CVS</application> που έχει το &os;).</para>
|
||
</note>
|
||
|
||
<para>Διορθώστε το αρχείο <filename>options</filename> ώστε να
|
||
ταιριάζει με το tag που ορίσατε στο αρχείο
|
||
<filename>cfg_local.pm</filename>. Μια αναζήτηση και
|
||
αντικατάσταση του <literal>FreeBSD</literal> σε όλο το αρχείο
|
||
είναι αρκετή.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Επεξεργαστείτε το αρχείο <filename>rcstemplate</filename> ώστε
|
||
να περιέχει τα ίδια keywords με αυτά που έχετε ορίσει στο
|
||
<filename>cfg_local.pm</filename>.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Προαιρετικά, αφαιρέστε τους ελέγχους του &os; από το αρχείο
|
||
<filename>tagcheck</filename>. Μπορείτε απλά να προσθέσετε
|
||
<literal>exit 0</literal> στην αρχή του αρχείου για να
|
||
απενεργοποιήσετε όλους τους ελέγχους στο tagging.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Το τελευταίο πράγμα που πρέπει να γίνει, είναι να
|
||
σιγουρευτείτε ότι τα commitlogs μπορούν να αποθηκευτούν.
|
||
Τα <application>CVS</application> scripts του &os;
|
||
αποθηκεύουν αυτά τα logs στον υποκατάλογο <filename class="directory">commitlogs</filename>
|
||
του καταλόγου <filename class="directory">CVSROOT</filename>.
|
||
Αυτός ο φάκελος πρέπει να
|
||
δημιουργηθεί, οπότε κάντε τα ακόλουθα:</para>
|
||
|
||
<screen>&prompt.user; <userinput>mkdir commitlogs</userinput>
|
||
&prompt.user; <userinput>cvs add commitlogs</userinput></screen>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>Τώρα, αφού ελέγξετε τα πάντα προσεκτικά, θα πρέπει να κάνετε
|
||
commit τις αλλαγές σας. Φροντίστε να είστε σίγουροι ότι έχετε δώσει
|
||
στον εαυτό σας πρόσβαση στον
|
||
φάκελο <filename class="directory">CVSROOT</filename> μέσα από το
|
||
αρχείο <filename>avail</filename> πριν κάνετε οτιδήποτε, εφόσον στην
|
||
αντίθετη περίπτωση θα κλειδώσετε τον εαυτό σας έξω. Οπότε, φροντίστε
|
||
τα πάντα να είναι όπως επιθυμείτε, και μόνο τότε δώστε τα ακόλουθα:
|
||
|
||
<screen>&prompt.user; <userinput>cvs commit -m '<replaceable>- Initial FreeBSD scripts commit</replaceable>'</userinput></screen></para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Δοκιμάζοντας την Εγκατάσταση</title>
|
||
|
||
<para>Είστε έτοιμοι για την πρώτη σας δοκιμή: Ένα forced commit στο
|
||
αρχείο <filename>avail</filename>, για να σιγουρευτείτε ότι όλα
|
||
δουλεύουν όπως θα έπρεπε.</para>
|
||
|
||
<screen>&prompt.user; <userinput>cvs commit -f -m '<replaceable>Forced commit to test the new CVSROOT scripts</replaceable>' avail</userinput></screen>
|
||
|
||
<para>Άν όλα πάνε καλά, συγχαρητήρια! Έχετε καταφέρει να στήσετε μια
|
||
πλήρως λειτουργική εγκατάσταση των &os; scripts για το repository σας.
|
||
Στην περίπτωση που το <application>CVS</application> εξακολουθεί να
|
||
παραπονιέται για κάτι, επιστρέψτε στις προηγούμενες ενότητες και
|
||
ελέγξτε ξανά ότι έχετε εκτελέσει σωστά όλα τα προηγούμενα
|
||
βήματα.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="freebsdspecific">
|
||
<title>Ειδική Εγκατάσταση του &os; Project</title>
|
||
|
||
<para>Το ίδιο το &os; project χρησιμοποιεί μια ελαφρώς διαφορετική
|
||
εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο
|
||
<filename class="directory">freebsd</filename> του
|
||
<filename class="directory">CVSROOT</filename> που χρησιμοποιείται στο
|
||
&os;. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των
|
||
committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group.
|
||
Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει
|
||
τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε
|
||
αυτό του repository.</para>
|
||
|
||
<para>Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που
|
||
θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε
|
||
μια σύντομη επισκόπηση των σχετικών αρχείων.</para>
|
||
|
||
<sect2>
|
||
<title>Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του
|
||
&os;</title>
|
||
|
||
<para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><filename>access</filename> - το αρχείο αυτό ελέγχει τις
|
||
πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το
|
||
επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του
|
||
project σας.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>freebsd/commitmail.pl</filename> - το αρχείο αυτό
|
||
δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους.
|
||
Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>freebsd/cvswrap.c</filename> - πρόκειται για τον
|
||
πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για
|
||
να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν.
|
||
Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε
|
||
παρακάτω. Θα πρέπει να διορθώσετε τα paths στις
|
||
<literal>ACCESS</literal> και <literal>REALCVS</literal>
|
||
μακροεντολές ώστε να ταιριάζουν με τη δική σας
|
||
εγκατάσταση.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>freebsd/mailsend.c</filename> - το αρχείο αυτό
|
||
χρειάζεται για την σχετική με τις λίστες ταχυδρομείου
|
||
εγκατάσταση του &os;. Δεν θα χρειαστεί να πειράξετε το αρχείο
|
||
αυτό.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Η διαδικασία</title>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Διορθώστε το αρχείο <filename>access</filename> ώστε να
|
||
περιέχει μόνο το δικό σας username.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Διορθώστε το αρχείο <filename>cvswrap.c</filename> ώστε να
|
||
περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται
|
||
ως μια μακροεντολή που ονομάζεται <literal>ACCESS</literal>. Θα
|
||
πρέπει επίσης να αλλάξετε και το όνομα αρχείου του πραγματικού
|
||
<command>cvs</command> binary αν αυτή που υπάρχει δεν είναι η
|
||
σωστή για τη δική σας περίπτωση. Το κανονικό
|
||
<filename>cvswrap.c</filename> θεωρεί πως θα αντικαταστήσετε την
|
||
εντολή cvs σε επίπεδο συστήματος με το cvwrap, κι η αρχική εντολή
|
||
cvs θα μεταφερθεί στο
|
||
αρχείο <filename>/usr/bin/ncvs</filename>.</para>
|
||
|
||
<para>Το δικό μου αντίτυπο του αρχείου
|
||
<filename>cvswrap.c</filename> έχει τα ακόλουθα:</para>
|
||
|
||
<programlisting>#define ACCESS "/local/cvsroot/CVSROOT/access"
|
||
#define REALCVS "/usr/bin/ncvs"</programlisting>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να
|
||
είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν
|
||
γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο
|
||
<filename>cvswrap.c</filename> στον κατάλογο
|
||
<filename>CVSROOT</filename>.</para>
|
||
|
||
<para>Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να
|
||
περιέχει τα σωστά paths:</para>
|
||
|
||
<screen>&prompt.user; <userinput>cc -o cvs cvswrap.c</userinput></screen>
|
||
|
||
<para>Στη συνέχεια εγκαταστήστε το νέο cvs εκτελέσιμο ακολουθώντας
|
||
τα ακόλουθα βήματα (θα πρέπει να είστε root για το βήμα
|
||
αυτό):</para>
|
||
|
||
<screen>&prompt.root; <userinput>mv /usr/bin/cvs /usr/bin/ncvs</userinput>
|
||
&prompt.root; <userinput>mv cvs /usr/bin/cvs</userinput>
|
||
&prompt.root; <userinput>chown root:<replaceable>ncvs</replaceable> /usr/bin/cvs /usr/bin/ncvs</userinput>
|
||
&prompt.root; <userinput>chmod o-rx /usr/bin/ncvs</userinput>
|
||
&prompt.root; <userinput>chmod u-w,g+s /usr/bin/cvs</userinput></screen>
|
||
|
||
<para>Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού
|
||
<command>cvs</command> εντολή, κάνοντας έτσι σίγουρο ότι
|
||
οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να
|
||
έχει τα κατάλληλα επίπεδα πρόσβασης.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το
|
||
repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από
|
||
τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το
|
||
οποίο θα γίνεται και η τελική πρόσβαση.</para>
|
||
</step>
|
||
</procedure>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Ελέγχοντας την εγκατάσταση</title>
|
||
|
||
<para>Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το
|
||
δοκιμάσετε κάνοντας ένα forced commit στο αρχείο
|
||
<filename>access</filename>:</para>
|
||
|
||
<screen>&prompt.user; <userinput>cvs commit -f -m '<replaceable>Forced commit to test the new CVSROOT scripts</replaceable>' access</userinput></screen>
|
||
|
||
<para>Ξανά, αν αυτό αποτύχει, ελέγξτε ότι όλα τα παραπάνω βήματα έχουν
|
||
εκτελεστεί σωστά.</para>
|
||
</sect2>
|
||
</sect1>
|
||
</article>
|