diff --git a/nl_NL.ISO8859-1/books/handbook/dtrace/Makefile b/nl_NL.ISO8859-1/books/handbook/dtrace/Makefile new file mode 100644 index 0000000000..0a0e6e03dc --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/dtrace/Makefile @@ -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" diff --git a/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml new file mode 100644 index 0000000000..99beb23c6d --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.sgml @@ -0,0 +1,410 @@ + + + + + + + + + Tom + Rhodes + Geschreven door + + + + + René + Ladan + Vertaald door + + + + + DTrace + + + Overzicht + + DTrace + + + DTrace-ondersteuning + + DTrace + + + 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. + + 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. + + Na het lezen van dit hoofdstuk weet u: + + + + Wat DTrace is en welke mogelijkheden het biedt. + + + + De verschillen tussen de DTrace-implementatie van + &solaris; en degene die door &os; wordt aangeboden. + + + + Hoe DTrace op &os; aan te zetten en te gebruiken. + + + + Voordat u dit hoofdstuk leest, dient u: + + + + De beginselen van &unix; en &os; te begrijpen + (). + + + + Bekend te zijn met de beginselen van kernelconfiguratie en + -compilatie (). + + + + Wat bekendheid te hebben met beveiliging en hoe het zich + verhoudt tot &os; (). + + + + Te begrijpen hoe de broncode van &os; te verkrijgen en te + herbouwen (). + + + + + + 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. + + + + + Implementatieverschillen + + 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. + + Er is een kerneloptie DDB_CTF die gebruikt + wordt om ondersteuning voor het laden van + CTF-gegevens van kernelmodulen en de kernel + zelf. CTF is het Compact C Type Format van + &solaris; welke een beperkte vorm van debuginformatie bevat + die vergelijkbaar is met DWARF en de befaamde + stabs. Deze CTF-gegevens worden door de + bouwmiddelen ctfconvert en + ctfmerge aan de binairen toegevoegd. Het + hulpmiddel ctfconvert parst + DWARF-debug ELF-secties die + door de compiler zijn aangemaakt en ctfmerge + voegt CTF ELF-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. + + Sommige aanbieders voor &os; verschillen van die voor + &solaris;. De meest opmerkelijke is de aanbieder + dtmalloc, welke het volgen van + malloc() op soort in de &os;-kernel + toestaat. + + Alleen root 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 /dev/dtrace/dtrace + strikt beperkt tot root. + + Tenslotte valt de DTrace-software onder de + CDDL-licentie van &sun;. De Common + Development and Distribution License wordt bij &os; + geleverd, zie + /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE + of bekijk het online op + . + + Deze licentie houdt in dat een &os;-kernel met de + DTrace-opties nog steeds onder de BSD-licentie + valt; de CDDL komt echter op de proppen wanneer + de modulen in binaire vorm worden verspreid, of wanneer de + binairen zijn geladen. + + + + Ondersteuning voor DTrace aanzetten + + Voeg de volgende regels toe aan het kernelinstellingenbestand + om ondersteuning voor DTrace aan te zetten: + + options KDTRACE_HOOKS +options DDB_CTF + + + Gebruikers van de AMD64-architectuur zullen de volgende + regel aan hun kernelinstellingenbestand willen toevoegen: + + options KDTRACE_FRAME + + Deze optie biedt ondersteuning voor de mogelijkheid + FBT. DTrace zal zonder deze optie werken; + er zal echter beperkte ondersteuning zijn voor het volgen van + functiegrenzen. + + + Alle broncode moet herbouwd en geherinstalleerd worden met de + CTF-opties. Om deze taak te volbrengen, wordt + de &os;-broncode herbouwd met: + + + + &prompt.root; cd /usr/src + +&prompt.root; make WITH_CTF=1 kernel + + + Het systeem moet opnieuw gestart worden. + + 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 ksh zijn geschreven. Installeer + shells/ksh93. Het is ook + mogelijk om deze hulpmiddelen in shells/pdksh of shells/mksh te draaien. + + Als laatste dient de huidige DTrace-gereedschapskist verkregen + te worden. De huidige versie is beschikbaar op + . + Het bevat een installatiemechanisme; om gebruik te maken van de + bijgeleverde hulpmiddelen is installatie echter niet nodig. + + + + DTrace gebruiken + + Voordat er gebruik wordt gemaakt van de functionaliteit van + DTrace, moet het DTrace-apparaat bestaan. Geef het volgende + commando om het apparaat te laten: + + &prompt.root; kldload dtraceall + + Ondersteuning van DTrace zou nu beschikbaar moeten zijn. De + beheerder kan het volgende commando uitvoeren om alle sondes te + bekijken: + + &prompt.root; dtrace -l | more + + Alle uitvoer wordt aan het hulpmiddel more + 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. + + 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, CPU-gebruik, en nog veel meer te + controleren. Pak de scripts uit met het volgende commando: + + &prompt.root; gunzip -c DTraceToolkit* | tar xvf - + + Ga naar die map met cd en zet de + uitvoerpermissies voor alle bestanden waarvan de naam uit kleine + letters bestaat, op 755. + + De inhoud van al deze scripts moet veranderd worden. Degenen + die naar /usr/bin/ksh verwijzen dienen naar + /usr/local/bin/ksh te verwijzen, de anderen + die /usr/bin/sh gebruiken dienen gewijzigd te + worden om /bin/sh te gebruiken, en tenslotte + dienen degenen die /usr/bin/perl gebruiken + veranderd te worden om /usr/local/bin/perl te + gebruiken. + + + Op dit moment is het voorzichtig om de lezer eraan te + herinneren dat de ondersteuning voor DTrace in &os; + niet compleet en + experimenteel 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. + + + Op het moment van schrijven worden slechts twee scripts van de + DTrace Toolkit volledig ondersteund in &os;: de scripts + hotkernel en + procsystime. Dit zijn de twee die we in de + volgende gedeelten van deze sectie zullen bekijken. + + De hotkernel 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: + + &prompt.root; ./hotkernel +Sampling... Hit Ctrl-C to end. + + De systeembeheerder moet de toetsencombinatie CtrlC + 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: + + 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% + + + + Het script werkt ook met kernelmodules. Draai het script met + de vlag om deze mogelijkheid te + gebruiken: + + &prompt.root; ./hotkernel -m +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% + + + + Het script procsystime vangt en beeldt + het tijdsgebruik van systeemaanroepen af voor een gegeven + PID of procesnaam. In het volgende voorbeeld + wordt er een nieuwe instantie van /bin/csh + gedraaid. Het procsystime werd uitgevoerd en + bleef wachten terwijl er enkele commando's op de andere instantie + van csh werden getypt. Dit zijn de resultaten + van deze test: + + &prompt.root; ./procsystime -n csh +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 + + Zoals te zien is, lijkt de systeemaanroep + read() de meeste tijd in nanoseconden te + gebruiken en gebruikte de systeemaanroep + getpid() de minste hoeveelheid tijd. + + + + De taal D + + De DTrace-gereedschapskist bevat vele scripts in de speciale + taal van DTrace. Deze taal wordt de taal D 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 + . + + + + diff --git a/nl_NL.ISO8859-1/books/handbook/updating/Makefile b/nl_NL.ISO8859-1/books/handbook/updating/Makefile new file mode 100644 index 0000000000..42d0c10e65 --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/updating/Makefile @@ -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" diff --git a/nl_NL.ISO8859-1/books/handbook/updating/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/updating/chapter.sgml new file mode 100644 index 0000000000..e3e1511108 --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/updating/chapter.sgml @@ -0,0 +1,566 @@ + + + + + + + Tom + Rhodes + Geschreven door + + + + + Colin + Percival + Gebaseerd op notities geleverd door + + + + + René + Ladan + Vertaald door + + + + + &os; bijwerken + + + Overzicht + + FreeBSD bijwerken + + + freebsd-update + Bijwerken + + + 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. + + 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 + CVSup te gebruiken. + + Hoewel het gebruik van CVSup 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. + + 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. + + Dit hoofdstuk zal deze nieuwe methoden uitleggen, en vertellen + hoe gebruikers alsmede systeembeheerders voordeel kunnen halen uit + hun praktische en eenvoudige gebruik. + + Na het lezen van dit hoofdstuk weet u: + + + + Welke gereedschappen gebruikt kunnen worden om het systeem + en de Portscollectie te updaten. + + + + Hoe freebsd-update te gebruiken om + beveiligingspatches toe te passen en grote en kleine upgrades + van &os; uit te voeren. + + + + Hoe de toestand van een geïnstalleerd systeem met een + bekende maagdelijke kopie te vergelijken. + + + + Voor het lezen van dit hoofdstuk dient u: + + + + De beginselen van &unix; en &os; te begrijpen + (). + + + + Bekend te zijn met de beginselen van het instellen en + compileren van de kernel (). + + + + Enigszins bekend te zijn met de Portscollectie en het + installeren van applicaties van derde partijen op &os; + (). + + + + Bekend te zijn met de verschillende broncomponenten + waaruit &os; bestaat en hoe het gereedschap + &man.mergemaster.8; te gebruiken + (). + + + + + + FreeBSD Update + + 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. + + Dit is niet langer het geval aangezien &os; nu een gereedschap + heeft dat eenvoudigweg freebsd-update 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. + + + 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: + . + + + Als er een crontab bestaat die de + mogelijkheden van freebsd-update gebruikt, moet + het uitgeschakeld worden voordat aan de volgende operatie wordt + begonnen. De nieuwste versie van + freebsd-update kan geïnstalleerd worden + door het getarde en gegzipte + pakket van de bovenstaande URL te downloaden en + het te installeren met de volgende commando's: + + &prompt.root; gunzip -c freebsd-update-upgrade.tgz | tar xvf - +&prompt.root; mv freebsd-update.sh /usr/sbin/freebsd-update +&prompt.root; mv freebsd-update.conf /etc + + Het downloaden is niet nodig voor alle huidige + uitgaven. + + + Het configuratiebestand + + 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: + + # Componenten van het basissysteem die bijgewerkt moeten blijven +Components src world kernel + + 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 src/bin bijgewerkt houden. + + 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. + + # Paden die beginnen met iets wat overeenkomt met een regel in een IgnorePaths +# statement zullen genegeerd worden. +IgnorePaths + + Voeg paden, zoals + /bin of + /sbin toe om deze + specifieke mappen ongemoeid te laten tijdens het updateproces. + Deze optie kan gebruikt worden om te voorkomen dat + freebsd-update lokale wijzigingen + overschrijft. + + # 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 + + 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, + KeepModifiedMetadata, die + freebsd-update instrueert om de veranderingen + tijdens het samenvoegen te bewaren. + + # 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/ + + Lijst van mappen met instellingenbestanden waar + freebsd-update 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 freebsd-update afbreekt. Maak in + geval van twijfel een reservekopie van /etc en accepteer de + samenvoegingen. In staat meer + informatie over het commando mergemaster. + + # Map waarin de gedownloade updates en tijdelijke +bestanden +# die door een &os; Update worden gebruikt worden worden opgeslagen. +# WorkDir /var/db/freebsd-update + + 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. + + # 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 + + Wanneer ingesteld op yes, zal + freebsd-update aannemen dat de lijst + Components compleet is en zal het niet + proberen om wijzigingen buiten de lijst te maken. Effectief zal + freebsd-update proberen om elk bestand bij te + werken dat op de lijst Components staat. + + + + Beveiligingspatches + + Beveiligingspatches staan op een verre machine en kunnen met + het volgende commando gedownload en geïnstalleerd + worden: + + &prompt.root; freebsd-update fetch +&prompt.root; freebsd-update install + + Als er kernelpatches zijn toegepast moet het systeem opnieuw + opgestart worden. Als alles goed is gegaan dient het systeem + gepatcht te zijn en kan freebsd-update als + een nachtelijke &man.cron.8;-taak gedraaid worden. Een regel + in /etc/crontab zou genoeg moeten zijn om + deze taak te volbrengen: + + @daily root freebsd-update cron + + Deze regel verklaart dat eenmaal per dag het commando + freebsd-update gedraaid zal worden. Op deze + manier, door het argument te gebruiken, + zal freebsd-update 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 + root worden verstuurd zodat ze handmatig + geïnstalleerd kunnen worden. + + Als er iets misging, heeft freebsd-update + de mogelijkheid om de laatste verzamelingen veranderingen terug + te draaien met het volgende commando: + + &prompt.root; freebsd-update rollback + + 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. + + + De freebsd-update werkt alleen met de + kernel GENERIC. Als er wijzigingen aan + de kernel GENERIC zijn gemaakt of er een + eigen kernel is geïnstalleerd, wordt + freebsd-update niet voltooid — + het zal falen in het eerste geval en een fout produceren in + het laatste. + + + + + Grote en kleine upgrades + + 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 ports-mgmt/portupgrade. De meeste + gebruikers zullen willen proefdraaien met het volgende + commando: + + &prompt.root; portupgrade -af + + Dit zorgt ervoor dat alles juist wordt geherinstalleerd. + Merk op dat het instellen van de omgevingsvariabele + BATCH op yes het antwoord + yes zal geven op alle prompts tijdens dit + proces, waardoor het niet nodig is om handmatig in het + bouwproces in te grijpen. + + Updates van grote en kleine versies kunnen worden uitgevoerd + door een uitgaveversie als doel aan + freebsd-update op te geven, het volgende + commando zal bijvoorbeeld updaten naar &os; 6.3: + + &prompt.root; freebsd-update -r 6.3-RELEASE upgrade + + Nadat het commando is ontvangen, zal + freebsd-update 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: + + 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 + + Nu zal freebsd-update 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. + + 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 /etc te maken en belangrijke + bestanden, zoals master.passwd of + group, later samen te voegen. + + + 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. + + + Als dit proces eenmaal voltooid is, kan de upgrade aan de + schijf toevertrouwd worden met het volgende commando. + + &prompt.root; freebsd-update install + + 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: + + &prompt.root; shutdown -r now + + Als het systeem weer actief is, moet + freebsd-update nogmaals gestart worden. + De toestand van het proces is opgeslagen en dus zal + freebsd-update niet vooraan beginnen, maar + zal het alle oude gedeelde bibliotheken en objectbestanden + verwijderen. Geef het volgende commando om verder te gaan op + dit punt: + + &prompt.root; freebsd-update install + + + Afhankelijk van het feit of er versienummers van + bibliotheken zijn opgehoogd, kunnen er slechts twee in plaats + van drie installatiefasen zijn. + + + 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 ports-mgmt/portupgrade kan gebruikt + worden om dit proces te automatiseren. Dit proces kan met de + volgende commando's gestart worden: + + &prompt.root; portupgrade -f ruby +&prompt.root; rm /var/db/pkg/pkgdb.db +&prompt.root; portupgrade -f ruby18-bdb +&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db +&prompt.root; portupgrade -af + + Voltooi, nadat dit voltooid is, het upgradeproces met een + laatste aanroep naar freebsd-update. Geef + het volgende commando om alle losse eindjes in het upgradeproces + samen te knopen: + + &prompt.root; freebsd-update install + + Start de machine opnieuw op in de nieuwe &os;-versie. Het + proces is voltooid. + + + + Het vergelijken van systeemtoestanden + + Het gereedschap freebsd-update 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: + + &prompt.root; freebsd-update IDS >> uitvoerbestand.ids + + + Hoewel de commandonaam IDS is, is het + in geen geval een vervanging voor een indringdetectiesysteem + zoals security/snort. + Aangezien freebsd-update gegevens op schijf + opslaat, is de mogelijkheid om te knoeien duidelijk. Hoewel + deze mogelijkheid verminderd kan worden door de instelling + kern.securelevel te gebruiken en de + gegevens van freebsd-update 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 DVD of een veilig opgeslagen + externe USB-schijf. + + + 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 + uitvoerbestand.ids gezonden. Het scrollt + te snel voorbij om het met het oog te vergelijken, en het vult + al snel de gehele consolebuffer op. + + 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: + + &prompt.root; cat uitvoerbestand.ids | awk '{ print $1 }' | more +/etc/master.passwd +/etc/motd +/etc/passwd +/etc/pf.conf + + Deze uitvoer is afgekapt, er bestaan veel meer bestanden. + Sommige van deze bestanden hebben natuurlijke veranderingen, het + /etc/passwd is gewijzigd omdat er + gebruikers aan het systeem zijn toegevoegd. In sommige gevallen + kunnen er andere bestanden zijn, zoals kernelmodules, die + verschillen aangezien freebsd-update ze + ge-updated kan hebben. Voeg, om bepaalde bestanden of mappen + uit te sluiten, deze toe aan de optie + IDSIgnorePaths in + /etc/freebsd-update.conf. + + Dit systeem kan gebruikt worden als deel van een uitgebreide + upgrademethode, afgezien van de eerder besproken versie. + + + + + Portsnap: een updategereedschap voor de Portscollectie + + 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: + + &prompt.root; portsnap fetch +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. + + 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. + + Wanneer &man.portsnap.8; succesvol een + fetch-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: + + &prompt.root; portsnap extract +/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 +... + + Het proces is nu compleet, en applicaties kunnen met de + bijgewerkte Portscollectie worden geïnstalleerd of worden + bijgewerkt. + +