Date: Sun, 1 Feb 2009 19:10:11 GMT From: Rene Ladan <rene@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 157001 for review Message-ID: <200902011910.n11JABns034613@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=157001 Change 157001 by rene@rene_self on 2009/02/01 19:09:55 MFen handbook/cutting-edge 1.239 -> 1.240 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#20 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#20 (text+ko) ==== @@ -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 @@ <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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902011910.n11JABns034613>