diff options
Diffstat (limited to 'el_GR.ISO8859-7/articles/releng-packages/article.sgml')
-rw-r--r-- | el_GR.ISO8859-7/articles/releng-packages/article.sgml | 372 |
1 files changed, 0 insertions, 372 deletions
diff --git a/el_GR.ISO8859-7/articles/releng-packages/article.sgml b/el_GR.ISO8859-7/articles/releng-packages/article.sgml deleted file mode 100644 index 3f4906bf56..0000000000 --- a/el_GR.ISO8859-7/articles/releng-packages/article.sgml +++ /dev/null @@ -1,372 +0,0 @@ -<!-- - The FreeBSD Documentation Project - Original version: 1.6 ---> - -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//EN"> -%teams; -<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN"> -%freebsd; -<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN"> -%authors; -]> - -<article lang="el"> - <title>Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους του - FreeBSD</title> - - <articleinfo> - <authorgroup> - <author> - <firstname>Steve</firstname> - <surname>Price</surname> - <affiliation> - <address><email>steve@FreeBSD.org</email></address> - </affiliation> - </author> - </authorgroup> - - <pubdate>$FreeBSD$</pubdate> - - <abstract> - <para>Αυτό το άρθρο περιγράφει την προσέγγιση της ομάδας οργάνωσης των - επίσημων εκδόσεων του FreeBSD για την παραγωγή μιας υψηλής ποιότητας - συλλογής πακέτων για τα επίσημα μέσα εγκατάστασης του FreeBSD (CD-ROM - αυτή τη στιγμή). Αυτό το κείμενο αποτελεί μέρος μιας δουλειάς που - βρίσκεται σε εξέλιξη, μα όταν τελικά ολοκληρωθεί θα περιγράφει την - διαδικασία που χρησιμοποιείται για την μεταγλώττιση της συλλογής των - πακέτων στο "Ports Cluster" του FreeBSD.org, πως μπορούν να ρυθμιστούν - οποιαδήποτε άλλα μηχανήματα για να χρησιμοποιηθούν με τον ίδιο τρόπο, - πως να χωριστούν τα πακέτα σε ομάδες στα μέσα της εγκατάστασης, καθώς - και πως μπορούν να γίνουν έλεγχοι στο σύνολο των πακέτων.</para> - </abstract> - - </articleinfo> - - <sect1 id="portbuild"> - <title>Μεταγλώττιση των πακέτων από την Συλλογή των Ports</title> - - <para>Η <ulink url="http://www.FreeBSD.org/ports">Συλλογή των Ports του - FreeBSD</ulink> αποτελείται από περισσότερα από &os.numports; - προγράμματα, γραμμένα από τρίτους, που είναι διαθέσιμα για χρήση στο - FreeBSD. Οι &a.portmgr; είναι υπεύθυνοι για την συντήρηση ενός - ολοκληρωμένου δέντρου πηγαίου κώδικα που μπορεί να χρησιμοποιηθεί για να - δημιουργηθούν μεταγλωττισμένα πακέτα, τα οποία θα συνοδεύουν κάθε - επίσημη έκδοση του FreeBSD.</para> - - <sect2> - <title>Το Cluster των Ports</title> - - <para>Για να είμαστε σίγουροι ότι κάθε πακέτο δεν έχει προβλήματα όταν - δίνεται μαζί με κάποια επίσημη έκδοση του FreeBSD, κάθε port - μεταγλωττίζεται σε ένα ξεχωριστό περιβάλλον chroot, ξεκινώντας με - άδειους τους καταλόγους <filename>/usr/local</filename> και - <filename>/usr/X11R6</filename>. Τα προαπαιτούμενα πακέτα - εγκαθίστανται σαν προμεταγλωττισμένα πακέτα πριν ξεκινήσει η - μεταγλώττιση. Αυτές οι προϋποθέσεις είναι που ενισχύουν την - <emphasis>ομοιομορφία</emphasis> στην διαδικασία μεταγλώττισης του - κάθε πακέτου. Ξεκινώντας τη μεταγλώττιση κάθε πακέτου σε ένα καθαρό - περιβάλλον, μπορούμε να ελέγξουμε ότι τα συνοδευτικά δεδομένα κάθε - πακέτου (όπως η λίστα με τα προαπαιτούμενα πακέτα) είναι ακριβή, κι - έτσι δεν θα δημιουργήσουμε ποτέ πακέτα που μπορεί σε κάποια συστήματα - να δουλεύουν και σε άλλα όχι ανάλογα με τα προγράμματα που έχουν - εγκατασταθεί πριν.</para> - - <para>Το <quote>Cluster των Ports</quote> για την αρχιτεκτονική x86 - αποτελείται αυτή τη στιγμή από ένα κύριο κόμβο (Dual Pentium III - στα 733MHz) και 8 δευτερεύοντες κόμβους (Pentium III στα 800MHz), οι - οποίοι κάνουν την μεταγλώττιση των πακέτων. Με αυτά τα μηχανήματα, - μια μεταγλώττιση όλων των ports παίρνει πάνω από 24 ώρες. Αυτά τα - μηχανήματα είναι co-located μαζί με τα άλλα μηχανήματα της ομάδας του - FreeBSD στον χώρο Exodus του Yahoo, στην Santa Clara, CA.</para> - - <para>To <quote>Cluster των Ports</quote> για την αρχιτεκτονική Alpha - αποτελείται από 7 PWS 500A μηχανήματα, τα οποία χάρισε η Compaq. - Είναι κι αυτά co-located στους χώρους του Yahoo.</para> - </sect2> - </sect1> - - <sect1> - <title>Ο Διαχωρισμός των Πακέτων</title> - - <para>Το συνολικό μέγεθος των πακέτων ξεπέρασε τα 4.1 gigabytes για την - έκδοση 4.4 του FreeBSD. Αυτό είναι λίγο πρόβλημα όμως για τις διανομές - που είναι βασισμένες σε CDROM, γιατί γενικά θέλουμε να μπορούμε να - διανέμουμε όσο το δυνατόν περισσότερα πακέτα χωρίς όμως να αναγκάζουμε - τον χρήστη να αλλάζει δισκάκια για να ικανοποιήσει τις απαιτήσεις - εγκατάστασης των πακέτων. Η λύση είναι φυσικά να φτιάξουμε - <quote>ομάδες</quote> από πακέτα με αντίστοιχη λειτουργικότητα που έχουν - παρόμοιες απαιτήσεις, και να βάλουμε όλα τα πακέτα κάθε ομάδας στον ίδιο - δίσκο. Αυτό το τμήμα του άρθρου περιγράφει το λογισμικό και τη - μεθοδολογία που χρησιμοποιείται για να δημιουργηθούν οι συλλογές από - πακέτα που περιέχονται στους δίσκους των επίσημων εκδόσεων του - FreeBSD.</para> - - <para>Τα script και τα υπόλοιπα αρχεία που χρειάζονται για να χωριστούν τα - πακέτα σε ομάδες μπορείτε να τα βρείτε στο CVS στον κατάλογο - <filename>ports/Tools/scripts/release</filename>. Αντιγράψτε αυτό τον - κατάλογο σε ένα μηχάνημα που έχει αρκετό χώρο για να κρατήσει - τουλάχιστον 2 ή 3 φορές το σύνολο των πακέτωνν που θέλετε να - χωρίσετε σε ομάδες.</para> - - <para>Τα παρακάτω scripts υπάρχουν σε αυτό τον κατάλογο:</para> - - <variablelist> - <varlistentry> - <term><filename>config</filename></term> - - <listitem><para>Αυτό το αρχείο περιέχει το μέγεθος του ελεύθερου χώρου - σε κάθε δίσκο, και αν τα πακέτα, τα distfiles, ή και τα δυο - επιτρέπεται να πάνε σε κάθε συγκεκριμένο δίσκο. Η πρώτη στήλη είναι - το όνομα του δίσκου. Πρέπει να είναι της μορφής - <literal>disc[0-9a-z]</literal>. Τώρα το αρχείο αυτό έχε ρυθμίσεις - μέσα για 10 δίσκους (4 για το σετ της εγκατάστασης και 6 για το - συμπληρωματικό toolkit). Υπάρχει κι ένας ακόμα δίσκος που λέγεται - <quote>scratch</quote>, όπου καταλήγουν όλα τα πακέτα και distfiles - που δεν χωράνε πουθενά αλλού. Η δεύτερη στήλη μπορεί να είναι 1 ή - 0, όπου η τιμή 1 σημαίνει ότι μπορούν να τοποθετηθούν πακέτα σε αυτό - το δίσκο. Η τρίτη στήλη δουλεύει με παρόμοιο τρόπο, αλλά κανονίζει - αν μπορούν να τοποθετηθούν distfiles σε αυτό το δίσκο. Η τελευταία - στήλη περιέχει τον αριθμό των ελεύθερων bytes στον - δίσκο.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>doit.sh</filename></term> - - <listitem><para>Αυτό κάνει την περισσότερη δουλειά. Μόλις έχετε βάλει - όλα τα αρχεία στη θέση τους και έχετε κάνει τις απαραίτητες - ρυθμίσεις, αυτό το script οδηγεί την διαδικασία διαχωρισμού των - πακέτων. Έχετε το νου σας όσο τρέχει όμως, γιατί είναι interactive. - Περισσότερες λεπτομέρειες σχετικά με αυτό το script υπάρχουν και - παρακάτω.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>checkdeps.pl</filename></term> - - <listitem><para>Ελέγχει αν όλα τα προαπαιτούμενα πακέτα είναι - διαθέσιμα, όταν του δοθεί ένα αρχείο <filename>INDEX</filename> κι - ένας κατάλογος με πακέτα.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>oneshot.pl</filename></term> - - <listitem><para>Αυτό είναι το πρόγραμμα που κάνει όλα τα μαγικά (και - χρησιμοποιώ τον όρο πολύ χαλαρά, καθώς χρησιμοποιεί μια brute force - προσέγγιση). Με είσοδο μια συλλογή από απαιτούμενα πακέτα για κάθε - δίσκο και ένα σετ από πακέτα/distfiles αυτό είναι το script που - τοποθετεί ένα πακέτο ή distfile σε ένα δίσκο μαζί με όλα τα πακέτα - από τα οποία εξαρτάται.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>print-cdrom-packages.sh</filename></term> - - <listitem><para>Αυτό το αρχείο είναι ένα αντίγραφο του - <filename>src/release/scripts/print-cdrom-packages.sh</filename> - από την έκδοση στην οποία δουλεύετε.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>scrubindex.pl</filename></term> - - <listitem><para>Αυτό το πρόγραμμα αφαιρεί από ένα - <filename>INDEX</filename> αρχείο τις γραμμές που είναι σχετικές με - πακέτα που δεν υπάρχουν. Αφαιρεί επίσης και τα πακέτα που απαιτούν - τα XFree86. ΣΗΜΕΙΩΣΗ: θα πρέπει να ρυθμίσετε την τιμή της - μεταβλητής <varname>xdep</varname> για να βεβαιωθείτε ότι ο αριθμός - έκδοσης είναι σωστός.</para></listitem> - </varlistentry> - - <varlistentry> - <term><filename>setup.sh</filename></term> - - <listitem><para>Αυτό είναι ένα βοηθητικό script που χρησιμοποιείται - στο bento cluster για να κατεβάσει ένα αντίγραφο του ports tree και - του αντίστοιχου σετ από πακέτα/distfiles.</para></listitem> - </varlistentry> - </variablelist> - - <para>Μια λίστα από ελέγχους που πρέπει να κάνετε και ρυθμίσεις που πρέπει - να ελέγξετε πριν συνεχίσετε είναι:</para> - - <orderedlist> - <listitem><para>Διορθώστε το <filename>config</filename> για να περιέχει - πληροφορίες για όλους τους δίσκους που έχετε, τα μεγέθη τους, και αν - θέλετε να περιέχουν πακέτα, distfiles, και τα δύο, ή κανένα από τα - δύο.</para></listitem> - - <listitem><para>Βεβαιωθείτε ότι έχετε σβήσει τον κατάλογο - <filename>gen</filename> αν υπάρχει κάποιος παλιός κατάλογος με αυτό - το όνομα που έχει ξεμείνει από παλιότερα. Αυτός ο κατάλογος περιέχει - διάφορα αρχεία που έχουν νόημα μόνο για το τωρινό τρέξιμο των - προγραμμάτων.</para></listitem> - - <listitem><para>Στα πρώτα τρεξίματα που θα κάνετε για να χωριστούν τα - πακέτα είναι καλύτερα να μην κάνετε στα αλήθεια την αντιγραφή των - πακέτων και των distfiles. Αυτό θα σας γλιτώσει και χρόνο και χώρο - στο δίσκο όσο κάνετε δοκιμές μέχρι να σιγουρευτείτε ότι όλα πάνε καλά. - Στο αρχείο <filename>oneshot.pl</filename> αλλάξτε την τιμή της - μεταβλητής <varname>fake</varname> σε 1 κι αντί να κάνει αντιγραφή - των αρχείων θα τα κάνει απλώς &man.touch.1;. Βεβαιωθείτε ότι αλλάξατε - την τιμή της <varname>fake</varname> πάλι σε 0 πριν δώσετε τους - δίσκους σε αυτόν που θα κάνει την μαζική παραγωγή βέβαια, γιατί αλλιώς - οι δίσκοι θα έχουν ένα κατάλογο με πολλά αρχεία μηδενικού - μεγέθους.</para></listitem> - - <listitem><para>Βεβαιωθείτε ότι έχετε ένα πρόσφατο αντίγραφο του - <filename>print-cdrom-packages.sh</filename> και ότι είναι από την - σωστή έκδοση.</para></listitem> - - <listitem><para>Ελέγξτε ότι στο αρχείο - <filename>scrubindex.pl</filename> αναφέρεται η σωστή έκδοση των - XFree86. Η ίδια τιμή πρέπει να υπάρχει και στα - <filename>doit.sh</filename>.</para></listitem> - </orderedlist> - - <para>Το επόμενο βήμα είναι να φτιάξετε ένα αντίγραφο από το ports tree, - τα πακέτα και τα distfiles από ένα πρόσφατο τρέξιμο της μεταγλώττισης - των πακέτων από το cluster των ports. Δείτε το αρχείο - <filename>setup.sh</filename> για ένα παράδειγμα. Τα βασικά βήματα που - πρέπει να κάνετε όμως είναι τα εξής:</para> - - <orderedlist> - <listitem><para>Αντιγράψτε το <filename>ports.tar.gz</filename> και - αποσυμπιέστε το στον κατάλογο <filename>ports</filename> μαζί με το - <filename>doit.sh</filename> και τον κατάλογο - <filename>scripts</filename>.</para></listitem> - - <listitem><para>Σβήστε τις συντομεύσεις και τους καταλόγους των - πακέτων/distfiles. Το bento τα έχει αυτά σαν συντομεύσεις και θα - πάρετε λάθος αποτελέσματα αν δεν τα σβήσετε πριν - συνεχίσετε.</para></listitem> - - <listitem><para>Δημιουργήστε ένα νέο κατάλογο για τα ports/πακέτα και - αντιγράψτε το σετ των πακέτων από το cluster μεταγλώττισης των - πακέτων.</para></listitem> - - <listitem><para>Δημιουργήστε ένα νέο κατάλογο για ports/distfiles και - αντιγράψτε τα distfiles από το cluster μεταγλώττισης των πακέτων. - ΣΗΜΕΙΩΣΗ: αν δεν θέλετε κανένα distfile απλά δημιουργήστε τον κατάλογο - και αφήστε τον άδειο. Αυτός ο κατάλογος πρέπει να υπάρχει ακόμα κι αν - δεν περιέχει τίποτα.</para></listitem> - </orderedlist> - - <para>Τώρα είμαστε πλέον έτοιμοι για το διασκεδαστικό κομμάτι της - ομαδοποίησης των πακέτων. Μπορείτε να ξεκινήσετε την διαδικασία - τρέχοντας το <command>./doit.sh</command>. Την πρώτη φορά που το - τρέχετε κάνει τα εξής:</para> - - <orderedlist> - <listitem><para>Δημιουργεί μια λίστα από τα ports που δεν μπορούν να - διανέμονται στο FTP master site.</para></listitem> - - <listitem><para>Σας ρωτάει αν θέλετε να σβήσετε αυτά τα ports, αφού δεν - μπορούν να διανέμονται ελεύθερα. Γενικά εδώ καλύτερα να απαντάτε - (y)es.</para></listitem> - - <listitem><para>Φτιάχνει μια λίστα από τα πακέτα που δεν μπορούν να - μπουν στους δίσκους.</para></listitem> - - <listitem><para>Σας ρωτάει αν θέλετε να σβήσετε τα πακέτα/distfiles που - δεν μπορούν να μπουν σε CD-ROM. Καλύτερα είναι να απαντήσετε (y)es - εδώ.</para></listitem> - - <listitem><para>Αντιγράφει το αρχείο <filename>INDEX</filename> από τον - κατάλογο <filename>ports</filename> στον κατάλογο - <filename>gen</filename>. Καθώς το κάνει, αφαιρεί τις γραμμές που - αντιστοιχούν σε ports ή πακέτα που δεν υπάρχουν. Ελέγχει επίσης αν - υπάρχουν όλα τα προαπαιτούμενα πακέτα και ικανοποιούνται οι εξαρτήσεις - των πακέτων/ports.</para></listitem> - - <listitem><para>Δημιουργεί μια λίστα από πακέτα που είναι απαραίτητο να - υπάρχουν σε κάθε δίσκο.</para></listitem> - - <listitem><para>Σας ρωτάει αν θέλετε να αντιγράψετε τα αρχεία στους - δίσκους. Αφού γίνει η αντιγραφή στους δίσκους θα ελέγξει για - εξαρτήσεις που λείπουν, θα καθαρίσει το αρχείο - <filename>INDEX</filename> και θα δημιουργήσει ένα αρχείο - <filename>CHECKSUM.MD5</filename>.</para></listitem> - - <listitem><para>Ελέγχει ότι όλα τα απαιτούμενα πακέτα είναι όντως σε - κάθε δίσκο, και τυπώνει ένα συγκεντρωτικό πίνακα με τα μεγέθη των - δίσκων.</para></listitem> - </orderedlist> - - <para>θα πρέπει να είστε αρκετά τυχεροί για να πετύχει ο διαχωρισμός την - πρώτη φορά, όλα τα πακέτα που χρειάζονται να μεταγλωττιστούν σωστά και - να χωρέσουν και σε κάθε δίσκο. Το μόνο που χρειάζεται μετά είναι να - δώσετε την τιμή 0 στην μεταβλητή <varname>fake</varname> στο αρχείο - <filename>oneshot.pl</filename> και να ξανατρέξετε το - <command>./doit.sh</command>. Την δεύτερη φορά που θα τρέξει, καθώς και - όλες τις υπόλοιπες, δεν θα κάνει τα βήματα 1-5 που αναφέραμε παραπάνω. - Αν θέλετε να ξανατρέξετε κάποια από αυτά τα βήματα, κοιτάξτε στο - <filename>doit.sh</filename> για να δείτε ποια αρχεία πρέπει να σβήσετε - ώστε να μην αποφύγει το <filename>doit.sh</filename> αυτά τα βήματα. - Αν θέλετε να ξανατρέξουν όλα τα βήματα, ο πιο εύκολος τρόπος είναι με - <command>rm -rf gen</command>.</para> - - <para>Όταν τελειώσει επιτυχώς η διαδικασία, τα πακέτα/distfiles θα έχουν - αντιγραφεί σε καταλόγους <filename>disc*</filename> και όσα έχουν - απομείνει θα υπάρχουν στον κατάλογο <filename>scratch</filename>.</para> - - <para>Τι να κάνετε αν κάτι δεν πάει καλά; Μερικά από τα πιο συχνά - προβλήματα και συμβουλές γι' αυτά φαίνονται παρακάτω:</para> - - <variablelist> - <varlistentry> - <term>Απαιτούμενα πακέτα που λείπουν</term> - - <listitem><para>Αυτό συμβαίνει πολύ συχνά. Θα χρειαστεί είτε να - περιμένετε για ένα νέο σετ από πακέτα να ετοιμαστεί, στο οποίο τα - πακέτα που λείπουν θα έχουν μεταγλωττιστεί επιτυχώς, ή να βρείτε - κάποιον που μπορεί να ξεκινήσει πάλι την διαδικασία μεταγλώττισης - των πακέτων για σας. <emphasis>Μην</emphasis> προσπαθήσετε να - μεταγλωττίσετε εσείς τα πακέτα που λείπουν στα δικά σας μηχανήματα - και να τα προσθέσετε στο σωρό. Παρόλο που μπορεί να τα καταφέρετε - κι έτσι αν είστε εξαιρετικά προσεκτικοί, στη μεγαλύτερη πλειοψηφία - των περιπτώσεων θα σας ξεφύγει κάποια λεπτομέρεια και η απλή - προσθήκη ενός μόνο πακέτου μπορεί να προκαλέσει προβλήματα σε - εκατοντάδες άλλα πακέτα.</para> - </varlistentry> - - <varlistentry> - <term>Απαιτούμενα πακέτα που δεν χωράνε</term> - - <listitem><para>Μερικές φορές συμβαίνει κι αυτό, και είναι σχετικά - απλό να διορθωθεί. Απλώς διορθώστε το - <filename>print-cdrom-packages.sh</filename> και μετακινήστε τα - πακέτα μέχρι να βρείτε μια διάταξη που να βολεύει. Ναι, αυτό είναι - μια χρονοβόρα διαδικασία και ένας από τους σοβαρούς λόγους για τους - οποίους θα πρέπει να ενεργοποιήσετε την μεταβλητή - <varname>fake</varname> στο αρχείο <filename>oneshot.pl</filename> - μέχρι να καταφέρετε το αποτέλεσμα που θέλετε. Ξανατρέξτε το - <command>./doit.sh</command> όταν τελειώσετε με τις ρυθμίσεις - σας.</para></listitem> - </varlistentry> - - <varlistentry> - <term>Απαιτούμενα πακέτα δεν είναι στον σωστό (ή σε κανένα) - δίσκο</term> - - <listitem><para>Αυτό συνήθως σημαίνει ότι δεν τα προσθέσατε στο - <filename>print-cdrom-packages.sh</filename> ή τα τοποθετήσατε σε - λάθος δίσκο. Αυτό το script είναι ο κανόνας στον οποίο βασίζεται η - απόφαση για την τοποθεσία ενός πακέτου. Αν θέλετε οπωσδήποτε να - τοποθετηθεί ένα συγκεκριμένο πακέτο σε κάποιο δίσκο, αυτός είναι ο - μόνος τρόπος να το κάνετε με σιγουριά.</para></listitem> - </varlistentry> - </variablelist> - - <para>Αν κολλήσετε σε κάποιο σημείο και δεν μπορείτε να βρείτε γιατί κάτι - δεν πάει καλά ή πως να το διορθώσετε, στείλτε ένα email στον &a.steve; - για βοήθεια.</para> - - </sect1> - -</article> |