MFen 1.239 -> 1.240
This commit is contained in:
parent
2b79d18def
commit
b969344c39
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33798
1 changed files with 212 additions and 5 deletions
|
@ -5,7 +5,7 @@
|
|||
$FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.47 2006/01/07 11:27:42 siebrand Exp $
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
|
||||
%SRCID% 1.239
|
||||
%SRCID% 1.240
|
||||
-->
|
||||
|
||||
<chapter id="updating-upgrading">
|
||||
|
@ -1722,10 +1722,217 @@ DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting>
|
|||
<sect2 id="canonical-build">
|
||||
<title>De universele wijze om een systeem bij te werken</title>
|
||||
|
||||
<para>Een systeem bijwerken kan met de volgende procedure, nadat
|
||||
<filename>/usr/src/UPDATING</filename> is geraadpleegd om te
|
||||
controleren of er voor buildworld voor de gebruikte versie van
|
||||
de broncode nog acties zijn uit te voeren:</para>
|
||||
<para>Om uw systeem bij te werken, dient u
|
||||
<filename>/usr/src/UPDATING</filename> te controleren op
|
||||
eventuele pre-buildworld stappen die nodig zijn voor uw versie
|
||||
van de broncode en daarna de procedure te gebruiken die hier
|
||||
beschreven staat.</para>
|
||||
|
||||
<para>Deze bijwerkstappen nemen aan dat u nu een oude versie van
|
||||
&os; gebruikt, die uit een oude compiler, een oude kernel, een
|
||||
oude wereld en oude instellingenbestanden bestaat. Onder
|
||||
<quote>wereld</quote> worden de binairen, bibliotheken, en
|
||||
programmeerbestanden van het kernsysteem verstaan. De compiler
|
||||
is deel van <quote>wereld</quote>, maar heeft enkele speciale
|
||||
aandachtspunten.<para>
|
||||
|
||||
<para>We nemen ook aan dat u reeds de broncode van een nieuwer
|
||||
systeem heeft verkregen. Bekijk, als de bronnen op een bepaald
|
||||
systeem ook oud zijn, <xref linkend="synching"> voor uitgebreide
|
||||
hulp over het synchroniseren ervan naar een nieuwere
|
||||
versie.</para>
|
||||
|
||||
<para>Het bijwerken van het systeem vanaf de broncode is wat
|
||||
subtieler dan het op het eerste gezicht lijkt, en de
|
||||
ontwikkelaars van &os; vonden het in de loop der jaren nodig om
|
||||
de aangeraden methode redelijk drastisch te veranderen met het
|
||||
aan het licht komen van nieuwe soorten onontwijkbare
|
||||
afhankelijkheden. De rest van deze sectie beschrijft de
|
||||
rationale achter de huidige aanbevolen bijwerkmethode.</para>
|
||||
|
||||
<para>Elke succesvolle bijwerkmethode krijgt te maken met de
|
||||
volgende punten:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Het kan voorkomen dat de oude compiler de nieuwe kernel
|
||||
niet kan compileren. (Oude compilers bevatten soms bugs.)
|
||||
De nieuwe kernel dient dus met de nieuwe compiler gebouwd te
|
||||
worden. In het bijzonder moet de nieuwe compiler gebouwd
|
||||
worden voordat de nieuwe kernel gebouwd wordt. Dit betekent
|
||||
niet per se dat de nieuwe compiler
|
||||
<emphasis>geïnstalleerd</emphasis> moet worden voordat
|
||||
de nieuwe kernel gebouwd wordt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>De nieuwe wereld kan afhankelijk zijn van mogelijkheden
|
||||
van de nieuwe kernel. Dus moet de nieuwe kernel worden
|
||||
geïnstalleerd voordat de nieuwe wereld wordt
|
||||
geïnstalleerd.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>De eerste twee gevallen zijn de basis voor de methode
|
||||
<maketarget>buildworld</maketarget>,
|
||||
<maketarget>buildkernel</maketarget>,
|
||||
<maketarget>installkernel</maketarget>,
|
||||
<maketarget>installworld</maketarget> die we in de volgende
|
||||
paragrafen beschrijven. Dit is geen uitputtende lijst van alle
|
||||
redenen waarom het huidige aanbevolen bijwerkproces de voorkeur
|
||||
verdient. Wat minder voor de hand liggende redenen worden
|
||||
hieronder genoemd:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Het kan zijn dat de oude wereld niet correct draait op
|
||||
de nieuwe kernel, dus moet de nieuwe wereld onmiddellijk na
|
||||
het installeren van de nieuwe kernel geïnstalleerd
|
||||
worden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sommige instellingen moeten veranderd worden voordat de
|
||||
nieuwe wereld wordt geïnstalleerd, maar anderen kunnen
|
||||
de oude wereld kapot maken. Vandaar dat over het algemeen
|
||||
twee verschillende bijwerkstappen voor de instellingen nodig
|
||||
zijn.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Voor het grootste gedeelte houdt het bijwerkproces zich
|
||||
alleen bezig met het vervangen of toevoegen van bestanden;
|
||||
bestaande oude bestanden worden niet verwijderd. Dit kan in
|
||||
sommige gevallen problemen geven. Als een gevolg zal de
|
||||
bijwerkprocedure soms aangeven dat bepaalde bestanden
|
||||
tijdens bepaalde stappen handmatig verwijderd dienen te
|
||||
worden. Dit kan in de toekomst eventueel geautomatiseerd
|
||||
worden.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Deze zorgen hebben tot het volgende aanbevolen bijwerkproces
|
||||
geleid. Merk op dat het gedetailleerde proces voor bepaalde
|
||||
updates aanvullende stappen nodig kan hebben, maar dit
|
||||
kernproces zou de komende tijd ongewijzigd moeten
|
||||
blijven:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><command>make <maketarget>buildworld</maketarget></command></para>
|
||||
|
||||
<para>Dit compileert eerst de nieuwe compiler en enkele
|
||||
aanverwante gereedschappen, daarna wordt de nieuwe compiler
|
||||
gebruikt om de rest van de nieuwe wereld te compileren. Het
|
||||
resultaat komt in <filename
|
||||
class="directory">/usr/obj</filename> te staan.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>buildkernel</maketarget></command></para>
|
||||
|
||||
<para>In tegenstelling tot de oude aanpak, die &man.config.8;
|
||||
en &man.make.1; gebruikt, gebruikt dit de
|
||||
<emphasis>nieuwe</emphasis> compiler die in <filename
|
||||
class="directory">/usr/obj</filename> verblijft. Dit
|
||||
beschermt u tegen mismatches tussen de compiler en de
|
||||
kernel.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>installkernel</maketarget></command></para>
|
||||
|
||||
<para>Plaatst de nieuwe kernel en kernelmodules op de schijf,
|
||||
waardoor het mogelijk wordt om met de nieuw bijgewerkte
|
||||
kernel op te starten.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Start opnieuw op in enkele-gebruikersmodus.</para>
|
||||
|
||||
<para>De enkele-gebruikersmodus minimaliseert problemen met
|
||||
het bijwerken van software die al draait. Het minimaliseert
|
||||
ook problemen die opduiken door een oude wereld op een
|
||||
nieuwe kernel te draaien.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>mergemaster <option>-p</option></command></para>
|
||||
|
||||
<para>Dit voert wat initiële updates aan
|
||||
instellingenbestanden uit ter voorbereiding op de nieuwe
|
||||
wereld. Het kan bijvoorbeeld nieuwe gebruikersgroepen aan
|
||||
het systeem, of nieuwe gebruikersnamen aan de
|
||||
wachtwoorddatabase toevoegen. Dit is vaak nodig wanneer er
|
||||
nieuwe groepen of speciale accounts voor systeemgebruikers
|
||||
zijn toegevoegd sinds de laatste keer bijwerken, zodat de
|
||||
stap <maketarget>installworld</maketarget> zonder problemen
|
||||
de nieuw geïnstalleerde namen van systeemgebruikers of
|
||||
systeemgroepen kan gebruiken.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>make <maketarget>installworld</maketarget></command></para>
|
||||
|
||||
<para>Kopieert de wereld van <filename
|
||||
class="directory">/usr/obj</filename>. U heeft nu een
|
||||
nieuwe kernel en een nieuwe wereld op schijf staan.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><command>mergemaster</command></para>
|
||||
|
||||
<para>Nu kunt u de overgebleven instellingenbestanden
|
||||
bijwerken, aangezien u een nieuwe wereld op schijf heeft
|
||||
staan.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Start opnieuw op.</para>
|
||||
|
||||
<para>Een volledige nieuwe start van de machine is nodig om de
|
||||
nieuwe kernel en de nieuwe wereld met nieuwe
|
||||
instellingenbestanden te laden.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Merk op dat als u van de ene uitgave van dezelfde tak van
|
||||
&os; bijwerkt naar een recentere uitgave van dezelfde tak, i.e.
|
||||
van 7.0 naar 7.1, dat deze procedure dan niet absoluut nodig is,
|
||||
aangezien het onwaarschijnlijk is dat u serieuze problemen
|
||||
krijgt met de compiler, kernel, gebruikersland en
|
||||
instellingenbestanden. De oudere aanpak met <command>make
|
||||
<maketarget>world</maketarget></command> gevolgd door het
|
||||
bouwen en installeren van een nieuwe kernel kan voor kleine
|
||||
updates goed genoeg zijn.</para>
|
||||
|
||||
<para>Maar mensen die deze procedure niet volgen tijdens het
|
||||
bijwerken tussen grote uitgaven kunnen wat problemen
|
||||
verwachten.</para>
|
||||
|
||||
<para>Het is ook goed om op te merken dat veel upgrades (i.e.
|
||||
4.<replaceable>X</replaceable> naar 5.0) wat specifieke
|
||||
aanvullende stappen nodig hebben (bijvoorbeeld het hernoemen of
|
||||
verwijderen van specifieke bestanden voorafgaand aan
|
||||
installworld). Lees het bestand
|
||||
<filename>/usr/src/UPDATING</filename> zorgvuldig, met name het
|
||||
einde, waar het huidig aangeraden bijwerkproces expliciet wordt
|
||||
beschreven.</para>
|
||||
|
||||
<para>Deze procedure is in de loop der tijd veranderd aangezien de
|
||||
ontwikkelaars zagen dat het onmogelijk was om bepaalde
|
||||
mismatch-problemen volledig te voorkomen. Hopelijk blijft de
|
||||
huidige procedure voor een lange tijd stabiel.</para>
|
||||
|
||||
<note>
|
||||
<para>Het bijwerken van &os; 3.<replaceable>X</replaceable> of
|
||||
eerdere uitgaven is wat lastiger; lees
|
||||
<filename>UPDATING</filename> zorgvuldig door als u zo'n soort
|
||||
upgrade moet uitvoeren.</para>
|
||||
</note>
|
||||
|
||||
<para>Samengevat is de huidige aanbevolen manier om &os; vanaf
|
||||
broncode bij te werken:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make buildworld</userinput>
|
||||
|
|
Loading…
Reference in a new issue