releng-packages: remove it
- remove article about releng packages - we no longer produce multi-cd releases - CVS is not our VCS system - we havn't releaseed with xfree86 is years - section 1 about the 'ports cluster' is now entirely untrue and been disclaimed by portmgr Discussed with: peter, bdrewery, Daniel O'Connor
This commit is contained in:
parent
736e8cd573
commit
a7ecf541de
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46481
20 changed files with 0 additions and 1790 deletions
el_GR.ISO8859-7/articles
en_US.ISO8859-1
fr_FR.ISO8859-1/articles
ja_JP.eucJP/articles
ru_RU.KOI8-R/articles
share/xml
|
@ -15,7 +15,6 @@ SUBDIR+= nanobsd
|
||||||
SUBDIR+= new-users
|
SUBDIR+= new-users
|
||||||
SUBDIR+= problem-reports
|
SUBDIR+= problem-reports
|
||||||
SUBDIR+= releng
|
SUBDIR+= releng
|
||||||
SUBDIR+= releng-packages
|
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../..
|
DOC_PREFIX?= ${.CURDIR}/../..
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# %SOURCE% en_US.ISO8859-1/articles/releng-packages/Makefile
|
|
||||||
# %SRCID% 1.4
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?= gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
CSS_SHEET_ADDITIONS= extra.css
|
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,367 +0,0 @@
|
||||||
<?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">
|
|
||||||
<!--
|
|
||||||
Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους του FreeBSD
|
|
||||||
|
|
||||||
The FreeBSD Greek Documentation Project
|
|
||||||
|
|
||||||
%SOURCE% en_US.ISO8859-1/articles/releng-packages/article.xml
|
|
||||||
%SRCID% 1.6
|
|
||||||
|
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Steve</firstname><surname>Price</surname></personname><affiliation>
|
|
||||||
<address><email>steve@FreeBSD.org</email></address>
|
|
||||||
</affiliation></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<para>Αυτό το άρθρο περιγράφει την προσέγγιση της ομάδας οργάνωσης των
|
|
||||||
επίσημων εκδόσεων του FreeBSD για την παραγωγή μιας υψηλής ποιότητας
|
|
||||||
συλλογής πακέτων για τα επίσημα μέσα εγκατάστασης του FreeBSD (CD-ROM
|
|
||||||
αυτή τη στιγμή). Αυτό το κείμενο αποτελεί μέρος μιας δουλειάς που
|
|
||||||
βρίσκεται σε εξέλιξη, μα όταν τελικά ολοκληρωθεί θα περιγράφει την
|
|
||||||
διαδικασία που χρησιμοποιείται για την μεταγλώττιση της συλλογής των
|
|
||||||
πακέτων στο "Ports Cluster" του FreeBSD.org, πως μπορούν να ρυθμιστούν
|
|
||||||
οποιαδήποτε άλλα μηχανήματα για να χρησιμοποιηθούν με τον ίδιο τρόπο,
|
|
||||||
πως να χωριστούν τα πακέτα σε ομάδες στα μέσα της εγκατάστασης, καθώς
|
|
||||||
και πως μπορούν να γίνουν έλεγχοι στο σύνολο των πακέτων.</para>
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<sect1 xml:id="portbuild">
|
|
||||||
<title>Μεταγλώττιση των πακέτων από την Συλλογή των Ports</title>
|
|
||||||
|
|
||||||
<para>Η <link xlink:href="http://www.FreeBSD.org/ports">Συλλογή των Ports του
|
|
||||||
FreeBSD</link> αποτελείται από περισσότερα από &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>
|
|
||||||
</listitem>
|
|
||||||
</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>
|
|
|
@ -1,19 +0,0 @@
|
||||||
/*
|
|
||||||
* Ο φυλλομετρητής Netscape 4.X δεν αναγνωρίζει την ντιρεκτίβα 'import'
|
|
||||||
* του CSS, οπότε δε μπορούμε να προσθέσουμε ένα layer πάνω από το
|
|
||||||
* προκαθορισμένο CSS stylesheet. Οπότε χρησιμοποιούμε αυτό το hack για να
|
|
||||||
* αντιγράψουμε αυτό το stylesheet στο τέλος από το `docbook.css'.
|
|
||||||
*
|
|
||||||
* $FreeBSD$
|
|
||||||
*
|
|
||||||
* %SOURCE% en_US.ISO8859-1/articles/releng-packages/extra.css
|
|
||||||
* %SRCID% 1.1
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* @import "docbook.css"; */
|
|
||||||
|
|
||||||
/* Παραμετροποίηση, η οποία δείχνει ωραία σε αυτό το άρθρο. */
|
|
||||||
|
|
||||||
DIV.TITLEPAGE {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -32,7 +32,6 @@ SUBDIR+= problem-reports
|
||||||
SUBDIR+= rc-scripting
|
SUBDIR+= rc-scripting
|
||||||
SUBDIR+= relaydelay
|
SUBDIR+= relaydelay
|
||||||
SUBDIR+= releng
|
SUBDIR+= releng
|
||||||
SUBDIR+= releng-packages
|
|
||||||
SUBDIR+= remote-install
|
SUBDIR+= remote-install
|
||||||
SUBDIR+= serial-uart
|
SUBDIR+= serial-uart
|
||||||
SUBDIR+= solid-state
|
SUBDIR+= solid-state
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# Article: FreeBSD Release Engineering of Third Party Software Packages
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?= gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
CSS_SHEET_ADDITIONS= extra.css
|
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,359 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
|
||||||
|
|
||||||
<info><title>FreeBSD Release Engineering for Third Party Software
|
|
||||||
Packages</title>
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Steve</firstname><surname>Price</surname></personname><affiliation>
|
|
||||||
<address><email>steve@FreeBSD.org</email></address>
|
|
||||||
</affiliation></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
|
||||||
&tm-attrib.freebsd;
|
|
||||||
&tm-attrib.intel;
|
|
||||||
&tm-attrib.xfree86;
|
|
||||||
&tm-attrib.general;
|
|
||||||
</legalnotice>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<para>This paper describes the approach used by the FreeBSD
|
|
||||||
ports management team to produce a high quality package set
|
|
||||||
suitable for official FreeBSD release media. This document is
|
|
||||||
a work in progress, but eventually it will cover the process
|
|
||||||
used to build a clean package set on the FreeBSD.org <quote>Ports
|
|
||||||
Cluster</quote>, how to configure any other set of machines as a
|
|
||||||
ports cluster, how to split up the packages for the release
|
|
||||||
media, and how to verify that a package set is
|
|
||||||
consistent.</para>
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<!-- Introduction
|
|
||||||
|
|
||||||
<sect1 id="introduction">
|
|
||||||
<title>Introduction</title>
|
|
||||||
|
|
||||||
<para><emphasis>Coming Soon</emphasis></para>
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
-->
|
|
||||||
<sect1 xml:id="portbuild">
|
|
||||||
<title>Building packages from the Ports Collection</title>
|
|
||||||
|
|
||||||
<para>The <link xlink:href="http://www.FreeBSD.org/ports">FreeBSD Ports
|
|
||||||
collection</link> is a collection of over &os.numports;
|
|
||||||
third-party software packages available for FreeBSD. The &a.portmgr;
|
|
||||||
is responsible for maintaining a consistent ports tree that can be used
|
|
||||||
to create the binary packages that accompany a given FreeBSD
|
|
||||||
release.</para>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>The Ports Cluster</title>
|
|
||||||
|
|
||||||
<para>In order to provide a consistent set of third-party
|
|
||||||
packages for FreeBSD releases, every port is built in a
|
|
||||||
separate chroot environment, starting with an empty
|
|
||||||
<filename>/usr/local</filename> and
|
|
||||||
<filename>/usr/X11R6</filename>. The requisite dependencies
|
|
||||||
are installed as packages before the build proceeds. This
|
|
||||||
enforces <emphasis>consistency</emphasis> in the package build
|
|
||||||
process. By starting the package build in a pristine
|
|
||||||
environment, we can assure that the package metadata (such as
|
|
||||||
required dependencies) is accurate. This way, we will never
|
|
||||||
generate packages that might work on some systems and not on
|
|
||||||
others depending on what software was previously
|
|
||||||
installed.</para>
|
|
||||||
|
|
||||||
<para>The <quote>Ports Cluster</quote> for the x86 architecture
|
|
||||||
currently consists of a master node (Dual &pentium; III 733MHz)
|
|
||||||
and 8 slave nodes (&pentium; III 800MHz) to do the actual
|
|
||||||
package builds. With this configuration, a complete package
|
|
||||||
build takes over 24 hours. These machines are co-located with
|
|
||||||
the other FreeBSD Project equipment at Yahoo's corner of
|
|
||||||
Exodus in Santa Clara, CA.</para>
|
|
||||||
|
|
||||||
<para>The <quote>Ports Cluster</quote> for the Alpha
|
|
||||||
architecture consists of 7 PWS 500A machines donated by Compaq
|
|
||||||
and also co-located with Yahoo's facilities.</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>The Package Split</title>
|
|
||||||
|
|
||||||
<para>For FreeBSD 4.4 over 4.1 gigabytes of packages were created.
|
|
||||||
This causes a problem for CDROM distributions because we would
|
|
||||||
like to ship as many packages as possible without making the
|
|
||||||
user insert another disc to satisfy dependencies. The solution
|
|
||||||
is to create <quote>clusters</quote> of like packages with
|
|
||||||
similar dependencies and group these onto specific discs. This
|
|
||||||
section describes the software and methodology used to create
|
|
||||||
those package sets for the official FreeBSD release
|
|
||||||
discs.</para>
|
|
||||||
|
|
||||||
<para>The scripts and other files needed to produce a package
|
|
||||||
split can be found in the CVS tree in
|
|
||||||
<filename>ports/Tools/scripts/release</filename>.
|
|
||||||
Copy this directory to a machine that has enough free disk
|
|
||||||
space to hold 2 to 3 times the size of the package set that you
|
|
||||||
wish to split.</para>
|
|
||||||
|
|
||||||
<para>The following scripts are present in this directory:</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>config</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This file contains the free space on each disc
|
|
||||||
and whether packages, distfiles, or both are allowed on any
|
|
||||||
given disc. The first column is the disc name. It must be
|
|
||||||
of the form <literal>disc[0-9a-z]</literal>. Currently it is set up
|
|
||||||
to allow for 10 discs (4 for the release set and 6 for the toolkit).
|
|
||||||
There is an implied extra disc called <quote>scratch</quote> where
|
|
||||||
all of the remaining distfiles/packages land if they do not fit
|
|
||||||
elsewhere. The second column can be either a 1 or 0, where 1
|
|
||||||
says that it is okay to place packages on this disc. The
|
|
||||||
third column works the same way, but it controls
|
|
||||||
whether distfiles are placed on this disc. The last column
|
|
||||||
denotes the number of bytes of free space on a
|
|
||||||
disc.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>doit.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This is the workhorse. Once you have all the
|
|
||||||
files in place and things properly configured this script
|
|
||||||
directs the process of splitting packages. Beware it is
|
|
||||||
interactive so you need to keep an eye on it as it runs.
|
|
||||||
More details on what happens in this script will
|
|
||||||
follow.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>checkdeps.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>Makes sure all packages dependencies are
|
|
||||||
satisfied given an <filename>INDEX</filename> file and a directory
|
|
||||||
of packages.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>oneshot.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This is where all the magic (and I use that
|
|
||||||
term loosely as it is mostly just a brute force approach)
|
|
||||||
happens. Given a list of required packages for each disc
|
|
||||||
and a set of packages/distfiles this is the script that
|
|
||||||
places a package or distfile on a disc along with all of its
|
|
||||||
dependencies.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>print-cdrom-packages.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This file is a copy of
|
|
||||||
<filename>src/release/scripts/print-cdrom-packages.sh</filename>
|
|
||||||
from the release you are working on.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scrubindex.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This script removes lines from an
|
|
||||||
<filename>INDEX</filename> file for packages that are not present.
|
|
||||||
It also removes the &xfree86; dependencies. NOTE: you will need to
|
|
||||||
tweak the value of the <varname>xdep</varname> variable to make sure
|
|
||||||
the version number is correct.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>setup.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>This is a helper script that I use on the
|
|
||||||
ports building cluster to grab a copy of the ports tree and the
|
|
||||||
matching set of the packages/distfiles.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>Here is a checklist of things you will need to check or
|
|
||||||
configure before going any further.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Edit <filename>config</filename> to denote the
|
|
||||||
number of discs you have, their sizes, and whether you want
|
|
||||||
them want to contain packages, distfiles, both, or
|
|
||||||
neither.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Make sure you remove the <varname>gen</varname>
|
|
||||||
directory if there is an old one laying around. This directory
|
|
||||||
contains working files that will only be valid for the current
|
|
||||||
split.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>On your first pass through a split it is best to
|
|
||||||
fake the copying of packages and distfiles. This will save
|
|
||||||
both time and disk space while you do a couple of trial runs to
|
|
||||||
make sure things fit, etc. In the
|
|
||||||
<filename>oneshot.pl</filename> set the <varname>fake</varname>
|
|
||||||
variable to 1 and instead of actually copying the files it will
|
|
||||||
&man.touch.1; them. Be sure you turn this off or set
|
|
||||||
<varname>fake</varname> to 0 before you give the resultant discs to
|
|
||||||
the person that will be mastering the discs otherwise they will get a
|
|
||||||
directory full of zero-sized files.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Make sure you have a recent copy of the
|
|
||||||
<filename>print-cdrom-packages.sh</filename> and that it is
|
|
||||||
from the correct release.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Check to make sure the &xfree86; dependency in
|
|
||||||
<filename>scrubindex.pl</filename> has the correct
|
|
||||||
version number. You will also need to make sure this value is
|
|
||||||
correct in <filename>doit.sh</filename> as
|
|
||||||
well.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Next you will need to get a copy of the ports tree, packages,
|
|
||||||
and distfiles from a recent build on the package cluster. See
|
|
||||||
the <filename>setup.sh</filename> for a working example
|
|
||||||
but essentially here is what needs to be done.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
|
|
||||||
<listitem><para>Grab a copy of <filename>ports.tar.gz</filename>
|
|
||||||
and extract it into the <filename>ports</filename> directory alongside
|
|
||||||
<filename>doit.sh</filename> and the
|
|
||||||
<filename>scripts</filename> directory.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Remove the packages/distfiles directories or
|
|
||||||
symlinks. Bento has these as symlinks and you will have mixed
|
|
||||||
results if you do not get rid of them before
|
|
||||||
proceeding.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Create a new ports/packages directory and copy
|
|
||||||
the package set from the package building
|
|
||||||
cluster.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Create a new ports/distfiles directory and copy
|
|
||||||
the distfiles from the package building cluster. NOTE: if you
|
|
||||||
do not want any distfiles simply create the directory and leave
|
|
||||||
it empty. This directory must be present even if it does not
|
|
||||||
contain anything.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Now we are finally ready for the fun task of actually
|
|
||||||
splitting the packages. You start the processing by running
|
|
||||||
<command>./doit.sh</command>. Here is what it does the first
|
|
||||||
time you run it.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Create a list of the restricted (can not be on the
|
|
||||||
master FTP site) ports.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Asks you if you would like to remove the restricted
|
|
||||||
ports. Most of the time you will want to answer (y)es
|
|
||||||
here.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Create a list of the packages/distfiles that
|
|
||||||
can not be put on the discs.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Asks you if you would like to remove the
|
|
||||||
non-cdromable packages/distfiles. Most of the time you will
|
|
||||||
want to answer (y)es here.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Copies the <filename>INDEX</filename> from the
|
|
||||||
<filename>ports</filename> directory to the <filename>gen</filename>
|
|
||||||
directory. In doing so it removes the lines for ports
|
|
||||||
where the packages do not exist. It also checks to make sure
|
|
||||||
that all of the required dependency packages are
|
|
||||||
present.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Create a list of packages that are required on
|
|
||||||
each disc.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Asks you if you would like to populate the discs.
|
|
||||||
After populating each disc it will check for missing
|
|
||||||
dependencies, scrub the <filename>INDEX</filename> file, and create the
|
|
||||||
<filename>CHECKSUM.MD5</filename> file.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Check to make sure the required packages made it
|
|
||||||
on each disc and gives you a summary of the sizes of each
|
|
||||||
disc.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>After going through this the first time if you are lucky
|
|
||||||
enough that all of the required packages built and fit on each
|
|
||||||
disc. All you need to do is set <varname>fake</varname> to 0 in
|
|
||||||
<filename>oneshot.pl</filename> and re-run
|
|
||||||
<command>./doit.sh</command>. The second and subsequent times
|
|
||||||
around it will skip steps 1-5 above. If you want to re-run any
|
|
||||||
of those steps refer to <filename>doit.sh</filename> for which files
|
|
||||||
need to be removed to not short-circuit those steps. If you want to
|
|
||||||
repeat all of these steps then the easiest way is to <command>rm -rf
|
|
||||||
gen</command>.</para>
|
|
||||||
|
|
||||||
<para>Upon successful completion the packages/distfiles will be in
|
|
||||||
the <filename>disc*</filename> directories and the leftover will
|
|
||||||
be in the <filename>scratch</filename> directory.</para>
|
|
||||||
|
|
||||||
<para>What to do if things go wrong? Here is some common gotchas
|
|
||||||
and workarounds.</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>Missing required packages</term>
|
|
||||||
|
|
||||||
<listitem><para>This is a pretty common occurrence. You will
|
|
||||||
either need to wait for a new set of packages where the
|
|
||||||
missing packages were built or get someone to re-start the
|
|
||||||
package build for you. <emphasis>Do not</emphasis> attempt to build
|
|
||||||
the missing packages on your own machine and add them into the fray.
|
|
||||||
While you might be able to get away with this if you are
|
|
||||||
extremely careful the vast majority of the time you will miss
|
|
||||||
some little detail and the simple process of adding a
|
|
||||||
package could make hundreds of others come up mysteriously
|
|
||||||
broken.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Required packages will not fit</term>
|
|
||||||
|
|
||||||
<listitem><para>This happens on occasion too and is relatively
|
|
||||||
easy to fix. Simply edit
|
|
||||||
<filename>print-cdrom-packages.sh</filename> to move
|
|
||||||
packages around until they fit. Yes this is an iterative
|
|
||||||
process and one of the reasons why you should enable
|
|
||||||
<varname>fake</varname> in <filename>oneshot.pl</filename> until you
|
|
||||||
have gotten things the way you want them. Re-run
|
|
||||||
<command>./doit.sh</command> after you made your
|
|
||||||
adjustments.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Required packages not on the right (or any) disc</term>
|
|
||||||
|
|
||||||
<listitem><para>This usually means you did not add them to
|
|
||||||
<filename>print-cdrom-packages.sh</filename> or you put them
|
|
||||||
on the wrong disc. This script is the gospel by which this
|
|
||||||
whole process determines where a package must be. If you
|
|
||||||
want to force a package to land on a particular disc this is
|
|
||||||
the only way to ensure that it will
|
|
||||||
happen.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>If you get completely stuck and can not figure out why things
|
|
||||||
are borked or how to fix them then email &a.steve.email; for
|
|
||||||
assistance.</para>
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
</article>
|
|
|
@ -1,16 +0,0 @@
|
||||||
/*
|
|
||||||
* Netscape 4 does not recognice the @import directive of CSS, so we
|
|
||||||
* can't add an additional stylesheet layer on top of the default one.
|
|
||||||
* Instead, we use this hack to copy this file to the end of
|
|
||||||
* docbook.css.
|
|
||||||
*
|
|
||||||
* $FreeBSD$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* @import "docbook.css"; */
|
|
||||||
|
|
||||||
/* Customization that looks good for this particular article. */
|
|
||||||
|
|
||||||
DIV.TITLEPAGE {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||||||
<!ENTITY art.re.pkgs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="&url.articles.releng-packages;/article.html">The Release Engineering of Third Party Packages</link>'>
|
|
||||||
]>
|
]>
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
||||||
|
|
||||||
|
@ -728,12 +727,6 @@
|
||||||
is responsible for maintaining a consistent ports tree that can be used
|
is responsible for maintaining a consistent ports tree that can be used
|
||||||
to create the binary packages that accompany official &os;
|
to create the binary packages that accompany official &os;
|
||||||
releases.</para>
|
releases.</para>
|
||||||
|
|
||||||
<para>The release engineering activities for our collection of
|
|
||||||
third-party packages is beyond the scope of this document. A
|
|
||||||
separate article, &art.re.pkgs;, covers this topic
|
|
||||||
in depth.</para>
|
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -796,17 +789,6 @@
|
||||||
directory.</para>
|
directory.</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Discs 3 and 4</title>
|
|
||||||
|
|
||||||
<para>The remaining two discs contain additional software
|
|
||||||
packages for &os;. The packages should be clustered so that
|
|
||||||
a package and all of its <emphasis>dependencies</emphasis> are
|
|
||||||
included on the same disc. More information about the
|
|
||||||
creation of these discs is provided in the &art.re.pkgs;
|
|
||||||
article.</para>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
<title>Multi-volume support</title>
|
<title>Multi-volume support</title>
|
||||||
|
|
||||||
|
|
|
@ -247,18 +247,6 @@
|
||||||
interested in producing customized FreeBSD releases for
|
interested in producing customized FreeBSD releases for
|
||||||
corporate rollouts or commercial productization.</p>
|
corporate rollouts or commercial productization.</p>
|
||||||
|
|
||||||
<p><a href="&url.articles;/releng-packages/index.html">FreeBSD
|
|
||||||
Release Engineering for Third Party Packages</a>
|
|
||||||
(releng-packages)<br/>
|
|
||||||
Describes the approach used by the FreeBSD ports management team
|
|
||||||
to produce a high quality package set suitable for official
|
|
||||||
FreeBSD release media. This document is a work in progress, but
|
|
||||||
eventually it will cover the process used to build a clean
|
|
||||||
package set on the FreeBSD.org "Ports Cluster", how to configure
|
|
||||||
any other set of machines as a ports cluster, how to split up
|
|
||||||
the packages for the release media, and how to verify that a
|
|
||||||
package set is consistent.</p>
|
|
||||||
|
|
||||||
<p><a href="&url.articles;/remote-install/index.html">Remote
|
<p><a href="&url.articles;/remote-install/index.html">Remote
|
||||||
Installation of the &os; Operating System without a
|
Installation of the &os; Operating System without a
|
||||||
Remote Console</a> (remote-install)<br/>
|
Remote Console</a> (remote-install)<br/>
|
||||||
|
|
|
@ -21,7 +21,6 @@ SUBDIR+= new-users
|
||||||
SUBDIR+= pam
|
SUBDIR+= pam
|
||||||
SUBDIR+= pr-guidelines
|
SUBDIR+= pr-guidelines
|
||||||
SUBDIR+= problem-reports
|
SUBDIR+= problem-reports
|
||||||
SUBDIR+= releng-packages
|
|
||||||
|
|
||||||
ROOT_SYMLINKS+= new-users
|
ROOT_SYMLINKS+= new-users
|
||||||
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
#
|
|
||||||
# The FreeBSD Documentation Project
|
|
||||||
# The FreeBSD French Documentation Project
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
# $Id: Makefile,v 1.1 2002-06-20 09:51:25 blackend Exp $
|
|
||||||
# Original revision: 1.1
|
|
||||||
#
|
|
||||||
# Article: FreeBSD Release Engineering of Third Party Software Packages
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?= gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
# XML content
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
CSS_SHEET_ADDITIONS= extra.css
|
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,465 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<!--
|
|
||||||
The FreeBSD Documentation Project
|
|
||||||
The FreeBSD French Documentation Project
|
|
||||||
$Id: article.xml,v 1.1 2002-06-20 09:51:25 blackend Exp $
|
|
||||||
$FreeBSD$
|
|
||||||
Original revision: 1.4
|
|
||||||
-->
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
|
|
||||||
|
|
||||||
<info><title>Techniques de publication des logiciels tiers
|
|
||||||
pré-compilés pour FreeBSD</title>
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Steve</firstname><surname>Price</surname></personname><affiliation>
|
|
||||||
<address><email>steve@FreeBSD.org</email></address>
|
|
||||||
</affiliation></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<para>Ce document décrit l'approche utilisée par
|
|
||||||
l'équipe technique de publication des versions de FreeBSD
|
|
||||||
pour produire un ensemble de haute qualité de logiciels
|
|
||||||
pré-compilés adapté au
|
|
||||||
support officiel de distribution de FreeBSD. Ce document est un
|
|
||||||
travail en cours, mais au final il couvrira le processus employé
|
|
||||||
pour construire un ensemble de logiciels pré-compilés
|
|
||||||
sur le “Ports Cluster” (grappe de machines pour les
|
|
||||||
logiciels portés) de FreeBSD.org, comment configurer
|
|
||||||
n'importe quel autre ensemble de machines en tant que grappe
|
|
||||||
de machines pour les logiciels portés, comment répartir
|
|
||||||
les logiciels pré-compilés
|
|
||||||
pour le support de publication, et comment vérifier qu'un
|
|
||||||
ensemble de logiciels pré-compilés est
|
|
||||||
cohérent.</para>
|
|
||||||
|
|
||||||
&trans.a.fonvieille;
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<!-- Introduction
|
|
||||||
|
|
||||||
<sect1 id="introduction">
|
|
||||||
<title>Introduction</title>
|
|
||||||
|
|
||||||
<para><emphasis>Coming Soon</emphasis></para>
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
-->
|
|
||||||
<sect1 xml:id="portbuild">
|
|
||||||
<title>Compiler les logiciels pré-compilés à
|
|
||||||
partir du catalogue des logiciels portés</title>
|
|
||||||
|
|
||||||
<para>Le <link xlink:href="http://www.FreeBSD.org/ports">catalogue des
|
|
||||||
logiciels portés pour FreeBSD</link> est un catalogue de
|
|
||||||
plus de &os.numports; logiciels tiers disponibles pour FreeBSD.
|
|
||||||
&a.portmgr; est responsable du maintien de la cohérence du
|
|
||||||
catalogue des logiciels portés qui peut être utilisé
|
|
||||||
pour la création des logiciels binaires pré-compilés
|
|
||||||
qui accompagnent une version donnée de FreeBSD.</para>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>La “grappe de machines” pour les
|
|
||||||
logiciels portés</title>
|
|
||||||
|
|
||||||
<para>Afin de fournir un ensemble cohérent de logiciels
|
|
||||||
pré-compilés tiers pour les publications de
|
|
||||||
FreeBSD, chaque logiciel porté est compilé dans
|
|
||||||
un environnement chroot, en
|
|
||||||
partant de répertoires <filename>/usr/local</filename> et
|
|
||||||
<filename>/usr/X11R6</filename> vides. Les dépendances requises
|
|
||||||
sont installées sous forme de logiciels
|
|
||||||
pré-compilés avant le
|
|
||||||
processus de compilation. Cela renforce la
|
|
||||||
<emphasis>cohérence</emphasis> dans le processus de compilation
|
|
||||||
des logiciels pré-compilés. En démarrant la
|
|
||||||
compilation du logiciel dans un environnement vierge, nous pouvons
|
|
||||||
être sûr que les données du logiciel
|
|
||||||
pré-compilé (comme les dépendances
|
|
||||||
requises) sont précises, et donc que nous ne
|
|
||||||
générerons jamais
|
|
||||||
de logiciels pré-compilés qui pourraient fonctionner sur
|
|
||||||
certains systèmes et pas sur d'autres en fonction du
|
|
||||||
logiciel qui fut précédemment installé.</para>
|
|
||||||
|
|
||||||
<para>La “grappe de machines pour les logiciels
|
|
||||||
portés” destinée à l'architecture
|
|
||||||
x86 consiste actuellement en un noeud maître (un
|
|
||||||
Bi-Pentium III 733Mhz) et 8 noeuds esclaves (Pentium III 800Mhz)
|
|
||||||
pour effectuer la compilation des logiciels
|
|
||||||
pré-compilés. Avec cette
|
|
||||||
configuration, une compilation complète des logiciels
|
|
||||||
pré-compilés est effectuée en 24
|
|
||||||
heures. Ces machines sont hébergées avec d'autres
|
|
||||||
équipements du Projet FreeBSD au centre
|
|
||||||
Yahoo “corner of Exodus” à Santa Clara en
|
|
||||||
Californie.</para>
|
|
||||||
|
|
||||||
<para>La “grappe de machines pour les logiciels
|
|
||||||
portés” destinée à l'architecture
|
|
||||||
Alpha se compose de 7 machines PWS 500A données par
|
|
||||||
Compaq et également hébergées avec
|
|
||||||
les équipements de Yahoo.</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>Répartition des logiciels pré-compilés</title>
|
|
||||||
|
|
||||||
<para>Pour FreeBSD 4.4 plus de 4.1 gigaoctets de logiciels
|
|
||||||
pré-compilés furent créés. Cela
|
|
||||||
pose un problème pour les CDROMs
|
|
||||||
de distribution car nous aimerions mettre autant de logiciels
|
|
||||||
pré-compilés que possible sans que l'utilisateur
|
|
||||||
ne soit obligé d'introduire un autre disque pour
|
|
||||||
satisfaire des dépendances. La
|
|
||||||
solution est de créer des “bouquets” de logiciels
|
|
||||||
pré-compilés avec des dépendances identiques
|
|
||||||
et de les grouper sur des disques spécifiques. Cette
|
|
||||||
section décrit le logiciel et la
|
|
||||||
méthode mise en oeuvre dans la création de ces
|
|
||||||
ensembles de logiciels pré-compilés pour les disques
|
|
||||||
officiels de distribution de FreeBSD.</para>
|
|
||||||
|
|
||||||
<para>Tout d'abord vous devrez récupérer une copie de
|
|
||||||
l'archive <command>tar</command> à l'URL suivante:</para>
|
|
||||||
|
|
||||||
<para><uri xlink:href="http://people.freebsd.org/~steve/release-scripts.tgz">http://people.freebsd.org/~steve/release-scripts.tgz</uri></para>
|
|
||||||
|
|
||||||
<para>Copiez cette archive sur une machine qui dispose de
|
|
||||||
suffisamment d'espace libre pour héberger 2 à 3
|
|
||||||
fois la taille de l'ensemble de logiciels
|
|
||||||
pré-compilés que vous désirez diviser.
|
|
||||||
L'archive sera extraite dans le répertoire de travail
|
|
||||||
courant aussi soyez sûr d'avoir créé un
|
|
||||||
répertoire convenablement nommé pour la
|
|
||||||
version sur laquelle vous êtes en train de travailler.</para>
|
|
||||||
|
|
||||||
<para>Après avoir extrait les fichiers, vous remarquerez les
|
|
||||||
fichiers suivants:</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>config</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>Ce fichier contient l'espace libre disponible
|
|
||||||
sur chaque disque et si les logiciels
|
|
||||||
pré-compilés, leurs
|
|
||||||
sources, ou les deux sont autorisés sur n'importe quel
|
|
||||||
disque donné. La première colonne est le nom
|
|
||||||
du disque. Il doit
|
|
||||||
être sous la forme disc[0-9a-z]. Actuellement c'est
|
|
||||||
configuré
|
|
||||||
pour permettre 10 disques (4 pour l'ensemble de distribution
|
|
||||||
et 6 pour la “trousse à outils”). Il existe
|
|
||||||
un disque supplémentaire appelé
|
|
||||||
“scratch” où résident
|
|
||||||
les sources/logiciels pré-compilés restants s'ils
|
|
||||||
ne peuvent trouver place ailleurs. La deuxième colonne
|
|
||||||
peut être à 1 ou à 0 où 1 indique
|
|
||||||
qu'il est correct de placer les logiciels
|
|
||||||
pré-compilés sur ce disque. La troisième
|
|
||||||
colonne fonctionne
|
|
||||||
de la même façon sauf qu'elle contrôle si
|
|
||||||
les sources sont placées sur ce disque. La
|
|
||||||
dernière colonne représente le
|
|
||||||
nombre d'octets d'espace libre sur un
|
|
||||||
disque.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>doit.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>C'est le cheval de labour. Une fois que vous
|
|
||||||
avez tous les fichiers en place et les choses correctement
|
|
||||||
configurées cette procédure dirige le processus
|
|
||||||
de division des logiciels pré-compilés. Prenez
|
|
||||||
garde, c'est une procédure
|
|
||||||
interactive aussi vous devez garder un oeil dessus quand elle
|
|
||||||
tourne. Plus de détails sur ce que fait cette
|
|
||||||
procédure suivront.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scripts/checkdeps.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>S'assure que toutes les dépendances des
|
|
||||||
logiciels pré-compilés sont satisfaites à
|
|
||||||
l'aide d'un fichier d'INDEX et d'un répertoire de
|
|
||||||
logiciels pré-compilés.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scripts/oneshot.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>C'est ici que tout la magie (et j'utilise ce
|
|
||||||
terme de façon plutôt impropre étant
|
|
||||||
donné que c'est pour la
|
|
||||||
plupart du temps juste qu'une approche en force brute) se
|
|
||||||
produit. En fonction d'une liste de logiciels requis pour
|
|
||||||
chaque disque et un ensemble de logiciels
|
|
||||||
pré-compilés/sources, c'est cette
|
|
||||||
procédure qui place un
|
|
||||||
logiciel pré-compilé ou une source sur un
|
|
||||||
disque avec toutes
|
|
||||||
ses dépendances.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scripts/print-cdrom-packages.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>Ce fichier est une copie du fichier
|
|
||||||
<filename>src/release/scripts/print-cdrom-packages.sh</filename>
|
|
||||||
provenant de la version sur laquelle vous êtes en train de
|
|
||||||
travailler.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scripts/scrubindex.pl</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>Cette procédure efface les lignes d'un
|
|
||||||
fichier INDEX concernant les logiciels
|
|
||||||
pré-compilés qui ne sont pas
|
|
||||||
présents. Elle retire également les
|
|
||||||
dépendances d'XFree86.
|
|
||||||
NOTE: vous devrez ajuster la valeur de la variable xdep pour
|
|
||||||
être sûr que le numéro de version est
|
|
||||||
correct.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>scripts/setup.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem><para>C'est une procédure auxiliaire que
|
|
||||||
j'utilise sur la “grappe de machines” bento pour
|
|
||||||
récupérer une copie du catalogue des logiciels
|
|
||||||
portés et l'ensemble correspondant de logiciels
|
|
||||||
pré-compilés/sources.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>Voici une liste des choses que vous devrez contrôler ou
|
|
||||||
configurer avant d'aller plus loin.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Editez le fichier <filename>config</filename> pour
|
|
||||||
indiquer le nombre de disques dont vous disposez, leur taille,
|
|
||||||
et si vous désirez qu'ils contiennent des logiciels
|
|
||||||
pré-compilés, des sources, les deux, ou ni l'un ni
|
|
||||||
l'autre.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Soyez sûr d'effacer le répertoire
|
|
||||||
gen s'il en existe un ancien. Ce répertoire contient
|
|
||||||
les fichiers de travail qui ne seront seulement valables que
|
|
||||||
pour la division actuelle.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Dans votre premier essai de division, il est mieux
|
|
||||||
de simuler la copie des logiciels pré-compilés et
|
|
||||||
des sources. Cela économisera du temps et de l'espace
|
|
||||||
disque pendant que vous faites quelques essais pour être
|
|
||||||
sûr que tout ce passe comme
|
|
||||||
prévu, etc... Dans la procédure
|
|
||||||
<filename>scripts/oneshot.pl</filename> positionnez la variable
|
|
||||||
fake à 1 et au lieu de vraiment copier les fichiers, elle
|
|
||||||
créera des fichiers vides à l'aide de la commande
|
|
||||||
&man.touch.1;. Soyez sûr de désactiver cela en
|
|
||||||
positionnant fake à 0 avant de confier
|
|
||||||
les disques résultants à la personne chargée
|
|
||||||
de la “mastérisation”, sinon on obtiendra un
|
|
||||||
répertoire rempli de fichiers vides.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Vérifiez que vous disposez bien d'une copie
|
|
||||||
récente du fichier
|
|
||||||
<filename>print-cdrom-packages.sh</filename> et qu'il provient
|
|
||||||
de la version correcte de distribution.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Contrôlez que la dépendance d'XFree86 dans
|
|
||||||
<filename>scripts/scrubindex.pl</filename> possède le
|
|
||||||
numéro de version correct. Vous devrez également
|
|
||||||
vérifier que cette valeur est correcte dans
|
|
||||||
<filename>doit.sh</filename>.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Ensuite vous devrez récupérer une copie du
|
|
||||||
catalogue des logiciels portés, des logiciels
|
|
||||||
pré-compilés, et des sources à
|
|
||||||
partir d'une récente compilation sur la “grappe de
|
|
||||||
machines” destinée à la compilation des logiciels
|
|
||||||
pré-compilés. Voir le
|
|
||||||
fichier <filename>scripts/setup.sh</filename> pour un exemple qui
|
|
||||||
fonctionne, mais voici essentiellement ce qu'il faut faire.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
|
|
||||||
<listitem><para>Récupérez une copie de
|
|
||||||
<filename>ports.tar.gz</filename> et désarchivez
|
|
||||||
là dans le répertoire des logiciels
|
|
||||||
portés à coté de
|
|
||||||
<filename>doit.sh</filename> et du répertoire
|
|
||||||
<filename>scripts</filename>.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Effacez les répertoires de logiciels
|
|
||||||
pré-compilés/sources ou les liens symboliques. Bento
|
|
||||||
les a sous forme de liens symboliques et vous obtiendrez
|
|
||||||
des résultats mixtes si vous ne vous en débarrassez
|
|
||||||
pas avant de poursuivre.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Créez un nouveau répertoire
|
|
||||||
ports/packageset copiez-y l'ensemble des logiciels
|
|
||||||
pré-compilés depuis la “grappe de
|
|
||||||
machines” de compilation de
|
|
||||||
logiciels pré-compilés.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Créez un nouveau répertoire
|
|
||||||
ports/distfiles et copiez-y les sources depuis la “grappe de
|
|
||||||
machines” de compilation des logiciels
|
|
||||||
pré-compilés. NOTE: Si vous ne voulez
|
|
||||||
aucune source, créez simplement le répertoire et
|
|
||||||
laissez-le vide. Ce répertoire doit être
|
|
||||||
présent même s'il ne contient rien.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Vous êtes désormais fin prêt pour
|
|
||||||
l'amusante tâche de répartition des logiciels
|
|
||||||
pré-compilés. Vous démarrez le
|
|
||||||
processus en lançant <command>./doit.sh</command>. Voici
|
|
||||||
ce qu'il se passe la première fois que vous lancez
|
|
||||||
le processus.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Création de la liste des logiciels
|
|
||||||
portés à diffusion restreinte (qui ne peuvent
|
|
||||||
être sur le site FTP principal).</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>On vous demandera si vous désirez retirer les
|
|
||||||
logiciels portés à diffusion restreinte. La plupart
|
|
||||||
du temps vous voudrez répondre “(y)es”
|
|
||||||
ici.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Création d'une liste de logiciels
|
|
||||||
pré-compilés/sources qui ne peuvent être
|
|
||||||
placés sur les disques.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>On vous demandera si vous désirez retirer les
|
|
||||||
logiciels pré-compilés/sources que l'on ne peut
|
|
||||||
placer sur CDROM. La plupart du temps vous voudrez répondre
|
|
||||||
“(y)es” ici.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Copie de INDEX du répertoire ports vers le
|
|
||||||
répertoire gen. En faisant cela, on retire les lignes pour les
|
|
||||||
logiciels portés pour lesquels une version
|
|
||||||
pré-compilée n'existe pas. On vérifie
|
|
||||||
également que toutes les dépendances
|
|
||||||
requises sous forme pré-compilées sont
|
|
||||||
présentes.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>Création d'une liste de logiciels
|
|
||||||
pré-compilés qui sont nécessaires sur
|
|
||||||
chaque disque.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>On vous demandera si vous désirez peupler les
|
|
||||||
disques. Après avoir rempli chaque disque, la procédure
|
|
||||||
recherchera les dépendances manquantes, nettoiera le fichier
|
|
||||||
INDEX, et créera le fichier CHECKSUM.MD5.</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>La procédure vérifiera les logiciels
|
|
||||||
pré-compilés requis présents sur chaque disque et
|
|
||||||
vous donnera un résumé de
|
|
||||||
la taille de chaque disque.</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Après être passé par cette première
|
|
||||||
tentative si vous êtes suffisamment chanceux pour que tous
|
|
||||||
les logiciels pré-compilés
|
|
||||||
soient créés et placés sur chaque disque,
|
|
||||||
tout ce que vous devez faire est de positionner fake à 0 dans
|
|
||||||
<filename>scripts/oneshot.pl</filename> et relancer la procédure
|
|
||||||
<command>./doit.sh</command>. La seconde fois et les suivantes,
|
|
||||||
les étapes 1 à 5 seront passées. Si vous
|
|
||||||
voulez effectuer à nouveau une de ces étapes,
|
|
||||||
référez-vous à doit.sh pour connaître
|
|
||||||
quels fichiers doivent être effacés pour ne pas
|
|
||||||
court-circuiter ces étapes. Si vous voulez
|
|
||||||
répéter toutes ces étapes alors la
|
|
||||||
méthode la plus simple est d'utiliser
|
|
||||||
la commande <command>rm -rf gen</command>.</para>
|
|
||||||
|
|
||||||
<para>Après une opération réussie les logiciels
|
|
||||||
pré-compilés/sources seront dans les répertoires
|
|
||||||
<filename>disc*</filename> et ce qui
|
|
||||||
reste sera dans le répertoire scratch.</para>
|
|
||||||
|
|
||||||
<para>Que faire si les choses se passent mal? Voici quelques
|
|
||||||
problèmes courants et leurs solutions.</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>Logiciels pré-compilés
|
|
||||||
nécessaires manquants</term>
|
|
||||||
|
|
||||||
<listitem><para>C'est un problème assez courant. Vous
|
|
||||||
devrez soit attendre un nouvel ensemble de logiciels
|
|
||||||
pré-compilés où les logiciels manquants
|
|
||||||
seront compilés
|
|
||||||
soit trouver quelqu'un pour relancer la compilation de
|
|
||||||
logiciels pré-compilés pour
|
|
||||||
vous. N'essayez pas de compiler les logiciels manquants sur
|
|
||||||
votre machine et de les jeter dans l'arène. Alors que vous
|
|
||||||
pourriez être en mesure de vous débrouiller avec si
|
|
||||||
vous êtes extrêmement prudent, la majeur partie du temps
|
|
||||||
un petit détail vous échappera et le simple fait
|
|
||||||
d'ajouter un logiciel pourra faire que des centaines
|
|
||||||
d'autres apparaîtrons comme mystérieusement
|
|
||||||
défectueux.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Logiciels pré-compilés requis mais qui ne
|
|
||||||
pourront trouver place sur les disques</term>
|
|
||||||
|
|
||||||
<listitem><para>Cela se produit également occasionnellement et
|
|
||||||
est relativement simple à corriger. Editez simplement
|
|
||||||
print-cdrom-packages.sh pour déplacer les logiciels
|
|
||||||
pré-compilés jusqu'à qu'ils trouvent
|
|
||||||
place. C'est bien, en
|
|
||||||
effet, un processus à répéter plusieurs fois
|
|
||||||
et c'est une des raisons pourquoi vous devriez activer fake dans
|
|
||||||
<filename>scripts/oneshot.pl</filename> jusqu'à ce que vous
|
|
||||||
ayez obtenu les choses comme désirées.
|
|
||||||
Relancez <command>./doit.sh</command> après avoir
|
|
||||||
effectué vos ajustements.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Logiciels pré-compilés requis mais pas
|
|
||||||
présents sur le bon disque (voire sur aucun)</term>
|
|
||||||
|
|
||||||
<listitem><para>Cela signifie généralement que vous ne
|
|
||||||
les avez pas ajoutés dans le fichier
|
|
||||||
<filename>print-cdrom-packages.sh</filename> ou que vous les
|
|
||||||
avez mis sur le mauvais disque. C'est par cette procédure
|
|
||||||
que l'ensemble du processus détermine où doit aller un
|
|
||||||
logiciel pré-compilé. Si vous voulez forcer un
|
|
||||||
logiciel à se retrouver sur un disque particulier c'est
|
|
||||||
la seule manière d'être sûr que cela se
|
|
||||||
produira.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>Si vous restez complètement coincé et que vous
|
|
||||||
n'arrivez pas à comprendre pourquoi les choses sont
|
|
||||||
cassées ou que vous ne savez pas comment les corriger alors
|
|
||||||
envoyez un courrier électronique à &a.steve; pour
|
|
||||||
demander de l'aide.</para>
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
</article>
|
|
|
@ -1,16 +0,0 @@
|
||||||
/*
|
|
||||||
* Netscape 4 does not recognice the @import directive of CSS, so we
|
|
||||||
* can't add an additional stylesheet layer on top of the default one.
|
|
||||||
* Instead, we use this hack to copy this file to the end of
|
|
||||||
* docbook.css.
|
|
||||||
*
|
|
||||||
* $FreeBSD$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* @import "docbook.css"; */
|
|
||||||
|
|
||||||
/* Customization that looks good for this particular article. */
|
|
||||||
|
|
||||||
DIV.TITLEPAGE {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -34,7 +34,6 @@ SUBDIR+= problem-reports
|
||||||
#SUBDIR+= rc-scripting
|
#SUBDIR+= rc-scripting
|
||||||
#SUBDIR+= relaydelay
|
#SUBDIR+= relaydelay
|
||||||
#SUBDIR+= releng
|
#SUBDIR+= releng
|
||||||
#SUBDIR+= releng-packages
|
|
||||||
#SUBDIR+= remote-install
|
#SUBDIR+= remote-install
|
||||||
#SUBDIR+= serial-uart
|
#SUBDIR+= serial-uart
|
||||||
#SUBDIR+= solid-state
|
#SUBDIR+= solid-state
|
||||||
|
|
|
@ -27,7 +27,6 @@ SUBDIR+= pr-guidelines
|
||||||
SUBDIR+= problem-reports
|
SUBDIR+= problem-reports
|
||||||
SUBDIR+= relaydelay
|
SUBDIR+= relaydelay
|
||||||
SUBDIR+= releng
|
SUBDIR+= releng
|
||||||
SUBDIR+= releng-packages
|
|
||||||
#SUBDIR+= serial-uart
|
#SUBDIR+= serial-uart
|
||||||
SUBDIR+= solid-state
|
SUBDIR+= solid-state
|
||||||
#SUBDIR+= vinum
|
#SUBDIR+= vinum
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
# The FreeBSD Russian Documentation Project
|
|
||||||
#
|
|
||||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/Makefile,v 1.2 2005/07/01 07:07:44 gad Exp $
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# Original revision: r39631
|
|
||||||
#
|
|
||||||
# Article: FreeBSD Release Engineering of Third Party Software Packages
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?= gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
CSS_SHEET_ADDITIONS= extra.css
|
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,412 +0,0 @@
|
||||||
<?xml version="1.0" encoding="koi8-r"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<!--
|
|
||||||
The FreeBSD Russian Documentation Project
|
|
||||||
|
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/article.xml,v 1.7 2006/03/22 17:03:22 marck Exp $
|
|
||||||
|
|
||||||
Original revision: r43184
|
|
||||||
-->
|
|
||||||
<!--
|
|
||||||
The FreeBSD Documentation Project
|
|
||||||
-->
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
|
|
||||||
|
|
||||||
|
|
||||||
<info><title>Подготовка релизов FreeBSD в части программных пакетов сторонних
|
|
||||||
разработчиков</title>
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Steve</firstname><surname>Price</surname></personname><affiliation>
|
|
||||||
<address><email>steve@FreeBSD.org</email></address>
|
|
||||||
</affiliation></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
|
||||||
&tm-attrib.freebsd;
|
|
||||||
&tm-attrib.intel;
|
|
||||||
&tm-attrib.xfree86;
|
|
||||||
&tm-attrib.general;
|
|
||||||
</legalnotice>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<para>В этом документе описывается подход, используемый группой
|
|
||||||
менеджеров портов FreeBSD для создания высококачественного набора
|
|
||||||
пакетов, предназначенного для размещения на носителях с официальными
|
|
||||||
релизами FreeBSD. Этот документ находится в состоянии доработки, и
|
|
||||||
постепенно он покроет весь процесс построения целостного набора
|
|
||||||
пакетов в <quote>Кластере Портов</quote> проекта FreeBSD.org, опишет,
|
|
||||||
как настроить любой другой набор машин в качестве кластера портов, как
|
|
||||||
разделить пакеты для размещения на носителях с релизом и как проверить
|
|
||||||
целостность набора пакетов.</para>
|
|
||||||
</abstract>
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<!-- Введение
|
|
||||||
|
|
||||||
<sect1 id="introduction">
|
|
||||||
<title>Введение</title>
|
|
||||||
|
|
||||||
<para><emphasis>Вскоре будет</emphasis></para>
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<sect1 xml:id="portbuild">
|
|
||||||
<title>Построение пакетов из Коллекции Портов</title>
|
|
||||||
|
|
||||||
<para><link xlink:href="http://www.FreeBSD.org/ports">Коллекция портов
|
|
||||||
FreeBSD</link> представляет собой собрание более чем &os.numports;
|
|
||||||
программных пакетов сторонних разработчиков, доступных для FreeBSD. За
|
|
||||||
поддержку дерева портов, которое может использоваться для подготовки
|
|
||||||
бинарных пакетов, идущих с некоторым релизом FreeBSD, в рабочем
|
|
||||||
состоянии, отвечает &a.portmgr;.</para>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Кластер портов</title>
|
|
||||||
|
|
||||||
<para>Для подготовки целостного набора пакетов сторонних разработчиков
|
|
||||||
для релизов FreeBSD каждый порт строиться в отдельном окружении с
|
|
||||||
изменённым корнем файловой системы, с изначально пустыми каталогами
|
|
||||||
<filename>/usr/local</filename> и <filename>/usr/X11R6</filename>.
|
|
||||||
Требуемые зависимости устанавливаются в виде пакетов до момента начала
|
|
||||||
построения. Это обеспечивает <emphasis>целостность</emphasis> процесса
|
|
||||||
построения пакетов. Запуская построение пакета в чистом окружении,
|
|
||||||
мы можем гарантировать, что метаданные пакета (такие, как требуемые
|
|
||||||
зависимости) корректны. Таким образом, мы никогда не создаём пакеты,
|
|
||||||
которые, в зависимости от ранее установленного программного
|
|
||||||
обеспечения, на одних системах работать могут, а на других работать не
|
|
||||||
будут.</para>
|
|
||||||
|
|
||||||
<para><quote>Кластер портов</quote> для архитектуры x86 в настоящее время
|
|
||||||
состоит из центрального узла (Dual &pentium; III 733MHz) и 8
|
|
||||||
подчинённых узлов (&pentium; III 800MHz), выполняющих реальное
|
|
||||||
построение пакетов. В такой конфигурации полное построение пакетов
|
|
||||||
занимает более 24 часов. Эти машины размещены вместе с остальным
|
|
||||||
оборудованием Проекта FreeBSD в углу с оборудованием компании Yahoo
|
|
||||||
у провайдера Exodus в калифорнийском городе Санта-Клара.</para>
|
|
||||||
|
|
||||||
<para><quote>Кластер портов</quote> для архитектуры Alpha состоит из
|
|
||||||
7 машин PWS 500A, предоставленных компанией Compaq, и они также
|
|
||||||
расположены вместе с оборудованием компании Yahoo.</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>Разделение пакетов</title>
|
|
||||||
|
|
||||||
<para>Для FreeBSD 4.4 было создано более 4.1 гигабайт пакетов. Это
|
|
||||||
привело к проблемам для распространения на CDROM, так как нам нужно
|
|
||||||
записать как можно больше пакетов без необходимости заставлять
|
|
||||||
пользователя вставлять другой диск для поиска зависимостей. Решением
|
|
||||||
является создание <quote>кластеров</quote> близких пакетов с похожими
|
|
||||||
зависимостями и группировать их на отдельные диски. В этом разделе
|
|
||||||
описывается программное обеспечение и методология, использованная при
|
|
||||||
создании таких наборов пакетов для официальных дисков FreeBSD с
|
|
||||||
релизами.</para>
|
|
||||||
|
|
||||||
<para>Скрипты и остальные файлы, необходимые для выполнения разделения
|
|
||||||
пакетов, можно найти в дереве CVS в каталоге
|
|
||||||
<filename>ports/Tools/scripts/release</filename>. Скопируйте этот
|
|
||||||
каталог на машину с свободным дисковым пространством, достаточным для
|
|
||||||
хранения 2 или 3 копий набора пакетов, который вы хотите
|
|
||||||
разделить.</para>
|
|
||||||
|
|
||||||
<para>В этом каталоге находятся следующие скрипты:</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>config</filename></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>В этом файле находится свободное пространство на каждом диске и
|
|
||||||
то, разрешено ли на этих дисках размещать пакеты, дистрибутивные
|
|
||||||
файлы или оба типа файлов одновременно. Первая колонка содержит
|
|
||||||
название диска. Оно должно быть в виде
|
|
||||||
<literal>disc[0-9a-z]</literal>. На данный момент настройка
|
|
||||||
выполнена на 10 дисков (4 для релиза и 6 для инструментального
|
|
||||||
набора). При этом подразумевается дополнительный диск под
|
|
||||||
названием <quote>scratch</quote>, куда помещаются остальные
|
|
||||||
дистрибутивные файлы и пакеты, если они больше никуда не
|
|
||||||
помещаются. Вторая колонка может быть 1 или 0, где 1 означает
|
|
||||||
возможность размещения на этом диске пакетов. Третья колонка
|
|
||||||
работает так же, но контролирует размещение на этом диске пакетов.
|
|
||||||
Последняя колонка отмечает количество байтов свободного
|
|
||||||
пространства на диске.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>doit.sh</filename></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Это рабочая лошадка. Как только все файлы будут на своих
|
|
||||||
местах и всё будет полностью настроено, этот скрипт управляет
|
|
||||||
процессом разделения пакетов. Имейте в виду, что он
|
|
||||||
интерактивный, так что вам нужно присматривать за его работой.
|
|
||||||
Подробности о том, что делает скрипт, будут даны позже.</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>Здесь происходит основное волшебство (я использую это слово с
|
|
||||||
некоторой натяжкой, так как большей частью всё решается в лоб).
|
|
||||||
Имея перечень требуемых пакетов для каждого диска и набор
|
|
||||||
пакетов/дистрибутивных файлов, этот скрипт размещает пакеты или
|
|
||||||
дистрибутивные файлы по дискам вместе со всеми их
|
|
||||||
зависимостями.</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>Это вспомогательный скрипт, используемый мною в кластере сборки пакетов
|
|
||||||
для получения копии дерева портов и соответствующего набора
|
|
||||||
пакетов/дистрибутивных файлов.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>Вот контрольный список того, что вам нужно будет проверить или
|
|
||||||
настроить перед тем, как продолжить.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Отредактируйте <filename>config</filename>, отметив количество
|
|
||||||
имеющихся у вас дисков, их размеры и собираетесь ли вы размещать на
|
|
||||||
них пакеты, дистрибутивные файлы, оба типа файлов или ничего из
|
|
||||||
них.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Проверьте, что вы удалили каталог <varname>gen</varname>, который
|
|
||||||
мог остаться от предыдущих работ. Этот каталог содержит рабочие
|
|
||||||
файлы, которые будут актуальны только для текущих действий.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>При первом вашем прогоне лучше всего избежать копирования
|
|
||||||
пакетов и дистрибутивных файлов. Это сохранит как время, так и
|
|
||||||
дисковое пространство, пока вы сможете проделать пару пробных
|
|
||||||
запусков, чтобы удостовериться в том, что всё помещается, и так
|
|
||||||
далее. В файле <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>Проверьте, что зависимость &xfree86; в файле
|
|
||||||
<filename>scrubindex.pl</filename> имеет корректный номер версии.
|
|
||||||
Вам также нужно будет проверять, что это значение правильно задано в
|
|
||||||
файле <filename>doit.sh</filename>.</para>
|
|
||||||
</listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Теперь вам нужно сделать копию дерева портов, пакетов и
|
|
||||||
дистрибутивных файлов из последнего построения кластера пакетов.
|
|
||||||
Посмотрите файл <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>Удалите каталог packages/distfiles или символические ссылки на
|
|
||||||
него. В bento имеются эти символические ссылки и вы будете получать
|
|
||||||
смешанные результаты, если не избавитесь от них перед
|
|
||||||
обработкой.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Создайте новый каталог ports/packages и скопируйте набор пакетов
|
|
||||||
из кластера построения пакетов.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Создайте новый каталог ports/distfiles и скопируйте
|
|
||||||
дистрибутивные файлы из кластера построения пакетов. ЗАМЕЧАНИЕ:
|
|
||||||
если вы не хотите копировать дистрибутивные файлы, просто создайте
|
|
||||||
каталог и оставьте его пустым. Этот каталог должен существовать,
|
|
||||||
даже если в нём ничего нет.</para>
|
|
||||||
</listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Теперь мы окончательно готовы к весёлому занятию по реальному
|
|
||||||
разделению пакетов. Запускайте обработку командой
|
|
||||||
<command>./doit.sh</command>. Вот что она делает при первом её
|
|
||||||
запуске.</para>
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Создаёт список ограниченных к распространению (которые не могут
|
|
||||||
находиться на главном FTP-сервере) портов.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Запросит у вас, нужно ли удаление ограниченных к распространению
|
|
||||||
портов. В большинстве случаев здесь вам лучше ответить (y)es.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Создаёт перечень пакетов/дистрибутивных файлов, которые не могут
|
|
||||||
быть размещены на дисках.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Запросит у вас разрешение на удаление пакетов/дистрибутивных
|
|
||||||
файлов, которые не размещаются на компакт-диск. В большинстве
|
|
||||||
случаев здесь лучше ответить (y)es.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Копирует файл <filename>INDEX</filename> из каталога
|
|
||||||
<filename>ports</filename> в каталог <filename>gen</filename>. При
|
|
||||||
этом она удаляет строчки портов, для которых нет пакетов. Также
|
|
||||||
проверяется наличие всех требуемых зависимых пакетов.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Создаёт список пакетов, требуемых для размещения на каждом
|
|
||||||
диске.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Делает запрос на создание дисков. После генерации каждого диска
|
|
||||||
она проверяет отсутствующие зависимости, вычищает файл
|
|
||||||
<filename>INDEX</filename> и создаёт файл
|
|
||||||
<filename>CHECKSUM.MD5</filename>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Выполняет проверку того, что на каждом диске размещены требуемые
|
|
||||||
пакеты и выдаёт общую статистику по размерам каждого диска.</para>
|
|
||||||
</listitem>
|
|
||||||
</orderedlist>
|
|
||||||
|
|
||||||
<para>Если вам повезёт с первого раза, то все требуемые пакеты будут
|
|
||||||
построены и размещены по дискам. Всё, что вам нужно сделать, это
|
|
||||||
задать в качестве значения переменной <varname>fake</varname> в 0 в файле
|
|
||||||
<filename>oneshot.pl</filename> и перезапустить
|
|
||||||
<command>./doit.sh</command>. При втором и последующем запусках шаги
|
|
||||||
1-5 выше будут пропускаться. Если вы хотите выполнить любые из тех шагов
|
|
||||||
повторно, обратитесь к <filename>doit.sh</filename>, чтобы выяснить,
|
|
||||||
какие файлы необходимо удалить для того, чтобы не пропустить эти этапы.
|
|
||||||
Если вы хотите повторить все эти шаги, то проще всего выполнить
|
|
||||||
<command>rm -rf gen</command>.</para>
|
|
||||||
|
|
||||||
<para>К моменту успешного завершения пакеты и дистрибутивные файлы будут
|
|
||||||
располагаться в каталогах <filename>disc*</filename>, а оставшиеся файлы
|
|
||||||
будут находиться в каталоге <filename>scratch</filename>.</para>
|
|
||||||
|
|
||||||
<para>Что делать, если что-то происходит не так? Вот некоторые
|
|
||||||
распространённые проблем и их решения.</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>Отсутствие требуемых пакетов</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Такое часто случается. Вам нужно подождать появления нового
|
|
||||||
набора пакетов, где будут построены отсутствующие пакеты, либо
|
|
||||||
попросить кого-нибудь перезапустить построение пакетов для вас.
|
|
||||||
<emphasis>Не пытайтесь</emphasis> строить отсутствующие пакеты
|
|
||||||
на собственной машине и добавлять их. Хотя вам может удастся
|
|
||||||
обойтись этим, если вы очень осторожны, все же в большинстве
|
|
||||||
случаев вы, скорее всего, пропустите какую-то маленькую деталь и
|
|
||||||
простой процесс добавления одного пакета может привести к
|
|
||||||
неожиданной неработоспособности сотен остальных.</para>
|
|
||||||
</listitem>
|
|
||||||
</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> или разместили их не
|
|
||||||
на том диске. Этот скрипт является святым источником, по которому
|
|
||||||
в целом определяется, где должен находиться пакет. Если вы хотите
|
|
||||||
обеспечить расположение пакета на определённом диске, то это
|
|
||||||
единственное место, гарантирующее требуемое вам
|
|
||||||
расположение.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
<para>Если вы окончательно запутались, и не можете понять, почему всё
|
|
||||||
работает неправильно и как это исправить, то пошлите письмо в адрес
|
|
||||||
&a.steve.email; с просьбой о помощи.</para>
|
|
||||||
</sect1>
|
|
||||||
</article>
|
|
|
@ -1,17 +0,0 @@
|
||||||
/*
|
|
||||||
* Netscape 4 does not recognice the @import directive of CSS, so we
|
|
||||||
* can't add an additional stylesheet layer on top of the default one.
|
|
||||||
* Instead, we use this hack to copy this file to the end of
|
|
||||||
* docbook.css.
|
|
||||||
*
|
|
||||||
* $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/extra.css,v 1.1 2004/02/25 22:24:56 phantom Exp $
|
|
||||||
* $FreeBSD$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* @import "docbook.css"; */
|
|
||||||
|
|
||||||
/* Customization that looks good for this particular article. */
|
|
||||||
|
|
||||||
DIV.TITLEPAGE {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
|
@ -104,7 +104,6 @@
|
||||||
<!ENTITY url.articles.releng "&url.doc.langbase;/articles/releng">
|
<!ENTITY url.articles.releng "&url.doc.langbase;/articles/releng">
|
||||||
<!ENTITY url.articles.releng.en "&url.doc.langbase.en;/articles/releng">
|
<!ENTITY url.articles.releng.en "&url.doc.langbase.en;/articles/releng">
|
||||||
<!ENTITY url.articles.releng-packages "&url.doc.langbase;/articles/releng-packages">
|
<!ENTITY url.articles.releng-packages "&url.doc.langbase;/articles/releng-packages">
|
||||||
<!ENTITY url.articles.releng-packages.en "&url.doc.langbase.en;/articles/releng-packages">
|
|
||||||
<!ENTITY url.articles.remote-install "&url.doc.langbase;/articles/remote-install">
|
<!ENTITY url.articles.remote-install "&url.doc.langbase;/articles/remote-install">
|
||||||
<!ENTITY url.articles.remote-install.en "&url.doc.langbase.en;/articles/remote-install">
|
<!ENTITY url.articles.remote-install.en "&url.doc.langbase.en;/articles/remote-install">
|
||||||
<!ENTITY url.articles.serial-uart "&url.doc.langbase;/articles/serial-uart">
|
<!ENTITY url.articles.serial-uart "&url.doc.langbase;/articles/serial-uart">
|
||||||
|
|
Loading…
Reference in a new issue