Date: Wed, 31 Dec 2008 15:32:06 GMT From: Rene Ladan <rene@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 155509 for review Message-ID: <200812311532.mBVFW6DZ019104@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=155509 Change 155509 by rene@rene_self on 2008/12/31 15:31:50 Complete merge of updating chapter into cutting-edge chapter. Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#8 (text+ko) ==== @@ -50,36 +50,51 @@ </authorgroup> </chapterinfo> - <title>Het scherp van de snede</title> + <title>&os; updaten en upgraden</title> - <sect1 id="cutting-edge-synopsis"> + <sect1 id="updating-upgrading-synopsis"> <title>Overzicht</title> <para>&os; wordt ontwikkeld tussen de verschillende versies in. - Voor mensen die het nieuwste van het nieuwste willen hebben zijn - er verschillende makkelijke mechanismes om een systeem - gesynchroniseerd te houden met de laatste ontwikkelingen. Wees - gewaarschuwd: het nieuwste van het nieuwste is niet voor - iedereen geschikt! Dit hoofdstuk helpt om een keuze te maken of - het wenselijk is het ontwikkelsysteem te volgen of - één van de uitgegeven versies.</para> + Sommige mensen prefereren om de officieel uitgegeven versies te + draaien, terwijl anderen gesynchroniseerd willen blijven met de + nieuwste ontwikkelingen. Zelfs officiële uitgaven echter + worden vaak bijgewerkt met veiligheids- en andere kritieke + reparaties. Ongeacht de gebruikte versie biedt &os; alle + noodzakelijke gereedschappen om uw systeem bijgewerkt te houden, + en maakt het het upgraden tussen versies ook gemakkelijk. Dit + hoofdstuk helpt om een keuze te maken of het wenselijk is het + ontwikkelsysteem te volgen of één van de uitgegeven + versies. De basisgereedschappen om uw systeem bijgewerkt te + houden worden ook gepresenteerd.</para> <para>Na het lezen van dit hoofdstuk weet de lezer:</para> <itemizedlist> <listitem> - <para>De verschillen tussen de ontwikkeltakken &os.stable; en - &os.current;;</para> + <para>Welke gereedschappen gebruikt kunnen worden om het systeem + en de Portscollectie te updaten.</para> </listitem> <listitem> <para>Hoe een systeem bijgewerkt kan worden met + <application>freebsd-update</application>, <application>CVSup</application>, <application>CVS</application> of <application>CTM</application>;</para> </listitem> <listitem> + <para>Hoe de toestand van een geïnstalleerd systeem met een + bekende maagdelijke kopie te vergelijken.</para> + </listitem> + + <listitem> + <para>De verschillen tussen de ontwikkeltakken &os.stable; en + &os.current;;</para> + </listitem> + + <listitem> <para>Hoe een basissysteem opnieuw te compileren en te herinstalleren met <command>make buildworld</command>, enzovoort.</para> @@ -111,6 +126,408 @@ </note> </sect1> + <sect1 id="updating-upgrading-freebsdupdate"> + <sect1info> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Geschreven door </contrib> + </author> + </authorgroup> + + <authorgroup> + <author> + <firstname>Colin</firstname> + <surname>Percival</surname> + <contrib>Gebaseerd op notities aangeleverd door </contrib> + </author> + </authorgroup> + </sect1info> + + <title>FreeBSD Update</title> + + <indexterm><primary>updaten en upgraden</primary></indexterm> + + <indexterm> + <primary>freebsd-update</primary> + + <see>updating-upgrading</see> + </indexterm> + + <para>Het toepassen van beveiligingspatches is een belangrijk + onderdeel van het beheren van computersoftware, met name het + besturingssysteem. Dit was voor een lange tijd geen gemakkelijk + proces op &os;. Er moesten patches op de broncode worden + toegepast, de code moest herbouwd worden tot binairen, en daarna + moesten de binairen worden geherinstalleerd.</para> + + <para>Dit is niet langer het geval aangezien &os; nu een gereedschap + heeft dat eenvoudigweg <command>freebsd-update</command> heet. + Dit gereedschap biedt twee gescheiden functies. Ten eerste + voorziet het in het toepassen van binaire beveiligings- en + errata-updates op het basissysteem van &os; zonder de eis om te + bouwen en te installeren. Ten tweede ondersteunt het gereedschap + kleine en grote uitgave-upgrades.</para> + + <note> + <para>Binaire updates zijn beschikbaar voor alle architecturen en + uitgaven die momenteel door het beveiligingsteam worden + ondersteund; voor sommige eigenschappen, zoals de upgrades van + het besturingssysteem &os;, zijn de laatste uitgave van + &man.freebsd-update.8; en &os; 6.3 nodig. Voordat naar + een nieuwe uitgave wordt ge-updated, dienen de huidige + uitgaveaankondigingen gelezen te worden aangezien ze belangrijke + informatie over de gewenste uitgave kunnen bevatten. De + aankondigingen kunnen op de volgende koppeling bekeken worden: + <ulink url="http://www.FreeBSD.org/releases/"></ulink>.</para> + </note> + + <para>Als er een <command>crontab</command> bestaat die de + mogelijkheden van <command>freebsd-update</command> gebruikt, moet + het uitgeschakeld worden voordat aan de volgende operatie wordt + begonnen.</para> + + <sect2> + <title>Het configuratiebestand</title> + + <para>Sommige gebruikers willen het configuratiebestand tweaken, + waardoor het proces beter gecontroleerd kan worden. De opties + zijn goed gedocumenteerd, maar voor de volgenden is wat extra + uitleg nodig:</para> + + <programlisting># Componenten van het basissysteem die bijgewerkt moeten blijven +Components src world kernel</programlisting> + + <para>Deze parameter bepaalt welke delen van &os; bijgewerkt + blijven. Standaard wordt de broncode bijgewerkt, het hele + basissysteem, en de kernel. Dezelfde componenten als tijdens de + installatie zijn beschikbaar, het toevoegen van bijvoorbeeld + "world/games" zou de spelpatches toepassen. Het gebruik van + "src/bin" zou de broncode in <filename + class="directory">src/bin</filename> bijgewerkt houden.</para> + + <para>Het beste kan dit op de standaardwaarde blijven aangezien + het veranderen hiervan om specifieke items te bevatten de + gebruiker dwingt om alle items die bijgewerkt dienen te worden + op te noemen. Dit kan rampzalige gevolgen hebben aangezien de + broncode en de binairen asynchroon kunnen raken.</para> + + <programlisting># Paden die beginnen met iets wat overeenkomt met een regel in een IgnorePaths +# statement zullen genegeerd worden. +IgnorePaths</programlisting> + + <para>Voeg paden, zoals + <filename class="directory">/bin</filename> of + <filename class="directory">/sbin</filename> toe om deze + specifieke mappen ongemoeid te laten tijdens het updateproces. + Deze optie kan gebruikt worden om te voorkomen dat + <command>freebsd-update</command> lokale wijzigingen + overschrijft.</para> + + <programlisting># Paden die beginnen met iets wat overeenkomt met een regel in een UpdateIfUnmodified +# statement zullen alleen worden bijgewerkt als de inhoud van het bestand niet is +# gewijzigd door de gebruiker (tenzij veranderingen zijn samengevoegd; zie beneden). +UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting> + + <para>Werk configuratiebestanden in de aangegeven mappen alleen + bij als ze niet zijn gewijzigd. Alle veranderingen die door de + gebruiker zijn gemaakt maken het automatisch bijwerken van deze + bestanden ongeldig. Er is een andere optie, + <literal>KeepModifiedMetadata</literal>, die + <command>freebsd-update</command> instrueert om de veranderingen + tijdens het samenvoegen te bewaren.</para> + + <programlisting># Wanneer naar een nieuwe uitgave van &os; wordt ge-upgraded, worden lokale veranderingen van bestanden die overeenkomen met MergeChanges +# samengevoegd in de versie van de nieuwe uitgave. +MergeChanges /etc/ /var/named/etc/</programlisting> + + <para>Lijst van mappen met instellingenbestanden waar + <command>freebsd-update</command> moet proberen om in samen te + voegen. Het proces van bestanden samenvoegen is een serie + van &man.diff.1;-patches die ongeveer gelijk is aan + &man.mergemaster.8; met minder opties, de samenvoegingen worden + ofwel geaccepteerd, of openen een tekstverwerker, of zorgen + ervoor dat <command>freebsd-update</command> afbreekt. Maak in + geval van twijfel een reservekopie van <filename + class="directory">/etc</filename> en accepteer de + samenvoegingen. In <xref linkend="mergemaster"> staat meer + informatie over het commando <command>mergemaster</command>.</para> + + <programlisting># Map waarin de gedownloade updates en tijdelijke +bestanden +# die door een &os; Update worden gebruikt worden worden opgeslagen. +# WorkDir /var/db/freebsd-update</programlisting> + + <para>Dit is de map waarin alle patches en tijdelijke bestanden + worden geplaatst. In het geval dat de gebruiker een + versie-upgrade uitvoert, dient deze locatie tenminste een + gigabyte aan vrije schijfruimte te hebben.</para> + + <programlisting># Wanneer tussen uitgaven wordt ge-upgraded, dient de lijst van Componenten dan +# strikt gelezen te worden (StrictComponents yes) of slechts als een lijst van componenten + +# die geïnstalleerd *kunnen* worden en waarvan &os; Update uit dient te zoeken +# welke daadwerkelijk zijn geïnstalleerd en die te upgraden (StrictComponents no)? +# StrictComponents no</programlisting> + + <para>Wanneer ingesteld op <literal>yes</literal>, zal + <command>freebsd-update</command> aannemen dat de lijst + <literal>Components</literal> compleet is en zal het niet + proberen om wijzigingen buiten de lijst te maken. Effectief zal + <command>freebsd-update</command> proberen om elk bestand bij te + werken dat op de lijst <literal>Components</literal> staat.</para> + </sect2> + + <sect2> + <title>Beveiligingspatches</title> + + <para>Beveiligingspatches staan op een verre machine en kunnen met + het volgende commando gedownload en geïnstalleerd + worden:</para> + + <screen>&prompt.root; <userinput>freebsd-update fetch</userinput> +&prompt.root; <userinput>freebsd-update install</userinput></screen> + + <para>Als er kernelpatches zijn toegepast moet het systeem opnieuw + opgestart worden. Als alles goed is gegaan dient het systeem + gepatcht te zijn en kan <command>freebsd-update</command> als + een nachtelijke &man.cron.8;-taak gedraaid worden. Een regel + in <filename>/etc/crontab</filename> zou genoeg moeten zijn om + deze taak te volbrengen:</para> + + <programlisting>@daily root freebsd-update cron</programlisting> + + <para>Deze regel verklaart dat eenmaal per dag het commando + <command>freebsd-update</command> gedraaid zal worden. Op deze + manier, door het argument <option>cron</option> te gebruiken, + zal <command>freebsd-update</command> alleen kijken of er + updates bestaan. Als er patches bestaan, zullen ze automatisch + worden gedownload naar de plaatselijke schijf maar niet worden + toegepast. Er zal een email aan de gebruiker + <username>root</username> worden verstuurd zodat ze handmatig + geïnstalleerd kunnen worden.</para> + + <para>Als er iets misging, heeft <command>freebsd-update</command> + de mogelijkheid om de laatste verzamelingen veranderingen terug + te draaien met het volgende commando:</para> + + <screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen> + + <para>Eenmaal voltooid, dient het systeem herstart te worden als + de kernel of enige kernelmodule is gewijzigd. Dit stelt &os; in + staat om de nieuwe binairen in het geheugen te laden.</para> + + <note> + <para>De <command>freebsd-update</command> werkt alleen met de + kernel <filename>GENERIC</filename>. Als er wijzigingen aan + de kernel <filename>GENERIC</filename> zijn gemaakt of er een + eigen kernel is geïnstalleerd, wordt + <command>freebsd-update</command> niet voltooid — + het zal falen in het eerste geval en een fout produceren in + het laatste.</para> + </note> + </sect2> + + <sect2> + <title>Grote en kleine upgrades</title> + + <para>Dit proces ruimt oude objectbestanden en bibliotheken op + waardoor de meeste applicaties van derde partijen kapot gaan. + Het wordt aangeraden dat alle geïnstalleerde poorten ofwel + verwijderd en geherinstalleerd worden of later ge-upgraded + worden met het hulpmiddel <filename + role="package">ports-mgmt/portupgrade</filename>. De meeste + gebruikers zullen willen proefdraaien met het volgende + commando:</para> + + <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen> + + <para>Dit zorgt ervoor dat alles juist wordt geherinstalleerd. + Merk op dat het instellen van de omgevingsvariabele + <makevar>BATCH</makevar> op <literal>yes</literal> het antwoord + <literal>yes</literal> zal geven op alle prompts tijdens dit + proces, waardoor het niet nodig is om handmatig in het + bouwproces in te grijpen.</para> + + <para>Updates van grote en kleine versies kunnen worden uitgevoerd + door een uitgaveversie als doel aan + <command>freebsd-update</command> op te geven, het volgende + commando zal bijvoorbeeld updaten naar &os; 6.3:</para> + + <screen>&prompt.root; <userinput>freebsd-update -r 6.3-RELEASE upgrade</userinput></screen> + + <para>Nadat het commando is ontvangen, zal + <command>freebsd-update</command> het instellingenbestand en het + huidige systeem evalueren in een poging om de benodigde + informatie te verzamelen om het systeem te updaten. Een lijst + op het scherm zal aangeven welke componenten zijn gedetecteerd + en welke niet. Bijvoorbeeld:</para> + + <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found. +Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done. +Fetching metadata index... done. +Inspecting system... done. + +The following components of FreeBSD seem to be installed: +kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games +src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue +src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin +world/base world/info world/lib32 world/manpages + +The following components of FreeBSD do not seem to be installed: +kernel/generic world/catpages world/dict world/doc world/games +world/proflibs + +Does this look reasonable (y/n)? y</screen> + + <para>Nu zal <command>freebsd-update</command> proberen om alle + bestanden die nodig zijn voor de upgrade te downloaden. In + sommige gevallen kan de gebruiker worden gevraagd wat te + installeren of hoe verder te gaan.</para> + + <para>Nadat alle patches zijn gedownload naar het plaatselijke + systeem zullen ze worden toegepast. Dit proces kan afhankelijk + van de snelheid en werklast van de machine even duren. Hierna + zullen instellingenbestanden worden samengevoegd — + voor dit gedeelte van het proces is enige tussenkomst van de + gebruiker nodig aangezien een bestand kan worden samengevoegd of + omdat er een tekstverwerker op het scherm kan verschijnen om het + bestand handmatig samen te voegen. Het resultaat van elke + succesvolle samenvoeging zal aan de gebruiker worden getoond + naarmate het proces verder gaat. Een mislukte of genegeerde + samenvoegpoging zal het proces afbreken. Het is mogelijk voor + gebruikers om een reservekopie van <filename + class="directory">/etc</filename> te maken en belangrijke + bestanden, zoals <filename>master.passwd</filename> of + <filename>group</filename>, later samen te voegen.</para> + + <note> + <para>Het systeem is nog niet veranderd, al het patchen en + samenvoegen gebeurt in een andere map. Wanneer alle patches + succesvol zijn toegepast, alle instellingenbestanden zijn + samengevoegd en het erop lijkt dat het proces soepel verloopt, + dienen de veranderingen verzegeld te worden door de + gebruiker.</para> + </note> + + <para>Als dit proces eenmaal voltooid is, kan de upgrade aan de + schijf toevertrouwd worden met het volgende commando.</para> + + <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> + + <para>De kernel en kernelmodules zullen als eerste gepatcht + worden. Nu moet de machine opnieuw opgestart worden. Het + volgende commando kan gegeven worden om de machine te herstarten + en dus de nieuwe kernel in het geheugen te laden:</para> + + <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> + + <para>Als het systeem weer actief is, moet + <command>freebsd-update</command> nogmaals gestart worden. + De toestand van het proces is opgeslagen en dus zal + <command>freebsd-update</command> niet vooraan beginnen, maar + zal het alle oude gedeelde bibliotheken en objectbestanden + verwijderen. Geef het volgende commando om verder te gaan op + dit punt:</para> + + <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> + + <note> + <para>Afhankelijk van het feit of er versienummers van + bibliotheken zijn opgehoogd, kunnen er slechts twee in plaats + van drie installatiefasen zijn.</para> + </note> + + <para>Alle software van derde partijen dient nu opnieuw gebouwd en + geïnstalleerd te worden. Dit is nodig omdat + geïnstalleerde software van bibliotheken afhankelijk kan + zijn die tijdens het upgradeproces zijn verwijderd. Het + commando <filename + role="package">ports-mgmt/portupgrade</filename> kan gebruikt + worden om dit proces te automatiseren. Dit proces kan met de + volgende commando's gestart worden:</para> + + <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput> +&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput> +&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput> +&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput> +&prompt.root; <userinput>portupgrade -af</userinput></screen> + + <para>Voltooi, nadat dit voltooid is, het upgradeproces met een + laatste aanroep naar <command>freebsd-update</command>. Geef + het volgende commando om alle losse eindjes in het upgradeproces + samen te knopen:</para> + + <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> + + <para>Start de machine opnieuw op in de nieuwe &os;-versie. Het + proces is voltooid.</para> + </sect2> + + <sect2> + <title>Het vergelijken van systeemtoestanden</title> + + <para>Het gereedschap <command>freebsd-update</command> kan + gebruikt worden om de toestand van de geïnstalleerde versie + van &os; met een bekende goede kopie te vergelijken. Deze optie + evalueert de huidige versie van systeemgereedschappen, + bibliotheken, en instellingenbestanden. Geef het volgende + commando om met de vergelijking te beginnen:</para> + + <screen>&prompt.root; <userinput>freebsd-update IDS >> uitvoerbestand.ids</userinput></screen> + + <warning> + <para>Hoewel de commandonaam <acronym>IDS</acronym> is, is het + in geen geval een vervanging voor een indringdetectiesysteem + zoals <filename role="package">security/snort</filename>. + Aangezien <command>freebsd-update</command> gegevens op schijf + opslaat, is de mogelijkheid om te knoeien duidelijk. Hoewel + deze mogelijkheid verminderd kan worden door de instelling + <varname>kern.securelevel</varname> te gebruiken en de + gegevens van <command>freebsd-update</command> op een + bestandssysteem dat alleen gelezen kan worden op te slaan + wanneer deze niet gebruikt worden, zou een betere oplossing + zijn om het systeem met een veilige schijf te vergelijken, + zoals een <acronym>DVD</acronym> of een veilig opgeslagen + externe <acronym>USB</acronym>-schijf.</para> + </warning> + + <para>Het systeem zal nu geïnspecteerd worden, en er zal een + lijst van hun &man.sha256.1;-hashwaarden, zowel de bekende + waarde in de uitgave en de huidige geïnstalleerde waarde, + afgebeeld worden. Hierom wordt de uitvoer naar het bestand + <filename>uitvoerbestand.ids</filename> gezonden. Het scrollt + te snel voorbij om het met het oog te vergelijken, en het vult + al snel de gehele consolebuffer op.</para> + + <para>Deze regels zijn ook extreem lang, maar het uitvoerformaat + kan vrij eenvoudig geparsed worden. Geef, om bijvoorbeeld een + lijst van alle bestanden te krijgen die verschillen van die in + de uitgave, het volgende commando:</para> + + <screen>&prompt.root; <userinput>cat uitvoerbestand.ids | awk '{ print $1 }' | more</userinput> +/etc/master.passwd +/etc/motd +/etc/passwd +/etc/pf.conf</screen> + + <para>Deze uitvoer is afgekapt, er bestaan veel meer bestanden. + Sommige van deze bestanden hebben natuurlijke veranderingen, het + <filename>/etc/passwd</filename> is gewijzigd omdat er + gebruikers aan het systeem zijn toegevoegd. In sommige gevallen + kunnen er andere bestanden zijn, zoals kernelmodules, die + verschillen aangezien <command>freebsd-update</command> ze + ge-updated kan hebben. Voeg, om bepaalde bestanden of mappen + uit te sluiten, deze toe aan de optie + <literal>IDSIgnorePaths</literal> in + <filename>/etc/freebsd-update.conf</filename>.</para> + + <para>Dit systeem kan gebruikt worden als deel van een uitgebreide + upgrademethode, afgezien van de eerder besproken versie.</para> + </sect2> + </sect1> + <sect1 id="updating-upgrading-portsnap"> <sect1info> <authorgroup> @@ -199,7 +616,7 @@ </sect1> <sect1 id="current-stable"> - <title>&os.current; vs. &os.stable;</title> + <title>Een ontwikkelingstak volgen</title> <indexterm><primary>-CURRENT</primary></indexterm> @@ -1024,8 +1441,8 @@ &prompt.root; <userinput>rm -rf *</userinput></screen> </sect2> - <sect2 id="cutting-edge-recompilebase"> - <title>Broncode van het basis systeem hercompileren</title> + <sect2 id="updating-upgrading-recompilebase"> + <title>Broncode van het basissysteem hercompileren</title> <sect3> <title>Uitvoer bewaren</title> @@ -1420,7 +1837,8 @@ <para>Als &man.mergemaster.8; gebruikt wordt (zoals aangeraden), kan doorgegaan worden met het <link - linkend="cutting-edge-rebooting">volgende onderdeel</link>.</para> + linkend="updating-upgrading-rebooting">volgende + onderdeel</link>.</para> <para>De simpelste manier om met de hand bij te werken, is de bestanden in een nieuwe map installeren en daarna naar @@ -1578,7 +1996,7 @@ </sect3> </sect2> - <sect2 id="cutting-edge-rebooting"> + <sect2 id="updating-upgrading-rebooting"> <title>Herstarten</title> <para>Dit was het. Na een controle of alles op de juiste plaats @@ -1597,9 +2015,9 @@ <para>Als er dingen misgingen is het makkelijk om een deel van het systeem opnieuw te bouwen. Als bijvoorbeeld per ongeluk <filename>/etc/magic</filename> verwijderd is als onderdeel - van de upgrade of door een merge van <filename>/etc</filename>, - dan werkt &man.file.1; niet meer. Dat kan als volgt opgelost - worden:</para> + van de upgrade of door het samenvoegen van + <filename>/etc</filename>, dan werkt &man.file.1; niet meer. + Dat kan als volgt opgelost worden:</para> <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> &prompt.root; <userinput>make all install</userinput></screen>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812311532.mBVFW6DZ019104>