996 lines
44 KiB
XML
996 lines
44 KiB
XML
<?xml version="1.0" encoding="iso-8859-7"?>
|
||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||
<!ENTITY art.re.pkgs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="../releng-packages/article.html">Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους</link>'>
|
||
]>
|
||
<!--
|
||
|
||
Η Οργάνωση των Επίσημων Εκδόσεων του FreeBSD
|
||
|
||
The FreeBSD Greek Documentation Project
|
||
|
||
%SOURCE% en_US.ISO8859-1/articles/releng/article.xml
|
||
%SRCID% 1.48
|
||
|
||
-->
|
||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="el">
|
||
|
||
<info><title>Η Οργάνωση των Εκδόσεων του FreeBSD</title>
|
||
|
||
|
||
<confgroup>
|
||
<confdates>Νοέμβρης 2001</confdates>
|
||
<conftitle>BSDCon Europe</conftitle>
|
||
</confgroup>
|
||
|
||
<authorgroup>
|
||
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><personblurb>
|
||
<para>Έχω ασχοληθεί με την ανάπτυξη προϊόντων βασισμένων στο FreeBSD
|
||
από το 1997, στην Walnut Creek CDROM, στην BSDi, και τώρα στην
|
||
Wind River Systems. Η έκδοση 4.4 του FreeBSD ήταν η πρώτη επίσημη
|
||
έκδοση του FreeBSD στην οποία έπαιξα σημαντικό ρόλο.</para>
|
||
</personblurb><affiliation>
|
||
<address><email>murray@FreeBSD.org</email>
|
||
<otheraddr xlink:href="http://www.FreeBSD.org/~murray">http://www.FreeBSD.org/~murray</otheraddr>
|
||
</address>
|
||
</affiliation></author>
|
||
</authorgroup>
|
||
|
||
<pubdate>$FreeBSD$</pubdate>
|
||
|
||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||
|
||
<abstract>
|
||
<para>Αυτό το άρθρο περιγράφει την αντιμετώπιση και οργάνωση της ομάδας
|
||
ανάπτυξης του FreeBSD, όσον αφορά στην προετοιμασία ποιοτικών εκδόσεων
|
||
του Λειτουργικού Συστήματος FreeBSD. Εξηγεί με λεπτομέρεια την
|
||
μεθοδολογία που χρησιμοποιείται για τις επίσημες εκδόσεις του FreeBSD και
|
||
περιγράφει τα εργαλεία που είναι διαθέσιμα σε όσους ενδιαφέρονται να
|
||
παράγουν παραμετροποιημένες εκδόσεις του FreeBSD για εσωτερική ή
|
||
εμπορική χρήση και ανάπτυξη προϊόντων.</para>
|
||
</abstract>
|
||
|
||
</info>
|
||
|
||
<!-- Εισαγωγή -->
|
||
<sect1 xml:id="introduction">
|
||
<title>Εισαγωγή</title>
|
||
|
||
<para>Η ανάπτυξη του FreeBSD είναι μια πολύ ανοιχτή διαδικασία. Το FreeBSD
|
||
αποτελείται από συνεισφορές χιλιάδων ανθρώπων από όλο τον κόσμο. Η ομάδα
|
||
του FreeBSD παρέχει πρόσβαση μέσω ανώνυμου <acronym>CVS</acronym>[1] σε
|
||
όλους, έτσι ώστε να μπορεί όποιος θέλει να δει μηνύματα log, διαφορές
|
||
(patches) που έχουν τα διάφορα development branches, και άλλα
|
||
χαρακτηριστικά που βοηθούν την ανάπτυξη, τα οποία προκύπτουν από την χρήση
|
||
ενός αυστηρού συστήματος διαχείρισης κώδικα. Αυτό αποτέλεσε και τον πιο
|
||
σημαντικό παράγοντα έλξης για ένα μεγάλο αριθμό από ταλαντούχους
|
||
προγραμματιστές από όλο τον κόσμο στο FreeBSD. Είναι προφανές, βέβαια,
|
||
πως πολύ σύντομα θα είχε γίνει εντελώς χαοτική η κατάσταση αν είχαν όλοι,
|
||
από όλο τον κόσμο, πρόσβαση να γράψουν στον κώδικα. Γι' αυτό, μόνο μια
|
||
<quote>επιλεγμένη</quote> ομάδα από περίπου 300 άτομα έχουν πρόσβαση να
|
||
γράψουν στο <acronym>CVS</acronym> repository. Αυτοί οι
|
||
<emphasis>committers[6]</emphasis> είναι υπεύθυνοι για το μεγαλύτερο μέρος
|
||
της ανάπτυξηςς που γίνεται στο FreeBSD. Μια
|
||
<emphasis>κεντρική-ομάδα[7]</emphasis> (core team) από διακεκριμένους
|
||
προγραμματιστές εκλέγεται για να παρέχει κάποιου είδους καθοδήγηση και μια
|
||
κατεύθυνση στο σύνολο των committers.</para>
|
||
|
||
<para>Οι ταχύτατοι ρυθμοί ανάπτυξης του <systemitem>FreeBSD</systemitem> δεν αφήνουν και πολύ χρόνο για το
|
||
ξεκαθάρισμα του συστήματος ανάπτυξης σε μια έκδοση με ποιότητα που να
|
||
αξίζει να χρησιμοποιείται ευρέως. Για να λυθεί αυτό το δίλλημα, η
|
||
ανάπτυξη γίνεται ταυτόχρονα σε δυο παράλληλα μονοπάτια. Ο κύριος κορμός
|
||
ανάπτυξης είναι ο <emphasis>HEAD</emphasis> ή <emphasis>trunk</emphasis>
|
||
στο CVS repository μας, γνωστός και ως <quote>FreeBSD-CURRENT</quote>, ή
|
||
<quote>-CURRENT</quote> εν συντομία.</para>
|
||
|
||
<para>Ένας πιο σταθερός κορμός συντηρείται, γνωστός με το όνομα
|
||
<quote>FreeBSD-STABLE</quote> ή πιο σύντομα <quote>-STABLE</quote>.
|
||
Και οι δυο κορμοί είναι αποθηκευμένοι στο κύριο CVS repository, στην
|
||
Καλιφόρνια, και αντιγράφονται μέσω <application>CVSup</application>[2] σε mirrors παντού στον κόσμο.
|
||
Το FreeBSD-CURRENT[8] είναι η <quote>πρώτη σειρά</quote> της ανάπτυξης του
|
||
FreeBSD καθώς σε αυτό γίνονται πρώτα όλες οι καινούριες αλλαγές.
|
||
Το FreeBSD-STABLE είναι ο κορμός ανάπτυξης από τον οποίο φτιάχνονται οι
|
||
εκδόσεις. Οι αλλαγές εισέρχονται σε αυτόν, τον δεύτερο κορμό ανάπτυξης,
|
||
με πιο αργό ρυθμό, αφού πρώτα (σύμφωνα με την πολιτική μας) δοκιμαστούν
|
||
στο FreeBSD-CURRENT και έχουν εξεταστεί πολύ καλά.</para>
|
||
|
||
<para>Κατά την περίοδο που μεσολαβεί από τη μια έκδοση στην επόμενη,
|
||
φτιάχνονται καθημερινά snapshots από τα μηχανήματα της ομάδας του FreeBSD
|
||
και είναι διαθέσιμες από τον εξυπηρετητή <systemitem>ftp://stable.FreeBSD.org/</systemitem>. Η μεγάλη
|
||
διαθεσιμότητα των εκτελέσιμων snapshots, καθώς και η τάση της κοινότητας
|
||
των χρηστών μας να ενημερώνουν τα μηχανήματά τους με τις πρόσφατες -STABLE
|
||
εκδόσεις μέσω CVSup και <quote><command>make</command>
|
||
<buildtarget>world</buildtarget></quote>[8] βοηθούν να κρατιέται το
|
||
FreeBSD-STABLE σε μια πολύ αξιόπιστη κατάσταση ακόμα και πριν αρχίσει ο
|
||
κύκλος των ελέγχων ποιότητας ακριβώς πριν από την διάθεση μιας
|
||
έκδοσης του FreeBSD.</para>
|
||
|
||
<para>Συνεχώς στέλνονται από τους χρήστες μας αναφορές προβλημάτων και
|
||
αιτήσεις για καινούρια χαρακτηριστικά, κατά τη διάρκεια του κύκλου της
|
||
κάθε έκδοσης. Οι αναφορές προβλημάτων εισάγονται στην βάση
|
||
<application>GNATS</application>[9] μέσω e-mail, με την
|
||
εφαρμογή &man.send-pr.1;, ή μέσω του web-interface που παρέχεται στην
|
||
διεύθυνση <uri xlink:href="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</uri>.
|
||
Εκτός από τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου με θέμα τα τεχνικά
|
||
χαρακτηριστικά του FreeBSD υπάρχει και η λίστα &a.qa;, η οποία παρέχει ένα
|
||
φόρουμ για συζητήσεις σχετικά με τις λεπτομέρειες της
|
||
<quote>οργάνωσης των εκδόσεων</quote>.</para>
|
||
|
||
<para>Για να εξυπηρετηθούν οι πιο συντηρητικοί χρήστες μας, με έκδοση του
|
||
FreeBSD 4.3 αρχίσαμε να χρησιμοποιούμε ξεχωριστούς κορμούς εκδόσεων.
|
||
Αυτοί οι κορμοί δημιουργούνται λίγο πρίν φτιαχτεί η τελική έκδοση. Μετά
|
||
την ανακοίνωση της έκδοσης, μόνο πολύ σημαντικές αλλαγές και προσθήκες
|
||
σχετικές με την ασφάλεια γίνονται στον κορμό της έκδοσης. Εκτός από την
|
||
δυνατότητα αναβάθμισης μέσω CVS, εκτελέσιμα patchkits φτιάχνονται για να
|
||
μπορούν να αναβαθμίσουν τα συστήματά τους όσοι χρησιμοποιούν τις
|
||
εκδόσεις <emphasis>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></emphasis>.</para>
|
||
|
||
<para>Το <xref linkend="release-proc"/> εξηγεί με λεπτομέρειες τα διάφορα
|
||
στάδια της διαδικασίας που βρίσκεται πίσω από κάθε έκδοση, μέχρι και τα
|
||
βήματα που οδηγούν στην μεταγλώττιση του συστήματος και το <xref linkend="release-build"/> εξηγεί την ίδια τη διαδικασία της μεταγλώττισης.
|
||
Το <xref linkend="extensibility"/> περιγράφει πως μπορεί να επεκταθεί το
|
||
βασικό σύστημα από τρίτους και το <xref linkend="lessons-learned"/>
|
||
περιγράφει κάποια από τα πράγματα που μάθαμε από την διαδικασία έκδοσης
|
||
του FreeBSD 4.4. Τέλος, το <xref linkend="future"/> παρουσιάζει κάποιες
|
||
από τις κατευθύνσεις που θέλουμε να πάρει η ανάπτυξη στο μέλλον.</para>
|
||
</sect1>
|
||
|
||
<!-- Η Διαδικασία Έκδοσης -->
|
||
<sect1 xml:id="release-proc">
|
||
<title>Η Διαδικασία Δημιουργίας μιας Έκδοσης</title>
|
||
|
||
<para>Οι νέες εκδόσεις του FreeBSD φτιάχνονται από τον -STABLE κορμό
|
||
ανάπτυξης περίπου κάθε τέσσερεις μήνες. Η διαδικασία προετοιμασίας μιας
|
||
έκδοσης ξεκινάει σχεδόν 45 μέρες πριν την αναμενόμενη ημερομηνία έκδοσης,
|
||
όταν ο υπεύθυνος εκδόσεων του FreeBSD στέλνει ένα γράμμα στις λίστες των
|
||
προγραμματιστών για να υπενθυμίσει στους προγραμματιστές ότι έχουν 15
|
||
μέρες καιρό να κάνουν όποιες αλλαγές θέλουν, πριν το πάγωμα του κώδικα.
|
||
Μέσα σε αυτό τον καιρό, πολλοί προγραμματιστές κάνουν μια σειρά από
|
||
αλλαγές που έχουν μείνει πλέον γνωστές ως <quote>ξεκαθαρίσματα
|
||
MFC</quote>. Ο όρος <acronym>MFC</acronym> σημαίνει <quote>Merge From
|
||
CURRENT</quote> και περιγράφει την διαδικασία προσαρμογής του κώδικα μιας
|
||
δοκιμασμένης αλλαγής από τον -CURRENT πειραματικό κορμό ανάπτυξης στον
|
||
σταθερό -STABLE κορμό.</para>
|
||
|
||
<sect2>
|
||
<title>Έλεγχος Κώδικα</title>
|
||
|
||
<para>Τριάντα ημέρες πριν την αναμενόμενη ημερομηνία έκδοσης, ο κώδικας
|
||
του repository εισέρχεται σε μια περίοδο <quote>καθυστέρησης</quote>.
|
||
Κατά τη διάρκεια αυτής της περιόδου, όλες οι αλλαγές στον -STABLE κορμό
|
||
πρέπει να έχουν την έγκριση της &a.re;. Οι αλλαγές που επιτρέπονται σε
|
||
αυτή την περίοδο που διαρκεί 15 ημέρες είναι:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Διορθώσεις γνωστών προβλημάτων.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ενημερώσεις στην τεκμηρίωση.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Αλλαγές σχετικές με την ασφάλεια.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μικρές αλλαγές στους οδηγούς συσκευών, όπως π.χ. η προσθήκη των
|
||
IDs νέων συσκευών.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Οποιαδήποτε άλλη αλλαγή πιστεύει η ομάδα ανάπτυξης ότι πρέπει να
|
||
γίνει, με το αναμενόμενο πάντα ρίσκο.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Μετά τις πρώτες 15 μέρες καθυστέρησης, φτιάχνεται μια
|
||
<emphasis>δοκιμαστική έκδοση</emphasis> για να χρησιμοποιηθεί σαν δοκιμή
|
||
της τελικής έκδοσης και ο κώδικας εισέρχεται σε μια περίοδο
|
||
<quote>παγώματος</quote>. Πλέον είναι πολύ πιο δύσκολο να γίνουν νέες
|
||
αλλαγές στο σύστημα, εκτός κι αν διορθώνουν κάποιο πολύ σοβαρό bugή
|
||
κάποιο πρόβλημα ασφάλειας. Κατά τη διάρκεια του παγώματος του κώδικα,
|
||
τουλάχιστον μία δοκιμαστική έκδοση φτιάχνεται κάθε εβδομάδα, μέχρι να
|
||
είναι έτοιμη η τελική έκδοση. Τις ημέρες ακριβώς πριν την τελική
|
||
έκδοση, η ομάδα που είναι υπεύθυνη για τις εκδόσεις είναι σε συνεχή
|
||
επικοινωνία με την ομάδα ασφάλειας, την ομάδα συντήρησης της
|
||
τεκμηρίωσης, και την ομάδα συντήρησης των ports, για να βεβαιωθούν πως
|
||
όλα τα απαραίτητα κομμάτια για μια πλήρη έκδοση είναι διαθέσιμα.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Λίστα Ελέγχου της Τελικής Έκδοσης</title>
|
||
|
||
<para>Όταν αρκετές δοκιμαστικές εκδόσεις έχουν γίνει διαθέσιμες, έχουν
|
||
δοκιμαστεί από αρκετό κόσμο και όλα τα σοβαρά θέματα έχουν αναλυθεί, η
|
||
τελική έκδοση μπορεί να αρχίσει.</para>
|
||
|
||
<sect3>
|
||
<title>Δημιουργία του Κορμού Έκδοσης</title>
|
||
|
||
<para>Όπως περιγράψαμε στην εισαγωγή, οι
|
||
κορμοί <literal>RELENG_X_Y</literal>
|
||
είναι μια σχετικά νέα προσθήκη στην
|
||
μεθοδολογία των εκδόσεών μας. Το πρώτο βήμα στην δημιουργία αυτού του
|
||
κορμού είναι να βεβαιωθείτε ότι δουλεύετε με την τελευταία έκδοση του
|
||
πηγαίου κώδικα από τον <literal>RELENG_X</literal> κορμό
|
||
<emphasis>από τον οποίο</emphasis> θα φτιάξετε το νέο κορμό.</para>
|
||
|
||
<screen>/usr/src&prompt.root; <userinput>cvs update -rRELENG_4 -P -d</userinput></screen>
|
||
|
||
<para>Το επόμενο βήμα είναι να δημιουργήσετε μια
|
||
<emphasis>ετικέτα</emphasis> (tag) στο σημείο εκκίνησης του κορμού,
|
||
ώστε να μπορείτε να δείτε τις διαφορές με την αρχή του κορμού εύκολα
|
||
στο μέλλον με το CVS:</para>
|
||
|
||
<screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4 RELENG_4_8_BP src</userinput></screen>
|
||
|
||
<para>Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με:</para>
|
||
|
||
<screen>/usr/src&prompt.root; <userinput>cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src</userinput></screen>
|
||
|
||
<note>
|
||
<para><emphasis>Οι ετικέτες <literal>RELENG_*</literal> είναι
|
||
δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των
|
||
εκδόσεων.</emphasis></para>
|
||
</note>
|
||
|
||
<sidebar>
|
||
<para>Ο όρος <quote><emphasis>ετικέτα</emphasis></quote> είναι ορολογία
|
||
του CVS. Σημαίνει ένα όνομα που καθορίζει μια συγκεκριμένη έκδοση
|
||
του κώδικα στο χρόνο. Χρησιμοποιώντας ετικέτες στον πηγαίο κώδικα
|
||
βοηθάμε όποιον φτιάξει στο μέλλον εκδόσεις του FreeBSD να βρίσκει
|
||
και να χρησιμοποιεί ακριβώς τον ίδιο κώδικα που χρησιμοποιήθηκε για
|
||
τις επίσημες εκδόσεις της Ομάδας του FreeBSD.</para>
|
||
</sidebar>
|
||
|
||
</sect3>
|
||
|
||
<sect3 xml:id="versionbump">
|
||
<title>Αυξάνοντας τον Αριθμό Έκδοσης</title>
|
||
|
||
<para>Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική
|
||
έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν
|
||
τον σωστό αριθμό έκδοσης για το FreeBSD:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><filename>doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
|
||
</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>doc/en_US.ISO8859-1/books/porters-handbook/book.xml
|
||
</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>doc/share/xml/freebsd.ent</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/Makefile.inc1</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/UPDATING</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/gnu/usr.bin/groff/tmac/mdoc.local</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/release/Makefile</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/release/doc/en_US.ISO8859-1/share/xml/release.dsl</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/release/doc/share/examples/Makefile.relnotesng</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/release/doc/share/xml/release.ent</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/share/examples/cvsup/standard-supfile</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/sys/conf/newvers.sh</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/sys/sys/param.h</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/usr.sbin/pkg_install/add/main.c</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>www/en/docs.xml</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>www/en/cgi/ports.cgi</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>ports/Tools/scripts/release/config</filename></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της
|
||
τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση
|
||
(στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο
|
||
κορμούς stable και current):</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><filename>src/release/doc/en_US.ISO8859-1/relnotes/common/new.xml
|
||
</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/release/doc/en_US.ISO8859-1/errata/article.xml
|
||
</filename></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Η εφαρμογή <application>sysinstall</application> πρέπει επίσης να
|
||
ενημερωθεί με τον σωστό αριθμό των ports και το χώρο του δίσκου που
|
||
απαιτείται για την Συλλογή των Ports. Αυτές οι πληροφορίες υπάρχουν
|
||
στο αρχείο <filename>src/release/sysinstall/dist.c</filename>.</para>
|
||
|
||
<para>Αφού ολοκληρωθεί η προετοιμασία της νέας επίσημης έκδοσης, πρέπει
|
||
να ενημερώσετε μερικά αρχεία για να ενημερώσετε τον κόσμο για τη νέα
|
||
έκδοση του &os;.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><filename>www/en/includes.xsl</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>www/en/includes.xml</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>www/es/includes.xml</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>www/en/releases/*</filename></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>src/share/misc/bsd-family-tree</filename></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Δημιουργία των Ετικετών της Έκδοσης</title>
|
||
|
||
<para>Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα
|
||
δημιουργήσει την ετικέτα
|
||
<literal>RELENG_4_8_0_RELEASE</literal>.</para>
|
||
|
||
<screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src</userinput></screen>
|
||
|
||
<para>Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει
|
||
να δημιουργήσουν τις ετικέτες <literal>RELEASE_4_8_0</literal> στα
|
||
κατάλληλα δέντρα πηγαίου κώδικα.</para>
|
||
|
||
<para>Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές
|
||
τελευταία στιγμή <emphasis>μετά</emphasis> την τοποθέτηση των
|
||
ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το
|
||
<acronym>CVS</acronym> επιτρέπει να μετακινήσει κάποιος τις ετικέτες
|
||
με εντολές όπως <command>cvs tag -d tagname
|
||
filename</command>. Είναι πολύ σημαντικό όμως αυτές οι
|
||
αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες
|
||
για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει
|
||
να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον
|
||
του μηχανικού των εκδόσεων δεν επιτρέπονται.</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<!-- Μεταγλώττιση της Έκδοσης -->
|
||
<sect1 xml:id="release-build">
|
||
<title>Μεταγλώττιση της Έκδοσης</title>
|
||
|
||
<para>Οι <quote>εκδόσεις</quote> του FreeBSD μπορούν να μεταγλωττιστούν από
|
||
οποιονδήποτε έχει ένα σχετικά γρήγορο μηχάνημα και πρόσβαση στο repository
|
||
του πηγαίου κώδικα. (Όλοι έχουν αυτή τη δυνατότητα, αφού παρέχουμε
|
||
πρόσβαση μέσω ανώνυμου CVS! Δείτε το Εγχειρίδιο του FreeBSD για
|
||
περισσότερες λεπτομέρειες.) Η μόνη ειδική απαίτηση είναι να υπάρχει
|
||
υποστήριξη στον πυρήνα σας για την συσκευή &man.vn.4;. (Στο -CURRENT,
|
||
αυτή η συσκευή έχει αντικατασταθεί από την νέα συσκευή δίσκου βασισμένου
|
||
σε μνήμη &man.md.4;.) Αν η συσκευή δεν είναι ενσωματωμένη στον πυρήνα
|
||
σας, τότε ο κατάλληλος οδηγός θα φορτωθεί αυτόματα όταν εκτελεστεί η
|
||
εντολή &man.vnconfig.8; κατά τη διάρκεια της φάσης ετοιμασίας του μέσου
|
||
εκκίνησης. Όλα τα εργαλεία που χρειάζονται για να μεταγλωττίσετε μια
|
||
έκδοση είναι διαθέσιμα σε μορφή πηγαίου κώδικα στον κατάλογο
|
||
<filename>src/release</filename>. Αυτά τα εργαλεία έχουν ως σκοπό να
|
||
παρέχουν ότι χρειάζεται για να χτίζονται οι εκδόσεις του FreeBSD με ένα
|
||
συνεπή και συγκεκριμένο τρόπο. Μια πλήρης έκδοση μπορεί να μεταγλωττιστεί
|
||
χρησιμοποιώντας αυτά τα εργαλεία με μια και μόνο εντολή,
|
||
συμπεριλαμβανομένης και της δημιουργίας ενός <acronym>ISO</acronym>
|
||
αρχείου κατάλληλο για να καεί σε CDROM, οι δισκέττες εκκίνησης, καθώς και
|
||
ο κατάλληλος εγκατάστασης μέσω FTP. Αυτή η εντολή είναι φυσική η
|
||
<command>make release</command>.</para>
|
||
|
||
<sect2>
|
||
<title>Η εντολή <command>make release</command></title>
|
||
|
||
<para>Για να μεταγλωττίσετε επιτυχώς μια έκδοση, πρέπει πρώτα να υπάρχουν
|
||
τα κατάλληλα αρχεία μέσα στον κατάλογο <filename>/usr/obj</filename>.
|
||
Μπορείτε να τα δημιουργήσετε είτε με την εντολή <command>make
|
||
world</command> ή απλά <command>make buildworld</command>. Για να
|
||
πετύχει επίσης η μεταγλώττιση της έκδοσης πρέπει να δώσετε τις
|
||
κατάλληλες τιμές και σε κάποιες μεταβλητές:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><varname>CHROOTDIR</varname> - Ο κατάλογος που θα χρησιμοποιηθεί
|
||
σαν περιβάλλον chroot για όλη την μεταγλώττιση της έκδοσης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><varname>BUILDNAME</varname> - Το όνομα της έκδοσης που θα
|
||
μεταγλωττίσετε.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><varname>CVSROOT</varname> - Ο κατάλογος στον οποίο βρίσκεται το
|
||
CVS repository.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><varname>RELEASETAG</varname> - Η ετικέτα CVS που αντιστοιχεί
|
||
στην έκδοση την οποία θέλετε να μεταγλωττίσετε.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Αν δεν έχετε ήδη πρόσβαση σε κάποιο τοπικό CVS repository με τον
|
||
κώδικα του FreeBSD, μπορείτε πάντα να φτιάξετε το δικό σας τοπικό CVS
|
||
mirror με το <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/synching.html#CVSUP">CVSup</link>.
|
||
Υπάρχει ένα supfile, στο αρχείο
|
||
<filename>/usr/share/examples/cvsup/cvs-supfile</filename>,
|
||
το οποίο μπορείτε να χρησιμοποιήσετε για να αντιγράψετε το CVS
|
||
repository του FreeBSD στο δικό σας τοπικό mirrror.</para>
|
||
|
||
<para>Αν παραλείψετε την ετικέτα <varname>RELEASETAG</varname>, τότε θα
|
||
μεταγλωττιστεί μια πλήρης έκδοση από την κορυφή του
|
||
<literal>HEAD</literal> (δηλ. του -CURRENT) κορμού. Οι εκδόσεις που
|
||
φτιάχνονται από αυτόν τον κορμό, συνήθως αναφέρονται σαν <quote>-CURRENT
|
||
snapshots</quote>.</para>
|
||
|
||
<para>Υπάρχουν και πολλές άλλες μεταβλητές που μπορούν να χρησιμοποιηθούν
|
||
για να παραμετροποιήσετε την έκδοσή σας. Οι πιο πολλές από αυτές τις
|
||
μεταβλητές περιγράφονται στην κορυφή του αρχείου
|
||
<filename>src/release/Makefile</filename>. Η ακριβής εντολή που
|
||
χρησιμοποιήθηκε για να φτιαχτεί η επίσημη έκδοση 4.7 του FreeBSD
|
||
(x86 πλατφόρμα) ήταν:</para>
|
||
|
||
<screen><command>make release CHROOTDIR=/local3/release \
|
||
BUILDNAME=4.7-RELEASE \
|
||
CVSROOT=/host/cvs/usr/home/ncvs \
|
||
RELEASETAG=RELENG_4_7_0_RELEASE</command></screen>
|
||
|
||
<para>Το <filename>Makefile</filename> που χρησιμοποιείται για να
|
||
μεταγλωττίζονται οι εκδόσεις μπορεί να χωριστεί σε αρκετά ξεχωριστά
|
||
μεταξύ τους βήματα.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Δημιουργία ενός καθαρού περιβάλλοντος σε μια ξεχωριστή ιεραρχία
|
||
καταλόγων με την εντολή <quote><command>make
|
||
installworld</command></quote>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Εξαγωγή από το CVS μιας καινούριας έκδοσης του πηγαίου κώδικα
|
||
του συστήματος, της τεκμηρίωσης και των ports μέσα στην ιεραρχία
|
||
καταλόγων μεταγλώττισης της έκδοσης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ρυθμίσεις των αρχείων στον κατάλογο <filename>/etc</filename>
|
||
και <filename>/dev</filename> μέσα στο περιβάλλον chroot.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Εκτέλεση της εντολής <command>chroot</command> μέσα στην
|
||
ιεραρχία καταλόγων που ετοιμάστηκε, για να μην μπορεί το εξωτερικό
|
||
περιβάλλον να επηρεάσει τη μεταγλώττιση της έκδοσης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Εκτέλεση της εντολής <command>make world</command> μέσα στο
|
||
περιβάλλον chroot.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μεταγλώττιση των εκτελέσιμων που είναι σχετικά με το σύστημα
|
||
Kerberos.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μεταγλώττιση του πυρήνα <filename>GENERIC</filename>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δημιουργία ενός τελικού καταλόγου στον οποίο θα μεταγλωττιστούν
|
||
και θα αποθηκευθούν οι εκτελέσιμες μορφές των τελικών
|
||
πακέτων.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μεταγλώττιση και εγκατάσταση των εργαλείων που χρειάζονται για
|
||
την προετοιμασία της έκδοσης και τη μετατροπή της τεκμηρίωσης από
|
||
τον πηγαίο κώδικα (SGML) σε html και αρχεία κειμένου που θα
|
||
συνοδεύουν την έκδοση.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μετατροπή και εγκατάσταση της τεκμηρίωσης (εγχειρίδια χρήστη,
|
||
εισαγωγικά κείμενα, σημειώσεις έκδοσης, λίστες συμβατότηταςς υλικού,
|
||
κλπ.)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μεταγλώττιση των <quote>συμπιεσμένων</quote> (crunched)
|
||
εκτελέσιμων που θα χρησιμοποιηθούν στις δισκέττες
|
||
εγκατάστασης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δημιουργία των πακέτων της εγκατάστασης και των πακέτων πηγαίου
|
||
κώδικα.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δημιουργία των μέσων εκκίνησης και της δισκέττας
|
||
<quote>fixit</quote>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δημιουργία της ιεραρχίας καταλόγων για την εγκατάσταση μέσω
|
||
FTP.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>(προαιρετικά)</emphasis> Δημιουργία των ISO αρχείων
|
||
για μέσα CDROM/DVD media.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Για περισσότερες πληροφορίες σχετικά με την διαδικασία δημιουργίας
|
||
μιας έκδοσης, δείτε την σελίδα τεκμηρίωσης &man.release.7;.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Μεταγλώττιση των <application>XFree86</application></title>
|
||
|
||
<para>Το γραφικό περιβάλλον <application>XFree86</application> είναι ένα σημαντικό κομμάτι κάθε
|
||
έκδοσης για πολλούς χρήστες που θέλουν το FreeBSD για σταθμούς εργασίας.
|
||
Πριν την έκδοση 4.6-RELEASE του FreeBSD, οι επίσημες εκδόσεις του
|
||
FreeBSD χρησιμοποιούσαν την έκδοση 3.<replaceable>X</replaceable> των
|
||
<application>XFree86</application>.
|
||
Ο πιο εύκολος τρόπος να μεταγλωττίσετε αυτές τις εκδόσεις είναι να
|
||
χρησιμοποιήσετε το πρόγραμμα
|
||
<filename>src/release/scripts/X11/build_x.sh</filename>.
|
||
Αυτό το πρόγραμμα απαιτεί να είναι ήδη στημένα στο σύστημά σας τόσο το
|
||
περιβάλλον XFree86 όσο και η γλώσσα Tcl/Tk. Μετά την μεταγλώττιση των
|
||
κατάλληλων X servers, το πρόγραμμα θα πακετάρει όλα τα αρχεία σε
|
||
συλλογές αρχείων που περιμένει να βρει το &man.sysinstall.8; μέσα στον
|
||
κατάλογο <filename>XF86336</filename> στο μέσο εγκατάστασης.</para>
|
||
|
||
<para>Ξεκινώντας με την έκδοση 4.6-RELEASE του FreeBSD, το
|
||
&man.sysinstall.8; εγκαθιστά την έκδοση 4.<replaceable>X</replaceable>
|
||
των XFree86, σαν κανονικά πακέτα. Αυτά μπορεί να είναι είτε τα πακέτα
|
||
που δημιούργησε το cluster των ports ή οποιαδήποτε άλλα πακέτα που έχουν
|
||
δημιουργηθεί από ένα ports tree με την κατάλληλη ετικέτα.</para>
|
||
|
||
<note><para>Είναι πολύ σημαντικό να αφαιρέσετε από το αρχείο
|
||
<filename>/etc/make.conf</filename> οποιεσδήποτε τοπικές ρυθμίσεις έχετε
|
||
κάνει. Για παράδειγμα, δεν είναι καλή ιδέα να διανέμετε εκτελέσιμα που
|
||
έχουν μεταγλωττιστεί σε κάποιο συγκεκριμένο σύστημα με ορισμένη την τιμή
|
||
της μεταβλητής <varname>CPUTYPE</varname> για βελτιστοποίηση των
|
||
εκτελέσιμων για κάποιο συγκεκριμένο επεξεργαστή.</para></note>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Προγράμματα Τρίτων (<quote>ports</quote>)</title>
|
||
|
||
<para>Η <link xlink:href="http://www.FreeBSD.org/ports">Συλλογή των Ports του
|
||
FreeBSD</link> είναι μια συλλογή με περισσότερα από &os.numports;
|
||
προγράμματα από τρίτους, που είναι διαθέσιμα για FreeBSD. Οι &a.portmgr;
|
||
είναι υπεύθυνοι για την συντήρηση ενός δέντρου από πηγαίο κώδικα για τα
|
||
ports, που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν τα πακέτα με τα
|
||
προγράμματα που συνοδεύουν τις επίσημες εκδόσεις του FreeBSD.</para>
|
||
|
||
<para>Η διαδικασία συντήρησης της συλλογής των ports είναι κάτι που δεν
|
||
μπορούμε να καλύψουμε εδώ. Ένα ξεχωριστό άρθρο, με τίτλο &art.re.pkgs;,
|
||
καλύπτει αυτό το θέμα.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Αρχεία ISO της Έκδοσης</title>
|
||
|
||
<para>Ξεκινώντας με την έκδοση 4.4 του FreeBSD, η Ομάδα Ανάπτυξης του
|
||
FreeBSD αποφάσισε να διανέμει και τα τέσσερα ISO αρχεία που πρώτα
|
||
πουλούσαν οι εταιρείες <emphasis>BSDi/Wind River Systems/FreeBSD
|
||
Mall</emphasis> στις <quote>επίσημες</quote> διανομές CDROM που έκαναν.
|
||
Κάθε ένα από τα τέσσερα ISO αρχεία πρέπει να περιέχει ένα αρχείο
|
||
<filename>README.TXT</filename> που περιγράφει τα περιεχόμενα του
|
||
δίσκου, κι ένα αρχείο <filename>CDROM.INF</filename> που περιέχει
|
||
μετα-πληροφορίες για να μπορεί το πρόγραμμα &man.sysinstall.8; να
|
||
ελέγξει και να χρησιμοποιήσει αυτό το δίσκο, καθώς κι ένα αρχείο
|
||
<filename>filename.txt</filename> που παρέχει μια λίστα αρχείων του
|
||
CDROM. Αυτή η λίστα μπορεί να δημιουργηθεί πολύ απλά, ως εξής:</para>
|
||
|
||
<screen>/stage/cdrom&prompt.root; <userinput>find . -type f | sed -e 's/^\.\///' | sort > filename.txt</userinput></screen>
|
||
|
||
<para>Οι συγκεκριμένες απαιτήσεις για κάθε ένα από αυτά τα CD
|
||
περιγράφονται παρακάτω:</para>
|
||
|
||
<sect3>
|
||
<title>Δίσκος 1</title>
|
||
|
||
<para>Ο πρώτος δίσκος είναι σχεδόν αποκλειστικά αποτέλεσμα της εντολής
|
||
<command>make release</command>. Οι μόνες αλλαγές που πρέπει να
|
||
γίνουν στον κατάλογο <filename>disc1</filename> είναι η προσθήκη του
|
||
κατάλογου <filename>tools</filename>, των <application>XFree86</application>, και όσο το δυνατόν
|
||
περισσότερων πακέτων μπορούν να χωρέσουν στο δίσκο. Ο κατάλογος
|
||
<filename>tools</filename> περιέχει εργαλεία που επιτρέπουν σε χρήστες
|
||
άλλων λειτουργικών συστημάτων να φτιάξουν τις δισκέττες εκκίνησης.
|
||
Αυτός ο πρώτος δίσκος πρέπει να φτιάχνεται bootable έτσι ώστε να
|
||
μπορούν οι χρήστες των μοντέρνων υπολογιστών να αποφεύγουν το στάδιο
|
||
δημιουργίας των δισκεττών εκκίνησης.</para>
|
||
|
||
<para>Αν μια διαφορετική έκδοση των XFree86 θα διανέμεται με την έκδοση
|
||
αυτή, πρέπει να ενημερωθεί το πρόγραμμα &man.sysinstall.8; για την νέα
|
||
θέση και οι οδηγίες εγκατάστασης. Ο σχετικός κώδικας υπάρχει στον
|
||
κατάλογο <filename>src/release/sysinstall</filename> στον -STABLE
|
||
κορμό ή στον κατάλογο <filename>src/usr.sbin/sysinstall</filename>
|
||
στον -CURRENT κορμό. Συγκεκριμένα, τα αρχεία
|
||
<filename>dist.c</filename>, <filename>menus.c</filename>, και
|
||
<filename>config.c</filename> θα χρειαστεί να ενημερωθούν.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Δίσκος 2</title>
|
||
|
||
<para>Ο δεύτερος δίσκος είναι επίσης αποτέλεσμα της εντολής
|
||
<command>make release</command> κατά ένα μεγάλο μέρος. Αυτός ο δίσκος
|
||
περιέχει ένα <quote>live filesystem</quote> που μπορεί να χρησιμοποιηθεί
|
||
από το &man.sysinstall.8; για να εξεταστούν προβλήματα σε μια
|
||
εγκατάσταση του FreeBSD. Κι αυτός ο δίσκος πρέπει να είναι bootable.
|
||
Θα πρέπει επίσης να περιέχει ένα συμπιεσμένο αντίγραφο του CVS
|
||
repository στον κατάλογο <filename>CVSROOT</filename> και δείγματα από
|
||
εμπορικά προγράμματα στον κατάλογο <filename>commerce</filename>.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Δίσκοι 3 και 4</title>
|
||
|
||
<para>Οι υπόλοιποι δυο δίσκοι περιέχουν επιπρόσθετα πακέτα λογισμικού
|
||
για το FreeBSD. Τα πακέτα θα πρέπει να είναι ομαδοποιημένα, έτσι ώστε
|
||
κάθε πακέτο να είναι στον ίδιο δίσκο με όλα τα πακέτα από τα οποία
|
||
εξαρτάται για να εγκατασταθεί και να τρέξει. Περισσότερες πληροφορίες
|
||
για την δημιουργία αυτών των δίσκων αναφέρονται στο άρθρο
|
||
&art.re.pkgs;.</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<!-- Διανομή των Εκδόσεων -->
|
||
<sect1 xml:id="distribution">
|
||
<title>Διανομή των Εκδόσεων</title>
|
||
|
||
<sect2 xml:id="dist-ftp">
|
||
<title>Εξυπηρετητές FTP</title>
|
||
|
||
<para>Όταν η έκδοση είναι έτοιμη, έχει δοκιμαστεί εκτενώς, και έχει
|
||
πακεταριστεί για διανομή, ο κύριος FTP εξυπηρετητής πρέπει να
|
||
ενημερωθεί. Οι επίσημοι εξυπηρετητές FTP του FreeBSD είναι όλοι mirrors
|
||
ενός κύριου εξυπηρετητή στον οποίο έχουν πρόσβαση μόνο άλλοι FTP
|
||
εξυπηρετητές. Αυτός ο εξυπηρετητής είναι γνωστός ως
|
||
<systemitem>ftp-master</systemitem>. Όταν η έκδοση είναι έτοιμη, πρέπει να
|
||
ενημερωθούν τα παρακάτω αρχεία στον <systemitem>ftp-master</systemitem>:</para>
|
||
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/index.html</filename></term>
|
||
<listitem>
|
||
<para>Μια απλή web σελίδα που περιέχει δείκτες σε διάφορους
|
||
σημαντικούς FTP καταλόγους για την τρέχουσα έκδοση του
|
||
FreeBSD.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/</filename></term>
|
||
<listitem>
|
||
<para>Ο κατάλογος από τον οποίο μπορούν να γίνουν εγκαταστάσεις μέσω
|
||
FTP, όπως τον έχει προετοιμάσει η εντολή <command>make
|
||
release</command>.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/ports/arch/packages/packages-X.Y-release/</filename></term>
|
||
<listitem>
|
||
<para>Όλα τα προμεταγλωττισμένα πακέτα για την τρέχουσα έκδοση.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/tools</filename></term>
|
||
<listitem>
|
||
<para>Μια συμβολική συντόμευση για τον κατάλογο
|
||
<filename>../../../tools</filename>.</para></listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/packages</filename></term>
|
||
<listitem>
|
||
<para>Μια συμβολική συντόμευση για τον κατάλογο
|
||
<filename>../../../ports/i386/packages-X.Y-release</filename>.</para></listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><filename>/pub/FreeBSD/releases/arch/ISO-IMAGES/X.Y/X.Y-*.iso</filename></term>
|
||
<listitem>
|
||
<para>Τα αρχεία ISO.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>Για περισσότερες πληροφορίες σχετικά με την οργάνωση των mirror
|
||
διανομής FTP του FreeBSD, παρακαλώ δείτε το άρθρο <link xlink:href="../hubs/">Φτιάχνοντας ένα FreeBSD mirror</link>.</para>
|
||
|
||
<para>Μπορεί να πάρει αρκετές ώρες από την στιγμή που θα ενημερωθεί ο
|
||
<systemitem>ftp-master</systemitem> μέχρι να ενημερωθούν στην πλειοψηφία τους τα
|
||
πρώτου επιπέδου FTP mirror με την νέα έκδοση. Επιβάλλεται οι υπεύθυνοι
|
||
έκδοσης να συνεννοηθούν με την &a.hubs; πριν ανακοινώσουν την γενική
|
||
διαθεσιμότητα της νέας έκδοσης στους εξυπηρετητές FTP.</para>
|
||
</sect2>
|
||
|
||
<sect2 xml:id="dist-cdrom">
|
||
<title>Μαζική Αναπαραγωγή των CD-ROM</title>
|
||
|
||
<para>Θα συμπληρωθεί σύντομα: Συμβουλές για την αποστολή των ISO αρχείων
|
||
του FreeBSD σε κάποιον που μπορεί να κάνει μαζική αναπαραγωγή, και μέτρα
|
||
ελέγχου ποιότητας που μπορούν να παρθούν.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<!-- Επεκτασιμότητα -->
|
||
<sect1 xml:id="extensibility">
|
||
<title>Επεκτασιμότητα</title>
|
||
|
||
<para>Παρόλο που το FreeBSD είναι ένα πλήρες λειτουργικό σύστημα, δεν
|
||
υπάρχει κάτι που να σας αναγκάζει να χρησιμοποιήσετε το σύστημα ακριβώς
|
||
όπως το έχουμε πακετάρει εμείς για διανομή. Έχουμε προσπαθήσει να
|
||
σχεδιάσουμε το σύστημα έτσι που να είναι όσο το δυνατόν πιο επεκτάσιμο,
|
||
για να είναι εύκολο να χρησιμοποιηθεί σαν βάση πάνω στην οποία άλλα
|
||
εμπορικά προϊόντα να μπορούν να στηριχθούν. Ο μόνος
|
||
<quote>κανόνας</quote> που έχουμε σχετικά με αυτό είναι πως αν σχεδιάζετε
|
||
να διανείμετε το FreeBSD με μεγάλης κλίμακας αλλαγές, σας ενθαρρύνουμε να
|
||
τεκμηριώσετε τις αλλαγές σας. Η κοινότητα του FreeBSD μπορεί μόνο να
|
||
βοηθήσει στην υποστήριξη αυτών που χρησιμοποιούν το λογισμικό ακριβώς όπως
|
||
το διανέμουμε εμείς. Ενθαρρύνουμε και δεχόμαστε κάθε αλλαγή που προωθεί
|
||
την ανάπτυξη πιο εξελιγμένων εργαλείων εγκατάστασης και διαχείρισης, για
|
||
παράδειγμα, αλλά δεν θα πρέπει να περιμένει κανείς να μπορούμε να
|
||
απαντήσουμε και ερωτήσεις σχετικά με κάτι τέτοιο.</para>
|
||
|
||
<sect2>
|
||
<title>Δημιουργία Προσαρμοσμένων Δισκεττών Εκκίνησης.</title>
|
||
|
||
<para>Πολλές εγκαταστάσεις έχουν πολύπλοκες απαιτήσεις που μπορεί με τη
|
||
σειρά τους να απαιτούν την προσθήκη περισσότερων οδηγών ή εργαλείων
|
||
χρήστη στις δισκέττες εγκατάστασης. Ο <quote>μπακάλικος</quote> τρόπος
|
||
να το κάνετε αυτό είναι να κάνετε τις αλλαγές σας στον κατάλογο που έχει
|
||
ετοιμάσει μετά το τέλος της η διαδικασία
|
||
<command>make release</command>:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Περάστε τα patches σας ή προσθέστε τα επιπλέον αρχεία μέσα στον
|
||
κατάλογο chroot της έκδοσης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><command>rm ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]</command></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μεταγλωττίστε πάλι το &man.sysinstall.8;, τον πυρήνα, ή όποια
|
||
άλλα προγράμματα έχουν επηρεαστεί από τις αλλαγές σας.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><command>chroot ${CHROOTDIR} ./mk floppies</command></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Οι νέες δισκέττες εγκατάστασης θα δημιουργηθούν στον κατάλογο
|
||
<filename>${CHROOTDIR}/R/stage/floppies</filename>.</para>
|
||
|
||
<para>Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το make target
|
||
<filename>boot.flp</filename>, ή μπορείτε να τρέξετε απευθείας το script
|
||
που δημιουργεί τα συστήματα αρχείων
|
||
<filename>src/release/scripts/doFS.sh</filename>.</para>
|
||
|
||
<para>Μπορείτε επίσης να κανονίσετε ώστε δικές σας αλλαγές να περαστούν με
|
||
μορφή patch στην έκδοση όπως θα φτιάχνεται, δίνοντας τιμή στην μεταβλητή
|
||
<varname>LOCAL_PATCH</varname> όταν τρέξετε την εντολή <command>make
|
||
release</command>.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Προγραμματίζοντας το <command>sysinstall</command></title>
|
||
|
||
<para>Το εργαλείο εγκατάστασης και ρύθμισης του FreeBSD, το
|
||
&man.sysinstall.8;, μπορεί να προγραμματιστεί για να κάνει
|
||
πιο εύκολες τις αυτοματοποιημένες εγκαταστάσεις σε πολλά μηχανήματα.
|
||
Αυτό το χαρακτηριστικό του προγράμματος μπορεί να χρησιμοποιηθεί σε
|
||
συνδυασμό με το PXE[13] της Intel για να ξεκινήσει η εγκατάσταση από το
|
||
δίκτυο, ή σε συνδυασμό με προσαρμοσμένες δισκέττες εκκίνησης κι ένα
|
||
sysinstall script. Ένα παράδειγμα από τέτοιο sysinstall script μπορείτε
|
||
να βρείτε στο αρχείο
|
||
<filename>src/release/sysinstall/install.cfg</filename>.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<!-- Μαθήματα που Πήραμε -->
|
||
<sect1 xml:id="lessons-learned">
|
||
<title>Μαθήματα που Πήραμε από την Έκδοση 4.4 του FreeBSD</title>
|
||
|
||
<para>Η διαδικασία ετοιμασίας της έκδοσης 4.4 του FreeBSD ξεκίνησε επίσημα
|
||
την 1η Αυγούστου 2001. Μετά από αυτή την ημερομηνία, όλες οι αλλαγές στον
|
||
κορμό <literal>RELENG_4</literal> του FreeBSD έπρεπε να έχουν έγκριση από
|
||
την &a.re;. Η πρώτη δοκιμαστική έκδοση για την αρχιτεκτονική x86 έγινε
|
||
διαθέσιμη στις 16 Αυγούστου, κι ακολουθήθηκε από 4 ακόμα δοκιμαστικές
|
||
εκδόσεις που οδήγησαν στην τελική έκδοση στις 18 του Σεπτέμβρη.
|
||
Ο υπεύθυνος ασφάλειας έπαιξε σημαντικό ρόλο κατά την διάρκεια της
|
||
τελευταίας εβδομάδας καθώς κάποια προβλήματα ασφάλειας βρέθηκαν σε
|
||
προηγούμενες, δοκιμαστικές εκδόσεις. Συνολικά, πάνω από
|
||
<emphasis>500</emphasis> email στάλθηκαν στην &a.re; σε διάστημα μικρότερο
|
||
από ένα μήνα.</para>
|
||
|
||
<para>Η κοινότητα των χρηστών μας έκανε σαφές ότι η ασφάλεια και η
|
||
σταθερότητα μιας έκδοσης δεν θά 'πρεπε να θυσιάζεται για κανενός είδους
|
||
προθεσμίες ή ημερομηνίες που έχουν τεθεί σαν στόχοι από πριν. Το FreeBSD
|
||
έχει μεγαλώσει δραματικά κατά τη διάρκεια της ζωής του σαν σύστημα, και η
|
||
ανάγκη για συγκεκριμένη πολιτική και οργάνωση για την δημιουργία νέων
|
||
εκδόσεων είναι πλέον φανερή περισσότερο από ποτέ. Αυτή η ανάγκη θα γίνει
|
||
ακόμα πιο σημαντική καθώς το FreeBSD θα αρχίσει να μεταφέρεται σε νέες
|
||
πλατφόρμες.</para>
|
||
</sect1>
|
||
|
||
<!-- Μελλοντικές Κατευθύνσεις -->
|
||
<sect1 xml:id="future">
|
||
<title>Μελλοντικές Κατευθύνσεις</title>
|
||
|
||
<para>Είναι ζωτικής σημασίας οι πρακτικές και η οργάνωση της διαδικασίας
|
||
δημιουργίας των εκδόσεών μας να συμβαδίζουν με την συνεχώς αυξανόμενη βάση
|
||
των χρηστών μας. Με βάση αυτή τη σκέψη εργαζόμαστε σκληρά για να
|
||
τεκμηριώσουμε την διαδικασία παραγωγής των εκδόσεων του FreeBSD.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><emphasis>Παράλληλη εκτέλεση</emphasis> - Μερικά μέρη της
|
||
μεταγλώττισης μιας εγκατάστασης μπορούν να γίνουν <quote>πολύ
|
||
παράλληλα</quote>. Τα πιο πολλά από τα στάδια είναι
|
||
I/O intensive, οπότε η ύπαρξη πολλών υψηλής-ταχύτητας δίσκων
|
||
είναι πιο σημαντική από τηνν χρήση πολλών επεξεργαστών για να
|
||
επιταχυνθεί κάπως η διαδικασία του <command>make release</command>.
|
||
Αν διαφορετικοί δίσκοι χρησιμοποιηθούν για τμήματα της ιεραρχίας του
|
||
&man.chroot.2; περιβάλλοντος, τότε το CVS checkout των καταλόγων
|
||
<filename>ports</filename> και <filename>doc</filename> μπορεί να
|
||
γίνει ταυτόχρονα με την εντολή <command>make world</command> στον άλλο
|
||
δίσκο. Χρησιμοποιώντας μια <acronym>RAID</acronym> λύση (hardware ή
|
||
software) μπορεί να μειώσει δραστικά τον συνολικό χρόνο που
|
||
χρειάζεται να μεταγλωττιστεί μια πλήρης έκδοση.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>Μεταγλώττιση εκδόσεων για διαφορετικές
|
||
αρχιτεκτονικές</emphasis> - Θέλετε να μεταγλωττίσετε μια έκδοση για
|
||
IA-64 ή Alpha σε κάποιον x86 επεξεργαστή? <command>make
|
||
TARGET=ia64 release</command>.
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>Δοκιμές για λάθη</emphasis> - Χρειαζόμαστε καλύτερα
|
||
εργαλεία για αυτόματο έλεγχο ορθότητας στο FreeBSD.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>Εργαλεία Εγκατάστασης</emphasis> - Το πρόγραμμά μας για
|
||
την εγκατάσταση του FreeBSD έχει ξεπεράσει προ πολλού τον αναμενόμενο
|
||
χρόνο ζωής του. Υπάρχουν διάφορες ομάδες που εργάζονται για να
|
||
υλοποιήσουν κάποιον άλλο, πιο μοντέρνο μηχανισμό εγκατάστασης. Μια
|
||
από τις πιο υποσχόμενες, είναι η ομάδα libh[5] που στοχεύει στην
|
||
υλοποίηση ενός έξυπνου, νέου τρόπου πακεταρίσματος λογισμικού και ενός
|
||
GUI προγράμματος εγκατάστασης.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect1>
|
||
|
||
<!-- Ευχαριστίες -->
|
||
<sect1 xml:id="ackno">
|
||
<title>Ευχαριστίες</title>
|
||
|
||
<para>Θα ήθελα να ευχαριστήσω τον Jordan Hubbard, που μου έδωσε την ευκαιρία
|
||
να πάρω κάποια από την ευθύνη της έκδοσης 4.4 του FreeBSD, καθώς και για
|
||
όλη την δουλειά που έχει κάνει εδώ και χρόνια για να είναι το FreeBSD αυτό
|
||
που είναι σήμερα. Φυσικά, η έκδοση δεν θα ήταν ποτέ δυνατόν να
|
||
ολοκληρωθεί χωρίς όλη την σχετική με την έκδοση δουλειά που έκαναν οι
|
||
&a.asami;, &a.steve;, &a.bmah;, &a.nik;, &a.obrien;, &a.kris;, &a.jhb; και
|
||
όλοι οι υπόλοιποι που ασχολούνται με την ανάπτυξη του FreeBSD. Θέλω
|
||
επίσης να ευχαριστήσω τους &a.rgrimes;, &a.phk;, και όλους τους άλλους που
|
||
εργάστηκαν για να φτιάξουν τα εργαλεία για τις εκδόσεις στις πρώτες μέρες
|
||
της δημιουργίας του FreeBSD. Αυτό το άρθρο έχει επηρεαστεί από κείμενα
|
||
σχετικά με την οργάνωση των εκδόσεων από το CSRG[14], την Ομάδα του
|
||
NetBSD[11], και την πρόταση για μια διαδικασία οργάνωσης των εκδόσεων του
|
||
John Baldwin[12].</para>
|
||
</sect1>
|
||
|
||
<!-- Αναφορές / Biblio Section -->
|
||
<sect1 xml:id="biblio">
|
||
<title>Αναφορές</title>
|
||
|
||
<para>[1] CVS - Concurrent Versions System
|
||
<uri xlink:href="http://www.cvshome.org">http://www.cvshome.org</uri></para>
|
||
|
||
<para>[2] CVSup - The CVS-Optimized General Purpose Network File Distribution
|
||
System <uri xlink:href="http://www.polstra.com/projects/freeware/CVSup">http://www.polstra.com/projects/freeware/CVSup</uri></para>
|
||
|
||
<para>[3] <uri xlink:href="http://bento.FreeBSD.org">http://bento.FreeBSD.org</uri></para>
|
||
|
||
<para>[4] FreeBSD Ports Collection
|
||
<uri xlink:href="http://www.FreeBSD.org/ports">http://www.FreeBSD.org/ports</uri></para>
|
||
|
||
<para>[5] The libh Project
|
||
<uri xlink:href="http://www.FreeBSD.org/projects/libh.html">http://www.FreeBSD.org/projects/libh.html</uri></para>
|
||
|
||
<para>[6] FreeBSD Committers <uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html</uri></para>
|
||
|
||
<para>[7] FreeBSD Core-Team
|
||
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html</uri></para>
|
||
|
||
<para>[8] FreeBSD Handbook
|
||
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook">http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook</uri></para>
|
||
|
||
<para>[9] GNATS: The GNU Bug Tracking System
|
||
<uri xlink:href="http://www.gnu.org/software/gnats">http://www.gnu.org/software/gnats</uri></para>
|
||
|
||
<para>[10] FreeBSD PR Statistics
|
||
<uri xlink:href="http://www.FreeBSD.org/prstats/index.html">http://www.FreeBSD.org/prstats/index.html</uri></para>
|
||
|
||
<para>[11] NetBSD Developer Documentation: Release Engineering
|
||
<uri xlink:href="http://www.NetBSD.org/developers/releng/index.html">http://www.NetBSD.org/developers/releng/index.html</uri></para>
|
||
|
||
<para>[12] John Baldwin's FreeBSD Release Engineering Proposal
|
||
<uri xlink:href="http://people.FreeBSD.org/~jhb/docs/releng.txt">http://people.FreeBSD.org/~jhb/docs/releng.txt</uri></para>
|
||
|
||
<para>[13] PXE Jumpstart Guide
|
||
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html</uri></para>
|
||
|
||
<para>[14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic:
|
||
<link xlink:href="http://docs.FreeBSD.org/44doc/papers/releng.html"><emphasis>The Release Engineering of 4.3BSD</emphasis></link></para>
|
||
</sect1>
|
||
</article>
|