Import translations for the updating and dtrace chapters.
Translated by: Rene Ladan submitted by: Rene Ladan Obtained from: The FreeBSD Dutch Documentation Project Facilitated by: Snow B.V.
This commit is contained in:
parent
48fda33280
commit
ee76ef3d50
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33097
4 changed files with 1006 additions and 0 deletions
nl_NL.ISO8859-1/books/handbook
15
nl_NL.ISO8859-1/books/handbook/dtrace/Makefile
Normal file
15
nl_NL.ISO8859-1/books/handbook/dtrace/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= dtrace/chapter.sgml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
410
nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml
Normal file
410
nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml
Normal file
|
@ -0,0 +1,410 @@
|
|||
<!--
|
||||
Recently I suggested to myself that this should become a profiling
|
||||
and debugging chapter, which covers things like ktrace(1) and
|
||||
using other debugging (like -x in shell scripts). But then I
|
||||
realized that, over time and while DTrace becomes better supported,
|
||||
that might make this chapter too large.
|
||||
-->
|
||||
|
||||
<!--
|
||||
The FreeBSD Dutch Documentation Project
|
||||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml
|
||||
%SRCID% 1.5
|
||||
-->
|
||||
|
||||
<chapter id="dtrace">
|
||||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Geschreven door </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>René</firstname>
|
||||
<surname>Ladan</surname>
|
||||
<contrib>Vertaald door </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>DTrace</title>
|
||||
|
||||
<sect1 id="dtrace-synopsis">
|
||||
<title>Overzicht</title>
|
||||
|
||||
<indexterm><primary>DTrace</primary></indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>DTrace-ondersteuning</primary>
|
||||
|
||||
<see>DTrace</see>
|
||||
</indexterm>
|
||||
|
||||
<para>DTrace, ook bekend als Dynamic Tracing, was ontwikkeld door
|
||||
&sun; als een gereedschap om prestatie-bottlenecks in productie-
|
||||
en preproductiesystemen op te sporen. Het is in geen enkel opzicht
|
||||
een debug-gereedschap, maar een gereedschap voor real-time analyse
|
||||
om prestatie- en andere zaken op te sporen.</para>
|
||||
|
||||
<para>DTrace is een opmerkelijk profileringsgereedschap, met een
|
||||
indrukwekkende verzameling mogelijkheden om systeemzaken te
|
||||
diagnosticeren. Het kan ook worden gebruikt om vooraf geschreven
|
||||
scripts te draaien om zo voordeel te halen uit de mogelijkheden.
|
||||
Gebruikers kunnen zelfs hun eigen middelen schrijven door gebruik
|
||||
te maken van de DTrace D Language, wat ze in staat stelt om hun
|
||||
profilering aan te passen aan hun specifieke behoeften.</para>
|
||||
|
||||
<para>Na het lezen van dit hoofdstuk weet u:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Wat DTrace is en welke mogelijkheden het biedt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>De verschillen tussen de DTrace-implementatie van
|
||||
&solaris; en degene die door &os; wordt aangeboden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Hoe DTrace op &os; aan te zetten en te gebruiken.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Voordat u dit hoofdstuk leest, dient u:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>De beginselen van &unix; en &os; te begrijpen
|
||||
(<xref linkend="basics">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bekend te zijn met de beginselen van kernelconfiguratie en
|
||||
-compilatie (<xref linkend="kernelconfig">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wat bekendheid te hebben met beveiliging en hoe het zich
|
||||
verhoudt tot &os; (<xref linkend="security">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Te begrijpen hoe de broncode van &os; te verkrijgen en te
|
||||
herbouwen (<xref linkend="cutting-edge">).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<!--
|
||||
Temporary warning to avoid listing experimental versions
|
||||
and production versions of FreeBSD with this technology.
|
||||
-->
|
||||
<warning>
|
||||
<para>Deze mogelijkheid wordt als experimenteel beschouwd. Van
|
||||
sommige opties kan er functionaliteit ontbreken, andere delen
|
||||
kunnen in het geheel niet werken. In de loop der tijd zal deze
|
||||
mogelijkheid als productierijp worden beschouwd en zal deze
|
||||
documentatie worden aangepast om die situatie te
|
||||
representeren.</para>
|
||||
</warning>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-implementation">
|
||||
<title>Implementatieverschillen</title>
|
||||
|
||||
<para>Hoewel DTrace in &os; erg lijkt op degene die in &solaris;
|
||||
zit, zijn er verschillen die uitgelegd moeten worden voordat er
|
||||
verder wordt gegaan. Het primaire verschil dat gebruikers zullen
|
||||
zien is dat DTrace specifiek moet worden aangezet op &os;. Er
|
||||
zijn kernelopties en modulen die aangezet moeten worden om DTrace
|
||||
juist te laten werken. Deze zullen later worden uitgelegd.</para>
|
||||
|
||||
<para>Er is een kerneloptie <literal>DDB_CTF</literal> die gebruikt
|
||||
wordt om ondersteuning voor het laden van
|
||||
<acronym>CTF</acronym>-gegevens van kernelmodulen en de kernel
|
||||
zelf. <acronym>CTF</acronym> is het Compact C Type Format van
|
||||
&solaris; welke een beperkte vorm van debuginformatie bevat
|
||||
die vergelijkbaar is met <acronym>DWARF</acronym> en de befaamde
|
||||
stabs. Deze <acronym>CTF</acronym>-gegevens worden door de
|
||||
bouwmiddelen <command>ctfconvert</command> en
|
||||
<command>ctfmerge</command> aan de binairen toegevoegd. Het
|
||||
hulpmiddel <command>ctfconvert</command> parst
|
||||
<acronym>DWARF</acronym>-debug <acronym>ELF</acronym>-secties die
|
||||
door de compiler zijn aangemaakt en <command>ctfmerge</command>
|
||||
voegt <acronym>CTF</acronym> <acronym>ELF</acronym>-secties van
|
||||
objecten samen in hun executables of gedeelde bibliotheken. Meer
|
||||
informatie over hoe dit voor de bouw van de kernel en &os; aan te
|
||||
zetten komt eraan.</para>
|
||||
|
||||
<para>Sommige aanbieders voor &os; verschillen van die voor
|
||||
&solaris;. De meest opmerkelijke is de aanbieder
|
||||
<literal>dtmalloc</literal>, welke het volgen van
|
||||
<function>malloc()</function> op soort in de &os;-kernel
|
||||
toestaat.</para>
|
||||
|
||||
<para>Alleen <username>root</username> mag DTrace op &os; gebruiken.
|
||||
Dit heeft te maken met beveiligingsverschillen, &solaris; heeft
|
||||
enkele beveiligingscontroles op laag niveau die nog niet bestaan
|
||||
in &os;. Hierom is <devicename>/dev/dtrace/dtrace</devicename>
|
||||
strikt beperkt tot <username>root</username>.</para>
|
||||
|
||||
<para>Tenslotte valt de DTrace-software onder de
|
||||
<acronym>CDDL</acronym>-licentie van &sun;. De <literal>Common
|
||||
Development and Distribution License</literal> wordt bij &os;
|
||||
geleverd, zie
|
||||
<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
|
||||
of bekijk het online op
|
||||
<ulink url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
|
||||
<para>Deze licentie houdt in dat een &os;-kernel met de
|
||||
DTrace-opties nog steeds onder de <acronym>BSD</acronym>-licentie
|
||||
valt; de <acronym>CDDL</acronym> komt echter op de proppen wanneer
|
||||
de modulen in binaire vorm worden verspreid, of wanneer de
|
||||
binairen zijn geladen.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-enable">
|
||||
<title>Ondersteuning voor DTrace aanzetten</title>
|
||||
|
||||
<para>Voeg de volgende regels toe aan het kernelinstellingenbestand
|
||||
om ondersteuning voor DTrace aan te zetten:</para>
|
||||
|
||||
<programlisting>options KDTRACE_HOOKS
|
||||
options DDB_CTF</programlisting>
|
||||
|
||||
<note>
|
||||
<para>Gebruikers van de AMD64-architectuur zullen de volgende
|
||||
regel aan hun kernelinstellingenbestand willen toevoegen:</para>
|
||||
|
||||
<programlisting>options KDTRACE_FRAME</programlisting>
|
||||
|
||||
<para>Deze optie biedt ondersteuning voor de mogelijkheid
|
||||
<acronym>FBT</acronym>. DTrace zal zonder deze optie werken;
|
||||
er zal echter beperkte ondersteuning zijn voor het volgen van
|
||||
functiegrenzen.</para>
|
||||
</note>
|
||||
|
||||
<para>Alle broncode moet herbouwd en geherinstalleerd worden met de
|
||||
<acronym>CTF</acronym>-opties. Om deze taak te volbrengen, wordt
|
||||
de &os;-broncode herbouwd met:</para>
|
||||
|
||||
<!-- XXXTR: WITH_CTF has been reported to leave a use with a
|
||||
broken system when used with buildworld. Until this is
|
||||
fixed, comment out those parts. When uncommenting, kill
|
||||
the extra screen.
|
||||
-->
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
<!-- &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput> -->
|
||||
&prompt.root; <userinput>make WITH_CTF=1 kernel</userinput></screen>
|
||||
<!-- &prompt.root; <userinput>make WITH_CTF=1 installworld</userinput>
|
||||
&prompt.root; <userinput>mergemaster -Ui</userinput></screen> -->
|
||||
|
||||
<para>Het systeem moet opnieuw gestart worden.</para>
|
||||
|
||||
<para>Nadat opnieuw is opgestart en de nieuwe kernel in het geheugen
|
||||
is geladen, dient ondersteuning voor de Korn-shell te worden
|
||||
toegevoegd. Dit is nodig omdat de verschillende hulpmiddelen van
|
||||
DTrace in <command>ksh</command> zijn geschreven. Installeer
|
||||
<filename role="package">shells/ksh93</filename>. Het is ook
|
||||
mogelijk om deze hulpmiddelen in <filename
|
||||
role="package">shells/pdksh</filename> of <filename
|
||||
role="package">shells/mksh</filename> te draaien.</para>
|
||||
|
||||
<para>Als laatste dient de huidige DTrace-gereedschapskist verkregen
|
||||
te worden. De huidige versie is beschikbaar op
|
||||
<ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/"></ulink>.
|
||||
Het bevat een installatiemechanisme; om gebruik te maken van de
|
||||
bijgeleverde hulpmiddelen is installatie echter niet nodig.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-using">
|
||||
<title>DTrace gebruiken</title>
|
||||
|
||||
<para>Voordat er gebruik wordt gemaakt van de functionaliteit van
|
||||
DTrace, moet het DTrace-apparaat bestaan. Geef het volgende
|
||||
commando om het apparaat te laten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
|
||||
|
||||
<para>Ondersteuning van DTrace zou nu beschikbaar moeten zijn. De
|
||||
beheerder kan het volgende commando uitvoeren om alle sondes te
|
||||
bekijken:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
|
||||
|
||||
<para>Alle uitvoer wordt aan het hulpmiddel <command>more</command>
|
||||
doorgegeven omdat het snel de schermbuffer zal laten overstromen.
|
||||
DTrace kan nu als werkend worden beschouwd. Het is nu tijd om de
|
||||
gereedschapskist te bekijken.</para>
|
||||
|
||||
<para>De gereedschapskist is een verzameling van kant-en-klare
|
||||
scripts die met DTrace gedraaid kunnen worden om informatie over
|
||||
het systeem te verzamelen. Er zijn scripts om open bestanden,
|
||||
geheugen, <acronym>CPU</acronym>-gebruik, en nog veel meer te
|
||||
controleren. Pak de scripts uit met het volgende commando:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gunzip -c DTraceToolkit* | tar xvf -</userinput></screen>
|
||||
|
||||
<para>Ga naar die map met <command>cd</command> en zet de
|
||||
uitvoerpermissies voor alle bestanden waarvan de naam uit kleine
|
||||
letters bestaat, op <literal>755</literal>.</para>
|
||||
|
||||
<para>De inhoud van al deze scripts moet veranderd worden. Degenen
|
||||
die naar <filename>/usr/bin/ksh</filename> verwijzen dienen naar
|
||||
<filename>/usr/local/bin/ksh</filename> te verwijzen, de anderen
|
||||
die <filename>/usr/bin/sh</filename> gebruiken dienen gewijzigd te
|
||||
worden om <filename>/bin/sh</filename> te gebruiken, en tenslotte
|
||||
dienen degenen die <filename>/usr/bin/perl</filename> gebruiken
|
||||
veranderd te worden om <filename>/usr/local/bin/perl</filename> te
|
||||
gebruiken.</para>
|
||||
|
||||
<important>
|
||||
<para>Op dit moment is het voorzichtig om de lezer eraan te
|
||||
herinneren dat de ondersteuning voor DTrace in &os;
|
||||
<emphasis>niet compleet</emphasis> en
|
||||
<emphasis>experimenteel</emphasis> is. Veel van deze scripts
|
||||
zullen niet werken omdat ze of te &solaris;-specifiek zijn of
|
||||
omdat ze sondes gebruiken die momenteel niet ondersteund
|
||||
worden.</para>
|
||||
</important>
|
||||
|
||||
<para>Op het moment van schrijven worden slechts twee scripts van de
|
||||
DTrace Toolkit volledig ondersteund in &os;: de scripts
|
||||
<filename>hotkernel</filename> en
|
||||
<filename>procsystime</filename>. Dit zijn de twee die we in de
|
||||
volgende gedeelten van deze sectie zullen bekijken.</para>
|
||||
|
||||
<para>De <filename>hotkernel</filename> is ontworpen om te
|
||||
identificeren welke functie de meeste kerneltijd gebruikt. Als
|
||||
het normaal gedraaid wordt, zal het uitvoer die op de volgende
|
||||
lijkt produceren:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel</userinput>
|
||||
Sampling... Hit Ctrl-C to end.</screen>
|
||||
|
||||
<para>De systeembeheerder moet de toetsencombinatie <keycombo
|
||||
action="simul"><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
|
||||
gebruiken om het proces te stoppen. Nadat het gestopt is, zal het
|
||||
script een lijst van kernelfuncties en timinginformatie weergeven,
|
||||
waarbij de uitvoer in volgorde van toenemende tijd is
|
||||
gesorteerd:</para>
|
||||
|
||||
<screen>kernel`_thread_lock_flags 2 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
kernel`sched_userret 2 0.0%
|
||||
kernel`kern_select 2 0.0%
|
||||
kernel`generic_copyin 3 0.0%
|
||||
kernel`_mtx_assert 3 0.0%
|
||||
kernel`vm_fault 3 0.0%
|
||||
kernel`sopoll_generic 3 0.0%
|
||||
kernel`fixup_filename 4 0.0%
|
||||
kernel`_isitmyx 4 0.0%
|
||||
kernel`find_instance 4 0.0%
|
||||
kernel`_mtx_unlock_flags 5 0.0%
|
||||
kernel`syscall 5 0.0%
|
||||
kernel`DELAY 5 0.0%
|
||||
0xc108a253 6 0.0%
|
||||
kernel`witness_lock 7 0.0%
|
||||
kernel`read_aux_data_no_wait 7 0.0%
|
||||
kernel`Xint0x80_syscall 7 0.0%
|
||||
kernel`witness_checkorder 7 0.0%
|
||||
kernel`sse2_pagezero 8 0.0%
|
||||
kernel`strncmp 9 0.0%
|
||||
kernel`spinlock_exit 10 0.0%
|
||||
kernel`_mtx_lock_flags 11 0.0%
|
||||
kernel`witness_unlock 15 0.0%
|
||||
kernel`sched_idletd 137 0.3%
|
||||
0xc10981a5 42139 99.3%</screen>
|
||||
|
||||
<!-- XXXTR: I attempted to use objdump and nm on /boot/kernel/kernel
|
||||
to find 0xc10981a5, but to no avail. It would be nice to know
|
||||
how we should look that up. -->
|
||||
|
||||
<para>Het script werkt ook met kernelmodules. Draai het script met
|
||||
de vlag <option>-m</option> om deze mogelijkheid te
|
||||
gebruiken:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
|
||||
Sampling... Hit Ctrl-C to end.
|
||||
^C
|
||||
MODULE COUNT PCNT
|
||||
0xc107882e 1 0.0%
|
||||
0xc10e6aa4 1 0.0%
|
||||
0xc1076983 1 0.0%
|
||||
0xc109708a 1 0.0%
|
||||
0xc1075a5d 1 0.0%
|
||||
0xc1077325 1 0.0%
|
||||
0xc108a245 1 0.0%
|
||||
0xc107730d 1 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
0xc108a253 73 0.0%
|
||||
kernel 874 0.4%
|
||||
0xc10981a5 213781 99.6%</screen>
|
||||
|
||||
<!-- XXXTR: I was unable to match these up with output from
|
||||
kldstat and kldstat -v and grep. Maybe I'm missing something
|
||||
seriously obvious. It is 5AM btw. -->
|
||||
|
||||
<para>Het script <filename>procsystime</filename> vangt en beeldt
|
||||
het tijdsgebruik van systeemaanroepen af voor een gegeven
|
||||
<acronym>PID</acronym> of procesnaam. In het volgende voorbeeld
|
||||
wordt er een nieuwe instantie van <filename>/bin/csh</filename>
|
||||
gedraaid. Het <filename>procsystime</filename> werd uitgevoerd en
|
||||
bleef wachten terwijl er enkele commando's op de andere instantie
|
||||
van <command>csh</command> werden getypt. Dit zijn de resultaten
|
||||
van deze test:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./procsystime -n csh</userinput>
|
||||
Tracing... Hit Ctrl-C to end...
|
||||
^C
|
||||
|
||||
Elapsed Times for processes csh,
|
||||
|
||||
SYSCALL TIME (ns)
|
||||
getpid 6131
|
||||
sigreturn 8121
|
||||
close 19127
|
||||
fcntl 19959
|
||||
dup 26955
|
||||
setpgid 28070
|
||||
stat 31899
|
||||
setitimer 40938
|
||||
wait4 62717
|
||||
sigaction 67372
|
||||
sigprocmask 119091
|
||||
gettimeofday 183710
|
||||
write 263242
|
||||
execve 492547
|
||||
ioctl 770073
|
||||
vfork 3258923
|
||||
sigsuspend 6985124
|
||||
read 3988049784</screen>
|
||||
|
||||
<para>Zoals te zien is, lijkt de systeemaanroep
|
||||
<function>read()</function> de meeste tijd in nanoseconden te
|
||||
gebruiken en gebruikte de systeemaanroep
|
||||
<function>getpid()</function> de minste hoeveelheid tijd.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-language">
|
||||
<title>De taal D</title>
|
||||
|
||||
<para>De DTrace-gereedschapskist bevat vele scripts in de speciale
|
||||
taal van DTrace. Deze taal wordt <quote>de taal D</quote> genoemd
|
||||
door de documentatie van &sun;, en lijkt sterk op C++. Een
|
||||
diepgaande discussie over de taal valt buiten het bereik van dit
|
||||
document. Het wordt uitgebreid behandeld op
|
||||
<ulink url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!-- XXXTR: Should probably put links and resources here. I'm
|
||||
nervous about this chapter as it may require a partial
|
||||
re-write and large modification once DTrace is complete, but
|
||||
at least we can get everyone started ... -->
|
15
nl_NL.ISO8859-1/books/handbook/updating/Makefile
Normal file
15
nl_NL.ISO8859-1/books/handbook/updating/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= updating/chapter.sgml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
566
nl_NL.ISO8859-1/books/handbook/updating/chapter.sgml
Normal file
566
nl_NL.ISO8859-1/books/handbook/updating/chapter.sgml
Normal file
|
@ -0,0 +1,566 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/updating/chapter.sgml
|
||||
%SRCID% 1.1
|
||||
-->
|
||||
|
||||
<chapter id="updating">
|
||||
<chapterinfo>
|
||||
<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>
|
||||
</chapterinfo>
|
||||
|
||||
<title>&os; bijwerken</title>
|
||||
|
||||
<sect1 id="updating-synopsis">
|
||||
<title>Overzicht</title>
|
||||
|
||||
<indexterm><primary>FreeBSD bijwerken</primary></indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>freebsd-update</primary>
|
||||
<see>Bijwerken</see>
|
||||
</indexterm>
|
||||
|
||||
<para>Door de tijd heen is een primair aspect van het
|
||||
besturingssysteem &os; hetzelfde gebleven. Dit is de eis om
|
||||
applicaties en gereedschappen te gebruiken om grote en kleine
|
||||
systeemupdate te verkrijgen.</para>
|
||||
|
||||
<para>Voor vele jaren waren gebruikers die hun systeem wilden
|
||||
upgraden, beveiligingspatches wilden verzamelen, en updates voor
|
||||
ports en pakketten wilden verkrijgen zonder de Portscollectie
|
||||
kapot te maken verplicht om het gereedschap
|
||||
<application>CVSup</application> te gebruiken.</para>
|
||||
|
||||
<para>Hoewel het gebruik van <application>CVSup</application> nog
|
||||
steeds wordt ondersteund, en er een ware versie geprogrammeerd in
|
||||
de taal C aan &os; is toegevoegd, zijn er nieuwe methoden om
|
||||
systeemupdates te verkrijgen.</para>
|
||||
|
||||
<para>Gereedschappen zoals &man.portsnap.8; en
|
||||
&man.freebsd-update.8; hebben het upgradeproces gestroomlijnd.
|
||||
Deze nieuwe methoden verhogen de productiviteit terwijl ze een
|
||||
eenvoudigere interface voor gebruikers bieden. Sommige nieuwe
|
||||
gereedschappen kunnen vanuit &man.cron.8; worden gedraaid waardoor
|
||||
de handmatige tussenkomst van de systeembeheerder wordt
|
||||
verminderd; een voordeel voor degenen die honderden &os;-machines
|
||||
in de gaten houden.</para>
|
||||
|
||||
<para>Dit hoofdstuk zal deze nieuwe methoden uitleggen, en vertellen
|
||||
hoe gebruikers alsmede systeembeheerders voordeel kunnen halen uit
|
||||
hun praktische en eenvoudige gebruik.<para>
|
||||
|
||||
<para>Na het lezen van dit hoofdstuk weet u:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Welke gereedschappen gebruikt kunnen worden om het systeem
|
||||
en de Portscollectie te updaten.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Hoe <command>freebsd-update</command> te gebruiken om
|
||||
beveiligingspatches toe te passen en grote en kleine upgrades
|
||||
van &os; uit te voeren.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Hoe de toestand van een geïnstalleerd systeem met een
|
||||
bekende maagdelijke kopie te vergelijken.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Voor het lezen van dit hoofdstuk dient u:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>De beginselen van &unix; en &os; te begrijpen
|
||||
(<xref linkend="basics">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bekend te zijn met de beginselen van het instellen en
|
||||
compileren van de kernel (<xref linkend="kernelconfig">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Enigszins bekend te zijn met de Portscollectie en het
|
||||
installeren van applicaties van derde partijen op &os;
|
||||
(<xref linkend="ports">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bekend te zijn met de verschillende broncomponenten
|
||||
waaruit &os; bestaat en hoe het gereedschap
|
||||
&man.mergemaster.8; te gebruiken
|
||||
(<xref linkend="cutting-edge">).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="updating-freebsdupdate">
|
||||
<title>FreeBSD Update</title>
|
||||
|
||||
<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. De nieuwste versie van
|
||||
<command>freebsd-update</command> kan geïnstalleerd worden
|
||||
door het ge<command>tar</command>de en ge<command>gzip</command>te
|
||||
pakket van de bovenstaande <acronym>URL</acronym> te downloaden en
|
||||
het te installeren met de volgende commando's:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gunzip -c freebsd-update-upgrade.tgz | tar xvf -</userinput>
|
||||
&prompt.root; <userinput>mv freebsd-update.sh /usr/sbin/freebsd-update</userinput>
|
||||
&prompt.root; <userinput>mv freebsd-update.conf /etc</userinput></screen>
|
||||
|
||||
<para>Het downloaden is niet nodig voor alle huidige
|
||||
uitgaven.</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="cutting-edge"> 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-portsnap">
|
||||
<title>Portsnap: een updategereedschap voor de Portscollectie</title>
|
||||
|
||||
<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>
|
||||
</sect1>
|
||||
</chapter>
|
Loading…
Reference in a new issue