BSD-FAQ-it
Indietro | Capitolo 7. Lavorare con il Kernel | Avanti

# 7.3. Mantenere i sorgenti del sistema aggiornati

L'aggiornamento del Kernel di sistema naturalmente dipende direttamente dai sorgenti che compongono il sistema stesso, è quindi possibile aggiornare tutti i sorgenti di un sistema FreeBSD. Come con l'albero dei ports, anche la procedura di aggiornamento dei sorgenti di sistema si basa sulle differenze. Tali differenze vengono riscontrate tra l'albero dei sorgenti, presenti sul sistema locale, e l'albero dei sorgenti presenti sui servers del progetto FreeBSD alla URLs http://www.FreeBSD.org/. L'albero dei sorgenti e tutte le versioni di FreeBSD si suddividono in:

1. STABLE è l'albero dei sorgenti che contiene le patch e gli aggiornamenti delle versioni stabili del sistema operativo, si tratta di sistemi destinati alla produzione

2. CURRENT è l'albero dei sorgenti che i programmatori di FreeBSD utilizzano nella versioni in fase di sviluppo del sistema operativo, si tratta di sistemi destinati allo studio di nuove funzionalità

I sorgenti presenti sui servers ufficiali del progetto FreeBSD sono soggetti a continui aggiornamenti, le modifiche vengono effettuate da parte di tutti gli sviluppatori del team di FreeBSD. Tramite il sistema del CVS (Concurrent Version Sistem), l'utente finale trasferisce dai server di origine del progetto FreeBSD le patch, gli aggiornamenti verranno automaticamente applicati ai sorgenti di sistema presenti sul disco locale.

Vediamo ora come procedere per il sistema di aggiornamento tramite CVS

- Se non si è ancora provveduto all'installazione dei sorgenti del sistema è ora necessario muoversi in tal senso, la procedura verrà avviata grazie al comodo programma di installazione /stand/sysinstall, utilizzando questo applicativo procederemo con l'opzione Configure - Do post-install configuration of FreeBSD.

- Un'altro applicativo necessario allo scopo è il CVSup. CVSup è una utility che consente di distribuire e mantenere aggiornati un'insieme di file attraverso la rete, può essere utilizzato per realizzare un'efficente ed accurato sistema di mirroring che può essere relativo a qualsiasi tipo di files, inclusi i sorgenti, i binari ed i link simbolici. Probabilmente già avremo installato il CVSup al momento dell'installazione del sistema operativo, oppure avremo proceduto all'installazione del CVSup nella fase di utilizzo della procedura di aggiornamento dei ports tramite CVS (FreeBSD HandBook http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html). Se ancora non si è proceduto in tal senso, anche in questo caso sarà necessario utilizzare il programma /stand/sysinstall o compilare ed installare il CVSup direttamente dall'albero dei ports

Prepariamo ora tutti i file di configurazione che ci consentiranno di aggiornare i sorgenti del sistema partendo dagli esempi che abbiamo installato con la procedura di installazione. In particolare dovremo confrontare il file /usr/share/examples/etc/make.conf con il file /etc/make.conf che, in linea di massima, dovrebbe già essere presente sul nostro sistema, per quanto concerne la versione 4.8-STABLE il file da confrontare è contenuto nella directory /etc/defaults/make.conf.

E' importante che Il file /etc/make.conf, per consentire l'aggiornamento tramite CVS, contenga le seguenti direttive, nel caso le direttive vanno aggiunte a quelle già presenti

    # CVSup update flags.
    #
    SUP_UPDATE= yes
    #
    SUP= /usr/local/bin/cvsup
    SUPFLAGS= -g -L 2
    SUPHOST= cvsup.uk.FreeBSD.org
    SUPFILE= /usr/local/etc/cvsup/stable-supfile
    PORTSSUPFILE= /usr/local/etc/cvsup/ports-supfile
    DOCSUPFILE= /usr/local/etc/cvsup/doc-supfile

Nell'esempio sopracitato notiamo che il file /etc/make.conf fa riferimento ad alcuni altri file aggiuntivi che sono relativi ai sorgenti, ai ports e alla documentazione. Per costruire questi file è necessario fare riferimento agli esempi contenuti nella directory /usr/share/examples/cvsup/, se necessario copiamo questi files nella directory /usr/local/etc/cvsup.

In particolare il file stable-supfile individua i sorgenti del ramo STABLE, gli altri files sono ports-supfile che consente l'aggiornamento dell'albero dei ports e doc-supfile che consente l'aggiornamento della documentazione. Di seguito vediamo il contenuto dei files di esempio che abbiamo citato in precedenza.

stable-supfile

    # /usr/local/etc/cvsup/stable-supfile
    *default host=cvsup.uk.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    # linea successiva per la versione 4-stable
    *default release=cvs tag=RELENG_4
    # potrebbe rendersi necessario aggiornare il sistema ad una certa data
    # in tale ipotesi dovra' essere sostituita la tag *default release con
    # *default release=cvs tag=RELENG_4 date=2003.08.20.00.00.00
    #
    *default delete use-rel-suffix
    # If your network link is a T1 or faster, comment out the following line.
    *default compress
    ## Main Source Tree.
    #
    # The easiest way to get the main source tree is to use the "src-all"
    # mega-collection. It includes all of the individual "src-*" collections.
    src-all

ports-supfile

    # /usr/local/etc/cvsup/ports-supfile
    *default host=cvsup.uk.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    *default release=cvs tag=.
    *default delete use-rel-suffix
    # If your network link is a T1 or faster, comment out the following line.
    *default compress
    ## Ports Collection.
    #
    # The easiest way to get the ports tree is to use the "ports-all"
    # mega-collection. It includes all of the individual "ports-*"
    # collections,
    ports-all

doc-supfile

    # /usr/local/etc/cvsup/doc-supfile
    *default host=cvsup.uk.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    #
    # "tag" in the next line should always either be "." to receive the most
    # up-to-date files, or left blank (i.e., "*default release=cvs") to receive
    # the CVS ,v files. The doc collection is not branched.
    #
    *default release=cvs tag=.
    *default delete use-rel-suffix
    #
    # If your network link is a T1 or faster, comment out the following line.
    *default compress
    #
    # This will retrieve the entire doc branch of the FreeBSD repository.
    # This includes the handbook, FAQ, and translations thereof.
    doc-all

Accertiamoci di aver salvato tutti i file di configurazione, non dimentichiamo che questi files saranno importantissimi anche nella gestione del sistema delworld di FreeBSD che vedremo in seguito. A questo punto possiamo finalmente aggiornare i sorgenti del sistema, i ports e la documentazione tutta. Sarà sufficente impartire pochi comandi per iniziare la procedura.

    [root@picard root]# cd /usr/src
    [root@picard src]# make update

Indietro | Partenza | Avanti
Il file di configurazione del Kernel | Risali | Il file refuse