In questo articolo, aggiorneremo il sistema operativo FreeBSD usando freebsd-update
. L' freebsd-update
utilità può essere utilizzata per aggiornare l'istanza con l'ultima versione della patch oppure è anche possibile scegliere di eseguire l'aggiornamento a una versione minore o maggiore.
Passaggio 1: punti da considerare prima di aggiornare l'istanza
- Fai il backup della tua istanza. Il modo più semplice è fare un'istantanea. Puoi anche scegliere facoltativamente di avere un backup extra dei file di configurazione da
/etc/
.
- Riservare un periodo di manutenzione in modo che l'aggiornamento possa essere pianificato e testato in tale arco di tempo; è necessario riservare più tempo a un aggiornamento di versione principale rispetto a un aggiornamento di versione minore o patch.
- Se si sta eseguendo l'aggiornamento a una versione principale, è più sicuro testare
freebsd-update
un'istanza di test o di sviluppo prima di tentarla su un server di produzione. È possibile utilizzare un'istantanea per avviare rapidamente un'istanza di prova, testare l'aggiornamento senza influire sull'istanza di produzione.
- Prima di iniziare l'aggiornamento, si consiglia di arrestare i servizi sull'istanza. Ad esempio: server Web, database, ecc. Questi potrebbero essere abilitati una volta completato l'aggiornamento. Questo passaggio è particolarmente importante per gli aggiornamenti delle versioni principali.
- Leggi le note di rilascio della versione di destinazione di FreeBSD prima di iniziare l'aggiornamento.
- È necessario disporre di almeno 500 MB di spazio libero nella
/var
partizione, in particolare per l'aggiornamento alla nuova versione minore o maggiore.
Passaggio 2: aggiornamento all'ultima versione della patch
Download dell'aggiornamento
Le versioni di patch contengono correzioni ai file e ai file binari del sistema operativo e potrebbero anche contenere una modifica nel kernel. Scarica l'aggiornamento utilizzando freebsd-update
. L'output dei comandi di seguito è stato modificato per brevità.
# freebsd-version
11.0-RELEASE-p1
# freebsd-update fetch
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update4.freebsd.org... done.
Fetching metadata signature for 11.0-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 998 patches......... done.
Applying patches... done.
Fetching 6 files... done.
The following files will be removed as part of updating to 11.0-RELEASE-p11:
/boot/kernel/hv_ata_pci_disengage.ko
...
The following files will be added as part of updating to 11.0-RELEASE-p11:
/usr/share/zoneinfo/Asia/Barnaul
...
The following files will be updated as part of updating to 11.0-RELEASE-p11:
/bin/freebsd-version
...
WARNING: FreeBSD 11.0-RELEASE-p1 is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.
Installare l'aggiornamento
Gli aggiornamenti sono stati scaricati sul tuo server. Ora installali.
# freebsd-update install
src component not installed, skipped
Installing updates... done.
Riavviare nel nuovo kernel, se necessario
Poiché l'aggiornamento da 11.0-RELEASE-p1
a 11.0-RELEASE-p11
comporta l'installazione di un nuovo kernel, riavviare l'istanza per avviare il kernel appena installato.
# shutdown -r now
... system reboot ...
# freebsd-version
11.0-RELEASE-p11
Ora hai aggiornato correttamente l'istanza da 11.0-RELEASE
a 11.0-RELEASE-p11
. Riattiva i tuoi servizi e verifica l'istanza.
Passaggio 3: aggiornamento a una versione minore o maggiore
Download dell'aggiornamento
In questa sezione, aggiorniamo la nostra istanza di FreeBSD da FreeBSD 11.0-RELEASE
a FreeBSD 11.1-RELEASE
. In freebsd-update
questo caso il comando differisce dall'aggiornamento della versione precedente della patch. Si noti che se ci sono alcuni conflitti nei file a causa di modifiche locali, freebsd-update
verrà richiesto lo stesso e consentirà di risolvere il conflitto.
# freebsd-version
11.0-RELEASE-p11
# freebsd-update upgrade -r 11.1-RELEASE
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 11.0-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg world/base world/lib32
The following components of FreeBSD do not seem to be installed:
world/base-dbg world/doc world/lib32-dbg
Does this look reasonable (y/n)? y
Fetching metadata signature for 11.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 11.0-RELEASE for merging... done.
Preparing to download files... done.
Fetching 11513 patches.....10....11510. done.
Applying patches... done.
Fetching 262 files... done.
Attempting to automatically merge changes in files... done.
The following files will be removed as part of updating to 11.1-RELEASE-p0:
/usr/include/netinet/ip_ipsec.h
...
The following files will be added as part of updating to 11.1-RELEASE-p0:
/boot/kernel/amd_ecc_inject.ko
...
The following files will be updated as part of updating to 11.1-RELEASE-p0:
/.cshrc
...
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
Installare l'aggiornamento
Ora che i file sono stati scaricati e tutti i conflitti sono stati risolti, è possibile procedere e installare l'aggiornamento.
# freebsd-update install
src component not installed, skipped
Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
Riavvia nel nuovo kernel e continua l'installazione
Una volta riavviata l'istanza, è possibile confermare la versione del kernel in esecuzione e riprendere l'installazione.
# uname -a
FreeBSD fbsd 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017
[email protected]:/usr/obj/usr/src/sys/GENERIC amd64
# freebsd-version
11.0-RELEASE-p11
# freebsd-update install
src component not installed, skipped
Installing updates...
Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.
Le versioni principali utilizzano diverse interfacce binarie di applicazione (ABI), che interromperanno la maggior parte delle applicazioni di terzi. Se si utilizzano le porte per creare applicazioni di terzi, è necessario creare tutte quelle applicazioni. Se si utilizza il sistema di gestione dei pacchetti, è possibile utilizzare il seguente comando.
# pkg-static upgrade -f
Dopo aver reinstallato tutti i pacchetti, completare l' freebsd-update
installazione.
# freebsd-update install
src component not installed, skipped
Installing updates... done.
# freebsd-version
11.1-RELEASE
Congratulazioni, la tua istanza è stata aggiornata a 11.1-RELEASE
! Ora puoi procedere per abilitare tutti i servizi necessari e confermare che l'istanza si sta comportando come previsto.