MFen: 1.239 -> 1.240 en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
Obtained from: FreeBSD Greek Documentation Project
This commit is contained in:
parent
52ee421a00
commit
405ab0431b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33790
1 changed files with 222 additions and 2 deletions
|
@ -7,7 +7,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
|
||||
%SRCID% 1.239
|
||||
%SRCID% 1.240
|
||||
|
||||
-->
|
||||
|
||||
|
@ -1712,7 +1712,227 @@ DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting>
|
|||
<filename>/usr/src/UPDATING</filename> για τυχόν βήματα που θα πρέπει
|
||||
να εκτελέσετε πριν την εκκίνηση της μεταγλώττισης. Τα βήματα αυτά
|
||||
εξαρτώνται από την έκδοση του πηγαίου κώδικα που πρόκειται να
|
||||
χρησιμοποιήσετε. Έπειτα, ακολουθήστε την παρακάτω διαδικασία:</para>
|
||||
χρησιμοποιήσετε. Έπειτα, ακολουθήστε τη διαδικασία που περιγράφεται
|
||||
στις επόμενες παραγράφους.</para>
|
||||
|
||||
<para>Η διαδικασία αναβάθμισης η οποία περιγράφεται εδώ βασίζεται στην
|
||||
υπόθεση ότι έχει ήδη εγκαταστήσει μια παλιότερη έκδοση του &os;, με
|
||||
μια παλιά έκδοση του μεταγλωττιστή, ένα παλιό πυρήνα,
|
||||
παλιά <quote>εργαλεία χρήστη</quote> και αρχεία ρυθμίσεων. Εργαλεία
|
||||
χρήστη θεωρούνται τα βασικά εκτελέσιμα, οι βιβλιοθήκες και τα αρχεία
|
||||
προγραμματισμού. Ο μεταγλωττιστής είναι κι αυτός μέρος από τα
|
||||
<quote>εργαλεία χρήστη</quote> στο &os;, αλλά χρειάζεται ειδική
|
||||
μεταχείριση κατά τη διαδικασία αναβάθμισης.</para>
|
||||
|
||||
<para>Υποθέτουμε, επίσης, ότι έχετε ήδη κατεβάσει μια ενημερωμένη έκδοση
|
||||
από τον πηγαίο κώδικα του συστήματος. Αν ο πηγαίος κώδικας στο
|
||||
συγκεκριμένο σύστημα είναι από παλιότερη έκδοση, δείτε
|
||||
το <xref linkend="synching"> για λεπτομερείς οδηγίες σχετικά με το πως
|
||||
να συγχρονίσετε τον πηγαίο κώδικα σε μια νεότερη έκδοση.</para>
|
||||
|
||||
<para>Η αναβάθμιση του &os; από τον πηγαίο κώδικά του φαίνεται να είναι
|
||||
πολύ απλή διαδικασία. Στην πραγματικότητα, έχει κάποιες
|
||||
ιδιαιτερότητες. Με τα χρόνια, καθώς οι εξαρτήσεις μεταξύ των βημάτων
|
||||
της αναβάθμισης ανακαλύπτονται ή αναλύονται καλύτερα, οι
|
||||
προγραμματιστές του &os; αλλάζουν σιγά-σιγά αυτή τη διαδικασία. Οι
|
||||
παρακάτω παράγραφοι περιγράφουν τη λογική με την οποία έχει σχεδιασθεί
|
||||
η προτεινόμενη διαδικασία αναβάθμισης.</para>
|
||||
|
||||
<para>Μια επιτυχής διαδικασία αναβάθμισης πρέπει να καλύψει τουλάχιστον
|
||||
τις δύο πιο βασικές ιδιαιτερότητες μιας αναβάθμισης από πηγαίο
|
||||
κώδικα:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ο παλιός μεταγλωττιστής συστήματος μπορεί να είναι ακατάλληλος
|
||||
για μεταγλώττιση του νέου πυρήνα. (Και οι μεταγλωττιστές έχουν
|
||||
ορισμένες προβλήματα, όπως κάθε άλλο λογισμικό.) Οπότε ο νέος
|
||||
πυρήνας πρέπει να μεταγλωττιστεί με το νέο μεταγλωττιστή. Πιο
|
||||
συγκεκριμένα, ο νέος μεταγλωττιστής πρέπει να αναβαθμιστεί πριν
|
||||
από το νέο πυρήνα. Αυτό δε σημαίνει βέβαια ότι αυτός ο νέος
|
||||
μεταγλωττιστής πρέπει να <emphasis>εγκατασταθεί</emphasis> πριν
|
||||
μεταγλωττιστεί ο νέος πυρήνας.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Τα νέα εργαλεία χρήστη από το βασικό σύστημα του &os; μπορεί
|
||||
να εξαρτώνται από τον τρόπο λειτουργίας του νέου πυρήνα. Οπότε ο
|
||||
νέος πυρήνας πρέπει να εγκατασταθεί πριν από το νέο βασικό
|
||||
σύστημα.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Αυτά τα δύο σημεία είναι οι βασικοί λόγοι για τους οποίους
|
||||
προτείνονται τα κεντρικά βήματα μιας αναβάθμισης, τα
|
||||
βήματα <maketarget>buildworld</maketarget>,
|
||||
<maketarget>buildkernel</maketarget>,
|
||||
<maketarget>installkernel</maketarget>,
|
||||
και <maketarget>installworld</maketarget>. Στις επόμενες παραγράφους
|
||||
θα περιγράψουμε πιο αναλυτικά αυτά τα βήματα. Υπάρχουν κι άλλοι λόγοι
|
||||
όμως για τους οποίους χρειάζεται προσοχή όταν κάνετε μια τέτοια
|
||||
αναβάθμιση. Μερικοί από αυτούς είναι οι εξής:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Τα παλιά εργαλεία του βασικού συστήματος μπορεί να μην τρέχουν
|
||||
σωστά με το νέο πυρήνα. Γι αυτό πρέπει να εγκατασταθεί το
|
||||
ενημερωμένο βασικό σύστημα αμέσως μετά την εγκατάσταση του νέου
|
||||
πυρήνα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Μερικές φορές χρειάζονται αλλαγές στα αρχεία ρυθμίσεων πριν
|
||||
εγκατασταθεί το νέο βασικό σύστημα. Άλλες φορές η εγκατάσταση
|
||||
όλων των αρχείων ρυθμίσεων μπορεί να δημιουργήσει προβλήματα στην
|
||||
εγκατάσταση. Γι αυτό έχουμε χωρίσει την ενημέρωση των αρχείων
|
||||
ρυθμίσεων σε δύο ξεχωριστά βήματα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Στην πλειοψηφία των περιπτώσεων η διαδικασία εγκατάστασης
|
||||
αντικαθιστά ή προσθέτει αρχεία του συστήματος· δε σβήνει κανένα
|
||||
υπάρχον αρχείο. Σε μερικές περιπτώσεις αυτό μπορεί να
|
||||
δημιουργήσει προβλήματα. Όταν υπάρχει τέτοια περίπτωση, η
|
||||
διαδικασία εγκατάστασης τυπώνει ενημερωτικά μηνύματα για τα αρχεία
|
||||
τα οποία πρέπει να σβηστούν χειροκίνητα. Αυτό το βήμα μπορεί να
|
||||
αυτοματοποιηθεί στο μέλλον.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Έχοντας όλες αυτές τις ιδιαιτερότητες μιας αναβάθμισης από πηγαίο
|
||||
κώδικα, καταλήξαμε στην παρακάτω διαδικασία αναβάθμισης. Ορισμένες
|
||||
φορές μπορεί να χρειάζεται να προσθέσετε κάποια βήματα σε αυτή τη
|
||||
διαδικασία. Τα βασικά βήματα όμως παραμένουν τα ίδια, κι είναι τα
|
||||
εξής:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><command>make <maketarget>buildworld</maketarget></command></para>
|
||||
|
||||
<para>Αυτό το βήμα μεταγλωττίζει πρώτα μια ενημερωμένη έκδοση του
|
||||
ίδιου του μεταγλωττιστή συστήματος και μερικών απαραίτητων
|
||||
εργαλείων. Ύστερα, χρησιμοποιώντας το νέο μεταγλωττιστή,
|
||||
προετοιμάζει μια νέα έκδοση όλου του βασικού συστήματος του &os;.
|
||||
Τα ενημερωμένα εκτελέσιμα, βιβλιοθήκες και αρχεία προγραμματισμού
|
||||
καταλήγουν στον
|
||||
κατάλογο <filename class="directory">/usr/obj</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>buildkernel</maketarget></command></para>
|
||||
|
||||
<para>Σε αντίθεση με παλιότερες διαδικασίες αναβάθμισης (οι οποίες
|
||||
καλούσαν χειροκίνητα το &man.config.8; και το &man.make.1;) αυτό
|
||||
το βήμα μεταγλωττίζει τον πυρήνα του &os; χρησιμοποιώντας τον
|
||||
ενημερωμένο μεταγλωττιστή συστήματος από τον
|
||||
κατάλογο <filename class="directory">/usr/obj</filename>. Αυτό
|
||||
σας προστατεύει από προβλήματα ασυμβατότητας μεταξύ του
|
||||
μεταγλωττιστή και του πυρήνα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>installkernel</maketarget></command></para>
|
||||
|
||||
<para>Εγκατάσταση του νέου πυρήνα και των αρθρωμάτων του στο δίσκο
|
||||
του συστήματος. Έτσι μπορεί πλέον το σύστημα να ξεκινήσει με το
|
||||
νέο, ενημερωμένο πυρήνα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Εκκίνηση σε λειτουργία single user.</para>
|
||||
|
||||
<para>Η λειτουργία single user ελαχιστοποιεί την πιθανότητα να έχετε
|
||||
προβλήματα επειδή αναβαθμίσατε κάποιο πρόγραμμα που τρέχει ήδη.
|
||||
Είναι επίσης πιο ασφαλής, αφού δε χρειάζεται να τρέξετε τις
|
||||
εφαρμογές του παλιού βασικού συστήματος με το νέο πυρήνα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>mergemaster <option>-p</option></command></para>
|
||||
|
||||
<para>Αυτό το βήμα ενημερώνει τα απολύτως βασικά αρχεία ρυθμίσεων
|
||||
του &os;, για να μπορέσετε να εγκαταστήσετε σωστά το νέο βασικό
|
||||
σύστημα. Ενημερώνει, για παράδειγμα, τη βάση χρηστών και ομάδων
|
||||
χρηστών του &os;. Κάθε φορά που προστίθεται ένας νέος χρήστης
|
||||
συστήματος ή μια νέα ομάδα χρηστών, το
|
||||
βήμα <maketarget>installworld</maketarget> της αναβάθμισης θεωρεί
|
||||
ότι έχετε ήδη ρυθμίσει τους νέους χρήστες ή τις νέες ομάδες. Αυτό
|
||||
ακριβώς κάνει σε αυτό το σημείο το εργαλείο
|
||||
&man.mergemaster.8;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>installworld</maketarget></command></para>
|
||||
|
||||
<para>Το επόμενο βήμα είναι να εγκαταστήσετε το ενημερωμένο βασικό
|
||||
σύστημα από τον
|
||||
κατάλογο <filename class="directory">/usr/obj</filename>. Μετά
|
||||
από αυτό έχετε πλέον ένα νέο πυρήνα και ένα ενημερωμένο βασικό
|
||||
σύστημα, το οποίο ταιριάζει με τον νέο πυρήνα.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>mergemaster</command></para>
|
||||
|
||||
<para>Ένα από τα τελευταία βήματα είναι η αναβάθμιση των αρχείων
|
||||
ρυθμίσεων του συστήματος. Το εργαλείο &man.mergemaster.8; μπορεί
|
||||
να σας βοηθήσει σε αυτό το βήμα, αφού ενημερώνει τα αρχεία
|
||||
ρυθμίσεων κρατώντας και οποιεσδήποτε τοπικές αλλαγές έχετε κάνει
|
||||
στο σύστημά σας.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Επανεκκινήστε το σύστημα.</para>
|
||||
|
||||
<para>Μια τελευταία επανεκκίνηση του συστήματος σας εξασφαλίζει ότι
|
||||
το σύστημα ξεκινάει με το νέο πυρήνα, το ενημερωμένο βασικό
|
||||
σύστημα και τα καινούρια αρχεία ρυθμίσεων.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Αν η αναβάθμιση που κάνετε είναι από μια έκδοση του &os; σε μια
|
||||
πιο καινούρια έκδοση του ίδιου κλάδου ανάπτυξης, π.χ. από 7.0 σε 7.1,
|
||||
τότε μερικά από τα βήματα αυτή της διαδικασίας μπορεί να μη
|
||||
χρειάζονται αφού είναι λιγότερο πιθανό να συναντήσετε ασυμβατότητες
|
||||
μεταξύ του μεταγλωττιστή συστήματος, του πυρήνα, του βασικού
|
||||
συστήματος και των αρχείων ρυθμίσεων. Η αναβάθμιση σε τέτοιες
|
||||
περιπτώσεις, μεταξύ δύο minor εκδόσεων του &os;, ίσως μπορεί να γίνει
|
||||
και με την παλιότερη διαδικασία:
|
||||
τρέχοντας<command>make <maketarget>world</maketarget></command> και
|
||||
ύστερα μεταγλωττίζοντας και στήνοντας ένα νέο πυρήνα.</para>
|
||||
|
||||
<para>Όταν όμως αναβαθμίσετε το &os; μεταξύ major εκδόσεων, καλύτερα να
|
||||
χρησιμοποιήσετε τη διαδικασία που περιγράφουμε εδώ. Αλλιώς μπορεί να
|
||||
αντιμετωπίσετε προβλήματα είτε κατά τη διάρκεια της αναβάθμισης ή αφού
|
||||
έχει πλέον ολοκληρωθεί.</para>
|
||||
|
||||
<para>Κάποιες από τις αναβαθμίσεις (π.χ. από μια έκδοση
|
||||
4.<replaceable>X</replaceable> σε 5.0) μπορεί να απαιτούν μερικά
|
||||
χειροκίνητα βήματα (όπως το να μετακινήσετε ή να σβήσετε συγκεκριμένα
|
||||
αρχεία πριν το βήμα <maketarget>installworld</maketarget>). Πριν από
|
||||
κάθε αναβάθμιση διαβάστε προσεκτικά τις οδηγίες στο
|
||||
αρχείο <filename>/usr/src/UPDATING</filename>· ειδικά τις οδηγίες στο
|
||||
τέλος του αρχείου, οι οποίες περιγράφουν αναλυτικά την προτεινόμενη
|
||||
διαδικασία αναβάθμισης.</para>
|
||||
|
||||
<para>Αυτή η διαδικασία αναβάθμισης εξελλίσεται και διορθώνεται καθώς οι
|
||||
προγραμματιστές του &os; ανακαλύπτουν καινούριες εξαρτήσεις μεταξύ των
|
||||
συστατικών του συστήματος ή κάνουν διορθώσεις για να αποφύγουν
|
||||
ασυμβατότητες μεταξύ των διαφορετικών υποσυστημάτων. Ελπίζουμε ότι τα
|
||||
κεντρικά βήματα της διαδικασίας που περιγράφεται εδώ δε θα αλλάξουν
|
||||
πολύ για αρκετό καιρό πλέον.</para>
|
||||
|
||||
<note>
|
||||
<para>Η αναβάθμιση του &os; από τις εκδόσεις
|
||||
3.<replaceable>X</replaceable> ή από παλιότερες εκδόσεις είναι
|
||||
σχετικά πιο περίπλοκη διαδικασία. Διαβάστε με πολλή προσοχή το
|
||||
αρχείο <filename>UPDATING</filename> αν πραγματικά χρειαστεί να
|
||||
αναβαθμίσετε ένα τέτοιο σύστημα.</para>
|
||||
</note>
|
||||
|
||||
<para>Οπότε, συγκεντρώνοντας όλα τα βήματα τα οποία περιγράψαμε
|
||||
παραπάνω, η πρτεινόμενη διαδικασία αναβάθμισης του &os; από τον πηγαίο
|
||||
κώδικα του συστήματος είναι:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make buildworld</userinput>
|
||||
|
|
Loading…
Reference in a new issue