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 $
|
$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
|
%SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
|
||||||
%SRCID% 1.239
|
%SRCID% 1.240
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<chapter id="updating-upgrading">
|
<chapter id="updating-upgrading">
|
||||||
|
@ -1722,10 +1722,217 @@ DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting>
|
||||||
<sect2 id="canonical-build">
|
<sect2 id="canonical-build">
|
||||||
<title>De universele wijze om een systeem bij te werken</title>
|
<title>De universele wijze om een systeem bij te werken</title>
|
||||||
|
|
||||||
<para>Een systeem bijwerken kan met de volgende procedure, nadat
|
<para>Om uw systeem bij te werken, dient u
|
||||||
<filename>/usr/src/UPDATING</filename> is geraadpleegd om te
|
<filename>/usr/src/UPDATING</filename> te controleren op
|
||||||
controleren of er voor buildworld voor de gebruikte versie van
|
eventuele pre-buildworld stappen die nodig zijn voor uw versie
|
||||||
de broncode nog acties zijn uit te voeren:</para>
|
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>
|
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||||
&prompt.root; <userinput>make buildworld</userinput>
|
&prompt.root; <userinput>make buildworld</userinput>
|
||||||
|
|
Loading…
Reference in a new issue