|
|
|
@ -5,10 +5,10 @@
|
|
|
|
|
$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.231
|
|
|
|
|
%SRCID% 1.233
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<chapter id="cutting-edge">
|
|
|
|
|
<chapter id="updating-upgrading">
|
|
|
|
|
<chapterinfo>
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
@ -18,31 +18,37 @@
|
|
|
|
|
</author>
|
|
|
|
|
<!-- Mar 2000 -->
|
|
|
|
|
</authorgroup>
|
|
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Jordan</firstname>
|
|
|
|
|
<surname>Hubbard</surname>
|
|
|
|
|
<contrib>Origineel door </contrib>
|
|
|
|
|
</author>
|
|
|
|
|
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Poul-Henning</firstname>
|
|
|
|
|
<surname>Kamp</surname>
|
|
|
|
|
</author>
|
|
|
|
|
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>John</firstname>
|
|
|
|
|
<surname>Polstra</surname>
|
|
|
|
|
</author>
|
|
|
|
|
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Nik</firstname>
|
|
|
|
|
<surname>Clayton</surname>
|
|
|
|
|
</author>
|
|
|
|
|
</authorgroup>
|
|
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Remko</firstname>
|
|
|
|
|
<surname>Lodder</surname>
|
|
|
|
|
<contrib>Vertaald door </contrib>
|
|
|
|
|
</author>
|
|
|
|
|
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Siebrand</firstname>
|
|
|
|
|
<surname>Mazeland</surname>
|
|
|
|
@ -50,35 +56,50 @@
|
|
|
|
|
</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>,
|
|
|
|
@ -111,8 +132,513 @@
|
|
|
|
|
</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>
|
|
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>René</firstname>
|
|
|
|
|
<surname>Ladan</surname>
|
|
|
|
|
<contrib>Vertaald 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
|
|
|
|
|
optimaliseren, 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>
|
|
|
|
|
<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 geleverd door </contrib>
|
|
|
|
|
</author>
|
|
|
|
|
</authorgroup>
|
|
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>René</firstname>
|
|
|
|
|
<surname>Ladan</surname>
|
|
|
|
|
<contrib>Vertaald door </contrib>
|
|
|
|
|
</author>
|
|
|
|
|
</authorgroup>
|
|
|
|
|
</sect1info>
|
|
|
|
|
|
|
|
|
|
<title>Portsnap: een updategereedschap voor de Portscollectie</title>
|
|
|
|
|
|
|
|
|
|
<indexterm><primary>updaten en upgraden</primary></indexterm>
|
|
|
|
|
|
|
|
|
|
<indexterm>
|
|
|
|
|
<primary>Portsnap</primary>
|
|
|
|
|
|
|
|
|
|
<see>updaten en upgraden</see>
|
|
|
|
|
</indexterm>
|
|
|
|
|
<para>Het basissysteem van &os; bevat ook een gereedschap om de
|
|
|
|
|
Portscollectie bij te werken: het hulpmiddel &man.portsnap.8;.
|
|
|
|
|
Wanneer het wordt uitgevoerd, zal het een verbinding maken met een
|
|
|
|
|
verre site, de veilige sleutel controleren, en een nieuwe kopie
|
|
|
|
|
van de Portscollectie downloaden. De sleutel wordt gebruikt om de
|
|
|
|
|
integriteit van alle gedownloade bestanden te controleren, om er
|
|
|
|
|
zeker van te zijn dat ze niet tijdens het downloaden zijn
|
|
|
|
|
gewijzigd. Geef het volgende commando om de nieuwste versie van
|
|
|
|
|
de bestanden van de Portscollectie te downloaden:</para>
|
|
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
|
|
|
|
|
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
|
|
|
|
|
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
|
|
|
|
|
Fetching snapshot metadata... done.
|
|
|
|
|
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
|
|
|
|
|
Fetching 3 metadata patches.. done.
|
|
|
|
|
Applying metadata patches... done.
|
|
|
|
|
Fetching 3 metadata files... done.
|
|
|
|
|
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
|
|
|
|
|
Applying patches... done.
|
|
|
|
|
Fetching 133 new ports or files... done.</screen>
|
|
|
|
|
|
|
|
|
|
<para>Dit voorbeeld laat zien dat &man.portsnap.8; verscheidene
|
|
|
|
|
patches heeft gevonden en deze met de huidige portsgegevens heeft
|
|
|
|
|
gecontroleerd. Het geeft ook aan dat het gereedschap eerder is
|
|
|
|
|
gedraaid, als het voor de eerste keer was gedraaid, had het
|
|
|
|
|
simpelweg de collectie gedownload.</para>
|
|
|
|
|
|
|
|
|
|
<para>Wanneer &man.portsnap.8; succesvol een
|
|
|
|
|
<command>fetch</command>-operatie afrondt, bestaan de
|
|
|
|
|
Portscollectie en de vervolgpatches die de verificatie doorstaan
|
|
|
|
|
hebben op het plaatselijke systeem. De bijgewerkte bestanden
|
|
|
|
|
kunnen geïnstalleerd worden door het volgende te
|
|
|
|
|
typen:</para>
|
|
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>portsnap extract</userinput>
|
|
|
|
|
/usr/ports/.cvsignore
|
|
|
|
|
/usr/ports/CHANGES
|
|
|
|
|
/usr/ports/COPYRIGHT
|
|
|
|
|
/usr/ports/GIDs
|
|
|
|
|
/usr/ports/KNOBS
|
|
|
|
|
/usr/ports/LEGAL
|
|
|
|
|
/usr/ports/MOVED
|
|
|
|
|
/usr/ports/Makefile
|
|
|
|
|
/usr/ports/Mk/bsd.apache.mk
|
|
|
|
|
/usr/ports/Mk/bsd.autotools.mk
|
|
|
|
|
/usr/ports/Mk/bsd.cmake.mk
|
|
|
|
|
<replaceable>...</replaceable></screen>
|
|
|
|
|
|
|
|
|
|
<para>Het proces is nu compleet, en applicaties kunnen met de
|
|
|
|
|
bijgewerkte Portscollectie worden geïnstalleerd of worden
|
|
|
|
|
bijgewerkt.</para>
|
|
|
|
|
|
|
|
|
|
<para>Geef het volgende commando om de twee processen achter elkaar
|
|
|
|
|
te draaien:</para>
|
|
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
|
|
|
|
|
</sect1>
|
|
|
|
|
|
|
|
|
|
<sect1 id="current-stable">
|
|
|
|
|
<title>&os.current; vs. &os.stable;</title>
|
|
|
|
|
<title>Een ontwikkelingstak volgen</title>
|
|
|
|
|
|
|
|
|
|
<indexterm><primary>-CURRENT</primary></indexterm>
|
|
|
|
|
|
|
|
|
@ -937,8 +1463,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>
|
|
|
|
@ -1333,7 +1859,8 @@ Script done, …</screen>
|
|
|
|
|
|
|
|
|
|
<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
|
|
|
|
@ -1491,7 +2018,7 @@ Script done, …</screen>
|
|
|
|
|
</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
|
|
|
|
@ -1510,9 +2037,9 @@ Script done, …</screen>
|
|
|
|
|
<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>
|
|
|
|
|