From owner-p4-projects@FreeBSD.ORG Wed Dec 31 15:32:07 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7C3CF1065670; Wed, 31 Dec 2008 15:32:07 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 34221106566B for ; Wed, 31 Dec 2008 15:32:07 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 209B38FC16 for ; Wed, 31 Dec 2008 15:32:07 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id mBVFW6WH019106 for ; Wed, 31 Dec 2008 15:32:06 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id mBVFW6DZ019104 for perforce@freebsd.org; Wed, 31 Dec 2008 15:32:06 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 31 Dec 2008 15:32:06 GMT Message-Id: <200812311532.mBVFW6DZ019104@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 155509 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2008 15:32:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=155509 Change 155509 by rene@rene_self on 2008/12/31 15:31:50 Complete merge of updating chapter into cutting-edge chapter. Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#8 (text+ko) ==== @@ -50,36 +50,51 @@ - Het scherp van de snede + &os; updaten en upgraden - + Overzicht &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. + 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. Na het lezen van dit hoofdstuk weet de lezer: - De verschillen tussen de ontwikkeltakken &os.stable; en - &os.current;; + Welke gereedschappen gebruikt kunnen worden om het systeem + en de Portscollectie te updaten. Hoe een systeem bijgewerkt kan worden met + freebsd-update, CVSup, CVS of CTM; + Hoe de toestand van een geïnstalleerd systeem met een + bekende maagdelijke kopie te vergelijken. + + + + De verschillen tussen de ontwikkeltakken &os.stable; en + &os.current;; + + + Hoe een basissysteem opnieuw te compileren en te herinstalleren met make buildworld, enzovoort. @@ -111,6 +126,408 @@ + + + + + Tom + Rhodes + Geschreven door + + + + + + Colin + Percival + Gebaseerd op notities aangeleverd door + + + + + FreeBSD Update + + updaten en upgraden + + + freebsd-update + + updating-upgrading + + + 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. + + + 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. + + + @@ -199,7 +616,7 @@ - &os.current; vs. &os.stable; + Een ontwikkelingstak volgen -CURRENT @@ -1024,8 +1441,8 @@ &prompt.root; rm -rf * - - Broncode van het basis systeem hercompileren + + Broncode van het basissysteem hercompileren Uitvoer bewaren @@ -1420,7 +1837,8 @@ Als &man.mergemaster.8; gebruikt wordt (zoals aangeraden), kan doorgegaan worden met het volgende onderdeel. + linkend="updating-upgrading-rebooting">volgende + onderdeel. De simpelste manier om met de hand bij te werken, is de bestanden in een nieuwe map installeren en daarna naar @@ -1578,7 +1996,7 @@ - + Herstarten Dit was het. Na een controle of alles op de juiste plaats @@ -1597,9 +2015,9 @@ Als er dingen misgingen is het makkelijk om een deel van het systeem opnieuw te bouwen. Als bijvoorbeeld per ongeluk /etc/magic verwijderd is als onderdeel - van de upgrade of door een merge van /etc, - dan werkt &man.file.1; niet meer. Dat kan als volgt opgelost - worden: + van de upgrade of door het samenvoegen van + /etc, dan werkt &man.file.1; niet meer. + Dat kan als volgt opgelost worden: &prompt.root; cd /usr/src/usr.bin/file &prompt.root; make all install