doc: [ testi/update.html ]

Come aggiornare FreeBSD 4.x ad una versione successiva 4.y-STABLE
Ultimo Aggiornamento: 02-03-2003

Legenda

comandi
output di un comando
note
parti di testo da aggiungere e/o modificare
nomi di file

 

Requisiti minimi

a) Albero completo dei sorgenti installato (con tutte le varie dir).
(distribuzioni DEVELOPER o X-DEVELOPER al momento dell'installazione)

b) Albero dei ports presente (opzionale ma fortemente consigliato).
(rispondere si alla domanda di installazione dei ports durante l'installazione)

c) cvsup installato nel sistema:

dal paccheto: pkg_add -r cvsup-without-gui
dai ports: cd /usr/ports/net/cvsup-without-gui && make install clean

La home page puo' essere consultata qui

N.B.
Se non avete installato i file del punto a) e b) al primo aggiornamento che fate, scaricherete tutto l'albero dei sorgenti e non solo le diff .

 

Set-up di base

1) Verificare che il cvsup sia installato nel sistema:
pkg_info -Ia | grep -i cvsup

che dovrebbe restituire un output piu' o meno simile a questo.
cvsup-16.1d A general network file distribution system optimized for CV

2) Creare una directory , es. /usr/sup
mkdir /usr/sup

3) Creare i file di configurazione del cvsup dentro questa directory:

3a) stable-supfile per i sorgenti dell'intero OS
3b) ports-supfile per aggiornare l'abero dei ports
3c) refuse per rifiutare quello che non si desidera.

---> stable-supfile <---
*default host=cvsup.de.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
*default compress
src-all
---> end <---

---> ports-supfile <---
*default host=cvsup.de.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all
---> end <----

---> refuse <---
doc/de*
doc/el*
doc/ru*
doc/fr*
doc/ja*
doc/zh*
doc/ru*
doc/sr*
doc/es*
ports/chinese/*
ports/french/*
ports/hebrew/*
ports/hungarian/*
ports/german/*
ports/japanese/*
ports/korean/*
ports/portuguese/*
ports/russian/*
ports/vietnamese/*
ports/ukrainian/*
---> end <----

N.B.
Potete anche eliminare queste categorie di ports dal vostro HD (per risparmiare spazio) se prevedete di non utilizzarli mai.
cd /usr/ports
rm -r chinese french german ..
. etc etc

N.B. I file *-supfile li trovate anche nel vostro HD (se avete installato cvsup) :-)
Infatti il comando:
locate ports-supfile

restituisce questi file:
/usr/share/examples/cvsup/ports-supfile
/usr/src/share/examples/cvsup/ports-supfile
/usr/sup/ports-supfile

4) Creare o aggiornare il file /etc/make.conf con le seguenti linee.

---> aggiungere a /etc/make.conf <----
SUP_UPDATE= yes
SUP= /usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPFILE= /usr/sup/stable-supfile
PORTSSUPFILE= /usr/sup/ports-supfile
SUPHOST= cvsup.de.freebsd.org
KERNCONF= FREEBSD
---> end <----

N.B.
SUPHOST in questo esempio (come nei file di configurazione e' stato posto uguale a "cvsup.de.freebsd.org".
Questo pero' puo' essere cambiato se si desidera usare un host piu' vicino e/o meno carico per la nostra connessione.

 

Aggiornamento:

5) Cominciare l'aggiornamento del sistema.

cd /usr/src
make update

make update fa partire il cvsup, con i parametri trovati nel file /etc/make.conf
Se non funzionasse, perche' magari la versione di FreeBSD e' troppo vecchia e questo nuovo modo di aggiornare non era ancora operativo, usare il vecchio sistema:

cvsup -g /usr/sup/ports-file (per aggiornare i ports)
cvsup -g /usr/sup/stable-file (per aggiornare i sorgenti)

 

Compilazione

6) Creazione kernel

Prima di tutto prepariamo il file del kernel (che ci servira' poi):

cd /usr/src/sys/i386/conf
cp GENERIC FREEBSD
vi FREEBSD

modificate a piacere, salvare ed uscire.

N.B.
In questo esempio il mio kernel si chiama FREEBSD (che per ragioni puramente storiche si preferisce salvare con un nome tutto maiuscolo).
Se volete chiamarlo in un altro modo dovete modificare anche la parte relativa al kernel nel file /etc/make.conf .

N.B.
Se non si e' pratici dell'editor vi, potete usare come sostituto ee:
ee FREEBSD

7) Compilazione

mergemaster -p per aggiornare eventuali config necessari a compilare il sistema

Modo ufficiale Modo non ufficiale e non supportato, ma ... :-)
make buildworld
make buildkernel
make installkernel
reboot (in single user mode)
make installworld
mergemaster
shutdown -r now
cd /usr/src
make kernel
make world
mergemaster
shutdown -r now

 

make world (make buildworld + make installworld) ricompila l'intero sistema.
make kernel (make buildkernel + make installkernel) compila ed installa il kernel generato dal file di config FREEBSD
mergemaster aggiorna i file di config (aggiornate tutto escluso quello che avete di personalizzato, tipo master.passwd, named.conf etc etc )
shutdown -r now riavvia il sistema.

Il sistema dovrebbe essere aggiornato.Verificatelo con:

uname -a

FreeBSD gmarco.ablia.org 4.3-STABLE FreeBSD 4.3-STABLE #3: Fri May 11 07:13:29 CEST 2001 gmarco@gmarco.ablia.org:/usr/local/gm/obj4-STABLE/usr/src/sys/FREEBSD i386

 

Ultime considerazioni

a) L'aggiornamento puo' essere fatto anche se il sistema non e' in single-user mode. Io ho fatto decine di make world anche su macchine di produzione mentre stavano lavorando, senza riscontrare nessun malfunzionamento. Se pero' preferite essere sicuri e/o state operando in un ambiente critico di produzione potete entrare in single-user mode e poi iniziare la sequenza al punto 7. (dopo aver dato un mount / ).

b) Per velocizzare il processo i dischi devono essere montati con il softupdate attivo e l'opzione noatime.
Per verificare questo:

mount
/dev/ad4s1a on / (ufs, local, noatime, soft-updates)
/dev/ad5s1e on /usr/local/gm (ufs, local, noatime, soft-updates)
procfs on /proc (procfs, local)

L'opzione noatime si attiva nel file /etc/fstab, es:

/dev/ad4s1a / ufs rw,noatime 1 1

il softupdates si attiva o al momento dell'installazione (solo da FreeBSD 4.3-RELEASE in poi) usando il tasto S nel menu disklabel o con il comando
tunefs -n enable /dev/partizione_da_abilitare

Go back