MFp4
cutting-edge -> 1.227
This commit is contained in:
parent
e01d1a2e1a
commit
aca40872d7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=31181
1 changed files with 23 additions and 150 deletions
|
@ -3,7 +3,7 @@
|
|||
|
||||
$FreeBSD$
|
||||
$FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.47 2006/01/07 11:27:42 siebrand Exp $
|
||||
Gebaseerd op: 1.222
|
||||
Gebaseerd op: 1.227
|
||||
-->
|
||||
|
||||
<chapter id="cutting-edge">
|
||||
|
@ -740,8 +740,7 @@
|
|||
|
||||
<para>Controleer
|
||||
<filename>/usr/share/examples/etc/make.conf</filename>
|
||||
(<filename>/etc/defaults/make.conf</filename> in
|
||||
&os; 4.X) en <filename>/etc/make.conf</filename>. Het
|
||||
en <filename>/etc/make.conf</filename>. Het
|
||||
eerste bestand bevat standaard definities, waarvan de meeste
|
||||
uitgecommentarieerd zijn. Om hiervan gebruik te maken als het
|
||||
systeem opnieuw opgebouwd wordt vanuit de broncode, moeten ze
|
||||
|
@ -752,10 +751,8 @@
|
|||
daar redelijke waardes in te vullen voor een systeem.</para>
|
||||
|
||||
<para>Een typische gebruiker wil waarschijnlijk de regels
|
||||
<makevar>CFLAGS</makevar> en <makevar>NO_PROFILE</makevar> (of
|
||||
<makevar>NOPROFILE</makevar> in &os; 5.X en ouder) uit
|
||||
<makevar>CFLAGS</makevar> en <makevar>NO_PROFILE</makevar> uit
|
||||
<filename>/usr/share/examples/etc/make.conf</filename>
|
||||
(<filename>/etc/defaults/make.conf</filename> in &os; 4.X)
|
||||
kopieren naar <filename>/etc/make.conf</filename> en het
|
||||
commentaar verwijderen.</para>
|
||||
|
||||
|
@ -791,15 +788,6 @@
|
|||
<filename>/var/spool/clientmqueue</filename> te
|
||||
creëren.</para>
|
||||
|
||||
<para>De oplossing is om <filename>/usr/src/etc/group</filename>
|
||||
te controleren en de lijst met groepen te vergelijken met die
|
||||
van het bij te werken systeem. Als daar groepen bestaan die
|
||||
nog niet op een systeem staan, moeten deze worden gekopieerd.
|
||||
Hetzelfde geldt voor het hernoemen van groepen in
|
||||
<filename>/etc/group</filename> die hetzelfde GID hebben maar
|
||||
een andere naam dan in
|
||||
<filename>/usr/src/etc/group</filename>.</para>
|
||||
|
||||
<para>&man.mergemaster.8; kan in voorbereidende modus gedraaid
|
||||
worden als de optie <option>-p</option> wordt meegegeven. Dan
|
||||
worden alleen de bestanden vergeleken die essentieel zijn voor
|
||||
|
@ -852,7 +840,7 @@
|
|||
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
|
||||
|
||||
<para>Als alternatief kan tijdens het opstarten de optie
|
||||
<option>-s</option> worden meegegeven. Het systeem start dan
|
||||
<option>single user</option> worden gekozen. Het systeem start dan
|
||||
in single-user modus. Op de shell prompt moet dan worden
|
||||
ingegeven:</para>
|
||||
|
||||
|
@ -904,8 +892,8 @@
|
|||
&prompt.root; <userinput>rm -rf *</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Broncode hercompileren</title>
|
||||
<sect2 id="cutting-edge-recompilebase">
|
||||
<title>Broncode van het basis systeem hercompileren</title>
|
||||
|
||||
<sect3>
|
||||
<title>Uitvoer bewaren</title>
|
||||
|
@ -1003,20 +991,18 @@ Script done, …</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>make <replaceable>doel</replaceable></userinput></screen>
|
||||
|
||||
<para>Het <maketarget>world</maketarget> doel is opgesplitst in
|
||||
twee delen: <maketarget>buildworld</maketarget> en
|
||||
<maketarget>installworld</maketarget>. Vanaf versie
|
||||
5.3 van &os; verandert <maketarget>world</maketarget>
|
||||
dusdanig dat het helemaal niet meer werkt omdat het
|
||||
gevaarlijk is voor de meeste gebruikers.</para>
|
||||
<para>Waar <replaceable>doel</replaceable> een van de vele
|
||||
bouw opties is. De eerste target moet echter altijd
|
||||
<makevar>buildworld</makevar> zijn.</para>
|
||||
|
||||
<para>Zoals de namen impliceren bouwt
|
||||
<maketarget>buildworld</maketarget> een compleet nieuwe boom
|
||||
onder <filename>/usr/obj</filename> en
|
||||
<maketarget>installworld</maketarget> installeert deze boom
|
||||
op de huidige machine.</para>
|
||||
<maketarget>installworld</maketarget>, een andere target,
|
||||
installeert deze boom op de huidige machine.</para>
|
||||
|
||||
<para>Dit is erg handig om twee redenen. Als eerste biedt het
|
||||
<para>Het hebben van verschillende opties is handig om twee
|
||||
redenen. Als eerste biedt het
|
||||
de mogelijkheid om de bouw veilig te doen met de wetenschap
|
||||
dat geen enkel draaiend onderdeel van een systeem geraakt
|
||||
wordt. De bouw is <quote>zelf ondersteunend</quote>.
|
||||
|
@ -1048,7 +1034,7 @@ Script done, …</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>make buildworld</userinput></screen>
|
||||
|
||||
<para>Het is nu mogelijk om de optie <option>-j</option> mee te
|
||||
<para>Het is mogelijk om de optie <option>-j</option> mee te
|
||||
geven aan <command>make</command>, wat resulteert in meerdere
|
||||
processen die tegelijkertijd draaien. Dit heeft het meeste
|
||||
effect op machines met meerdere processoren. Echter, omdat
|
||||
|
@ -1068,12 +1054,6 @@ Script done, …</screen>
|
|||
<para>Als er meerdere processoren in een systeem zitten en
|
||||
gebruik gemaakt wordt van een SMP kernel, probeer dan waardes
|
||||
tussen de 6 en 10 en bekijk hoe het systeem reageert.</para>
|
||||
|
||||
<para>Deze mogelijkheid is nog steeds fragiel en commits in de
|
||||
broncode verbreken deze mogelijkheid vaak. Als het opnieuw
|
||||
bouwen van de wereld mislukt, probeer dan nogmaals te
|
||||
compileren zonder deze opties alvorens een probleemrapport
|
||||
aan te maken.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -1085,9 +1065,9 @@ Script done, …</screen>
|
|||
<secondary>doorlooptijd</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>De doorlooptijd wordt door veel factoren beïnvloed.
|
||||
Een 500 MHz &pentium; III met 128 MB ram doet
|
||||
er ongeveer 2 uur over om de &os.stable; boom te bouwen
|
||||
<para>Veel factoren bepalen de doorlooptijd van het bouwen van
|
||||
een boom, maar redelijk recente machines doen er maar 1 tot
|
||||
2 uur over om de &os.stable; boom te bouwen.
|
||||
zonder extra trucjes. Een &os.current; boom kan wat langer
|
||||
duren.</para>
|
||||
</sect3>
|
||||
|
@ -1119,7 +1099,7 @@ Script done, …</screen>
|
|||
een systeemcontrole kan erna een nieuwe kernel gebouwd worden
|
||||
gebaseerd op een aangepast kernelinstellingenbestand.</para>
|
||||
|
||||
<para>Op moderne versies van &os; is het belangrijk om de
|
||||
<para>Op &os; is het belangrijk om de
|
||||
<link linkend="make-buildworld">wereld opnieuw te bouwen</link>
|
||||
voordat een nieuwe kernel gebouwd wordt.</para>
|
||||
|
||||
|
@ -1194,7 +1174,7 @@ Script done, …</screen>
|
|||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<sect2 id="make-installworld">
|
||||
<title>Bestanden bijwerken die niet bijgewerkt zijn door
|
||||
<command>make installworld</command></title>
|
||||
|
||||
|
@ -1288,9 +1268,8 @@ Script done, …</screen>
|
|||
|
||||
<para>Zodra &man.mergemaster.8; klaar is met de systeembestanden
|
||||
worden er andere opties getoond. &man.mergemaster.8; kan
|
||||
vragen of het wachtwoordbestand opnieuw gebouwd moet worden
|
||||
en/of &man.MAKEDEV.8; gestart moet worden als er een versie van
|
||||
&os; voor 5.0 draait. Als laatste wordt een optie getoond om
|
||||
vragen of het wachtwoordbestand opnieuw gebouwd moet worden.
|
||||
Als laatste wordt een optie getoond om
|
||||
alle overgebleven tijdelijke bestanden te verwijderen.</para>
|
||||
</sect3>
|
||||
|
||||
|
@ -1309,7 +1288,7 @@ Script done, …</screen>
|
|||
|
||||
<para>Als &man.mergemaster.8; gebruikt wordt (zoals
|
||||
aangeraden), kan doorgegaan worden met het <link
|
||||
linkend="update-dev">volgende onderdeel</link>.</para>
|
||||
linkend="cutting-edge-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
|
||||
|
@ -1467,108 +1446,7 @@ Script done, …</screen>
|
|||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="update-dev">
|
||||
<title><filename>/dev</filename> bijwerken</title>
|
||||
|
||||
<note>
|
||||
<indexterm><primary>DEVFS</primary></indexterm>
|
||||
|
||||
<para>Als &os; 5.0 of later wordt gebruikt kan deze sectie
|
||||
veilig overgeslagen worden. Deze versies gebruiken
|
||||
&man.devfs.5; om apparaatnodes transparant aan te maken voor
|
||||
gebruikers.</para>
|
||||
</note>
|
||||
|
||||
<para>In veel gevallen herkent &man.mergemaster.8; dat het nodig
|
||||
is om apparaatnodes bij te werken en aan te bieden en doet dat
|
||||
automatisch. Hieronder wordt beschreven hoe apparaatnodes
|
||||
handmatig bijgewerkt kunnen worden.</para>
|
||||
|
||||
<para>Om veiligheidsredenen bestaat dit proces uit meerdere
|
||||
stappen.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Kopieer <filename>/var/tmp/root/dev/MAKEDEV</filename>
|
||||
naar <filename>/dev</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen>
|
||||
|
||||
<indexterm><primary><filename>MAKEDEV</filename></primary></indexterm>
|
||||
|
||||
<para>Als &man.mergemaster.8; is gebruikt om
|
||||
<filename>/etc</filename> bij te werken is het script
|
||||
<filename>MAKEDEV</filename> al aangepast. Het kan echter
|
||||
geen kwaad om dit te controleren (met &man.diff.1;) en het
|
||||
script indien nodig handmatig te kopieren.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Maak een afdruk van de huidige
|
||||
<filename>/dev</filename>. Deze snapshot moet de
|
||||
permissies, eigenaarschappen, grote en kleine nummers van
|
||||
ieder bestand bevatten, maar niet de timestamps. De
|
||||
makkelijkste manier om dit te doen is door &man.awk.1; te
|
||||
gebruiken om er informatie uit te halen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||||
&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Creeër alle apparaatnodes opnieuw:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh MAKEDEV all</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Maak een tweede afdruk van de map, deze keer naar
|
||||
<filename>/var/tmp/dev2.out</filename>. Bekijk nu door de
|
||||
twee bestanden te vergelijken of er apparaatnodes niet zijn
|
||||
aangemaakt. Dit hoort niet voor te komen, maar het kan
|
||||
maar beter gecontroleerd zijn.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen>
|
||||
|
||||
<para>Als er verschillen zijn is het waarschijnlijk dat deze
|
||||
in diskslices zitten. Om deze apparaatnodes opnieuw aan te
|
||||
maken kan iets als het onderstaande commando gebruikt
|
||||
worden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput></screen>
|
||||
|
||||
<para>De precieze afwijkingen kunnen variëren.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title><filename>/stand</filename> bijwerken</title>
|
||||
|
||||
<note>
|
||||
<para>Deze stap is opgenomen om het proces compleet te maken.
|
||||
Hij kan zonder problemen overgeslagen worden. Als
|
||||
&os; 5.2 of later wordt gebruikt, wordt de map
|
||||
<filename>/rescue</filename> automatisch bijgewerkt met de
|
||||
nieuwste, statisch gecompileerde binaire bestanden tijdens
|
||||
<command>make installworld</command>, waardoor het overbodig
|
||||
wordt om <filename>/stand</filename> bij te werken (bestaat
|
||||
helemaal niet in &os; 6.0 en later).</para>
|
||||
</note>
|
||||
|
||||
<para>Volledigheidshalve is het misschien wenselijk de bestanden
|
||||
in de map <filename>/stand</filename> bij te werken. Deze
|
||||
bestanden bestaan uit harde links naar het binaire bestand
|
||||
<filename>/stand/sysinstall</filename>. Dit bestand moet
|
||||
statisch gelinkt zijn zodat het zonder tussenkomst van andere
|
||||
bestandssystemen kan werken (in het bijzonder
|
||||
<filename>/usr</filename>).
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput>
|
||||
&prompt.root; <userinput>make all install</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<sect2 id="cutting-edge-rebooting">
|
||||
<title>Herstarten</title>
|
||||
|
||||
<para>Dit was het. Na een controle of alles op de juiste plaats
|
||||
|
@ -1731,11 +1609,6 @@ Script done, …</screen>
|
|||
&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Gebruik in &os; 5.X en ouder
|
||||
<makevar>-DNOCLEAN</makevar>.</para>
|
||||
</note>
|
||||
|
||||
<para>Dit maakt het werk van de vorige <command>make
|
||||
buildworld</command> niet ongedaan.</para>
|
||||
|
||||
|
|
Loading…
Reference in a new issue