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