So aktualisieren Sie FreeBSD von Version 10.2 auf 10.3

Einführung

FreeBSD entwickelt sich ständig weiter. Das Team fügt neue Funktionen hinzu und korrigiert Sicherheitslücken. Wenn Sie Ihr Server-Betriebssystem auf dem neuesten Stand halten, werden Sicherheit und Kompatibilität verbessert, und FreeBSD enthält das Tool "+ freebsd-update +", um dies zu vereinfachen. In diesem Tutorial aktualisieren Sie einen vorhandenen FreeBSD-Server, auf dem FreeBSD 10.2-RELEASE ausgeführt wird, auf 10.3.RELEASE-p4.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Server mit FreeBSD 10.2.

  • Ein Benutzerkonto, das zum Ausführen von Befehlen mit + sudo + konfiguriert ist. Wir verwenden das Standardkonto * freebsd *, das automatisch erstellt wird, wenn Sie ein FreeBSD-Droplet erstellen. Weitere Informationen zum Anmelden bei FreeBSD Droplet und zur grundlegenden Verwaltung finden Sie in der Tutorialserie Getting Started with FreeBSD.

Schritt 1 - Abrufen und Anwenden von Patches

Um das Betriebssystem zu aktualisieren, müssen zuerst die Pakete und Patches für unsere Zielversion abgerufen werden. Melden Sie sich mit dem Konto * freebsd * beim Server an.

ssh freebsd@

Verwenden Sie dann den Befehl "+ freebsd-upgrade +", um Informationen zum System-Upgrade zu erhalten und festzustellen, was geändert werden muss. Führen Sie den folgenden Befehl aus:

sudo freebsd-update upgrade -r 10.3-RELEASE

Wir verwenden den Schalter "+ -r ", um die Version anzugeben, auf die wir aktualisieren möchten, nämlich " 10.3-RELEASE +". Nach kurzer Zeit wird folgende Ausgabe angezeigt:

Outputsrc component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update6.freebsd.org... done.
Fetching metadata signature for 10.2-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system...

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/doc world/games world/lib32

The following components of FreeBSD do not seem to be installed:

Does this look reasonable (y/n)?

Auf diese Weise haben Sie die Möglichkeit, mögliche Probleme zu überprüfen. Geben Sie "+ a " ein und drücken Sie " ENTER", um fortzufahren.

Sobald Sie damit einverstanden sind, werden Updates und Patches angewendet. Sie sehen die folgende Ausgabe:

OutputFetching metadata signature for 10.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system...
Fetching files from 10.2-RELEASE for merging... done.
Preparing to download files...
Fetching 10722 patches.....10....20....30....40....50....60....70....80....90
....100....110....120....130....140....150....160....170....180....190....200

   **. . .**

....10650....10660....10670....10680....10690....10700....10710....10720. done.
Applying patches... done.
Fetching 152 files...
Attempting to automatically merge changes in files... done.

Der Prozess kann jedoch nicht alles automatisch patchen. Wir müssen manuell eingreifen.

Schritt 2 - Konflikte lösen

Nach dem Anwenden von Patches auf das Betriebssystem zeigt "+ freebsd-update " zwei Warnmeldungen an, und Sie müssen einige geringfügige Konflikte in zwei verschiedenen Konfigurationsdateien manuell beheben. Einer ist " / etc / rc.subr " und der andere ist " / etc / ssh / sshd_config +".

Die erste Warnung, die Sie sehen, lautet wie folgt:

outputThe following file could not be merged automatically: `/etc/rc.subr`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Wenn Sie die Eingabetaste drücken, wird die Datei "+ / etc / rc.subr " im Texteditor " vi +" geöffnet und der folgende Text wird angezeigt:

/etc/rc.subr Datei mit Konflikten, die manuell gelöst werden müssen

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $



# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Ändern Sie diesen Abschnitt, indem Sie die Zeilen entfernen, die sich auf die aktuelle Version beziehen und oben rot hervorgehoben sind. Obwohl wir derzeit FreeBSD 10.2 ausführen, bezeichnet diese Datei 10.1 als "aktuell". Entfernen Sie diese Zeilen, damit der Abschnitt wie im folgenden Beispiel aussieht:

/etc/rc.subr ist bereit zum Fortfahren

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $
# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Speichern Sie Ihre Änderungen an der Datei und beenden Sie den Editor.

Sobald Sie den Texteditor schließen, wird in einer Zeile die erfolgreiche Zusammenführung der gerade geänderten Datei angezeigt. Dann wird die zweite Warnung angezeigt, die besagt, dass die Konfigurationsdatei "+ / etc / ssh / sshd_config +" Ihre Aufmerksamkeit benötigt:

Output/var/db/freebsd-update/merge/new//etc/rc.subr: 2087 lines, 47888 characters.

The following file could not be merged automatically: `/etc/ssh/sshd_config`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Nach wie vor wird Ihnen beim Drücken von "+ ENTER +" eine Textdatei angezeigt, die Sie ändern müssen. Das Teil, das Sie ändern müssen, ähnelt der ersten Datei, die Sie bearbeitet haben.

/ etc / ssh / sshd_config-Datei mit Konflikten, die manuell gelöst werden müssen

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

Ändern Sie diesen Abschnitt erneut, indem Sie die Zeilen entfernen, die sich auf die aktuelle Version beziehen, bis der Abschnitt der Datei so aussieht:

/ etc / ssh / sshd_config bereit zum Fortfahren

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

Speichern Sie Ihre Änderungen an der Datei und schließen Sie den Editor.

Sobald der Editor geschlossen ist, zeigt der Prozess "+ freebsd-update " jede Datei an, die Sie geändert haben, und fragt, ob die Änderungen angemessen sind. Beantworten Sie beide Fragen mit ` y +`, um die Installation fortzusetzen.

Sobald Sie mit den Änderungen einverstanden sind, wird eine Liste der Binärdateien und Konfigurationsdateien angezeigt, die aktualisiert werden. Diese Liste ist sehr lang; Drücken Sie + LEERTASTE +, um eine Seite nach der anderen durch die Liste zu scrollen. Wenn Sie die Liste nicht überprüfen möchten, geben Sie zum Beenden "+ q " ein. Mach dir keine Sorgen; Drücken von " q +" bricht den Upgrade-Vorgang nicht ab.

Die Liste sieht folgendermaßen aus:

OutputThe following files will be added as part of updating to 10.3-RELEASE-p5:
/boot/kernel/ismt.ko
/boot/kernel/ismt.ko.symbols
/boot/kernel/linux64.ko
/boot/kernel/linux64.ko.symbols
/boot/kernel/linux_common.ko
/boot/kernel/linux_common.ko.symbols
/boot/kernel/mlx5.ko

   . . .

The following files will be updated as part of updating to 10.3-RELEASE-p5:
/.cshrc
/.profile
/COPYRIGHT
/bin/[
/bin/cat
/bin/chflags
/bin/chio

   . . .

Sobald Sie die Liste überprüft haben, sind Sie wieder an der Eingabeaufforderung Ihres Terminals. Sie können die Installation jetzt ausführen.

Schritt 3 - FreeBSD installieren 10.3

Die Updates wurden heruntergeladen und wichtige Dateien wurden erfolgreich zusammengeführt oder konfiguriert. Verwenden Sie zum Installieren der heruntergeladenen Upgrades den folgenden Befehl:

sudo /usr/sbin/freebsd-update install

Hier ist die Ausgabe, die Sie sehen werden:

Outputsrc 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.

Bei der Installation werden Sie aufgefordert, einen Neustart durchzuführen. Führen Sie daher den folgenden Befehl aus, um den Computer neu zu starten:

sudo reboot

Sie werden von Ihrer SSH-Sitzung getrennt und der Neustart dauert ungefähr eine Minute. Sobald Ihr Computer wieder online ist, melden Sie sich wieder an und fahren Sie mit dem nächsten Schritt fort.

Schritt 4 - Abschluss des Installationsvorgangs

Überprüfen Sie die Version unseres Servers, um sicherzustellen, dass der Upgrade-Prozess funktioniert hat und der neue Kernel geladen ist. Melden Sie sich zunächst wieder bei Ihrem Server an:

ssh freebsd@

Führen Sie nach der Anmeldung den folgenden Befehl aus:

uname -a

und die folgende Ausgabe zeigt an, dass das Upgrade funktioniert hat:

OutputFreeBSD  #0: Sat May 28 12:23:44 UTC 2016     [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

Das Upgrade ist jedoch noch nicht abgeschlossen. Wir müssen alle abschließenden Updates installieren, die seit der Erstellung des Releases aufgetreten sind. Führen Sie also "+ freebsd-update +" noch einmal aus.

sudo /usr/sbin/freebsd-update install

Sie sehen die folgende Ausgabe:

Outputsrc component not installed, skipped
Installing updates...
Installing updates...
install: ///var/db/etcupdate/current/etc/mtree/BSD.debug.dist: No such file or directory
install: ///var/db/etcupdate/current/etc/periodic/daily/480.leapfile-ntpd: No such file or directory
done.

Es ist sicher, die beiden Warnungen am Ende zu ignorieren. Beide Dateien werden durch diesen Vorgang erstellt oder aktualisiert.

Wenn Sie FreeBSD aktualisieren, sollten Sie auch alle installierten Pakete von Drittanbietern aktualisieren, insbesondere, wenn Sie ein Major Release Upgrade durchführen. Führen Sie dazu den folgenden Befehl aus:

sudo pkg upgrade

Die Ausgabe sieht folgendermaßen aus:

OutputUpdating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.

   . . .

Processing entries: 100%
FreeBSD repository update completed. 25089 packages processed.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       pkg: 1.5.6 -> 1.7.2

The process will require 242 KiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]:

Geben Sie "+ y " ein und drücken Sie " ENTER +", um fortzufahren. Die folgende Ausgabe wird angezeigt:

OutputFetching pkg-1.7.2.txz: 100%    2 MiB   1.3MB/s    00:02
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.5.6 to 1.7.2...
[1/1] Extracting pkg-1.7.2: 100%
Updating FreeBSD repository catalogue...
Repo "FreeBSD" upgrade schema 2011 to 2012: Add depends formula field
Repo "FreeBSD" upgrade schema 2012 to 2013: Add vital field
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (24 candidates): 100%
Processing candidates (24 candidates): 100%
The following 24 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       xproto: 7.0.27 -> 7.0.28
       sudo: 1.8.13 -> 1.8.16_1
       rsync: 3.1.1_3 -> 3.1.2_1
       python27: 2.7.9_1 -> 2.7.11_2
       py27-setuptools27: 17.0 -> 20.0
       py27-pip: 7.0.3 -> 8.0.2
       perl5: 5.20.2_5 -> 5.20.3_12
       pcre: 8.37_4 -> 8.38_1
       libxml2: 2.9.2_3 -> 2.9.3
       libxcb: 1.11_1 -> 1.11.1
       libnet: 1.1.6_3,1 -> 1.1.6_4,1
       libiconv: 1.14_8 -> 1.14_9
       libX11: 1.6.2_3,1 -> 1.6.3,1
       kbproto: 1.0.6 -> 1.0.7
       indexinfo: 0.2.3 -> 0.2.4
       gobject-introspection: 1.42.0 -> 1.46.0
       glib: 2.42.2 -> 2.46.2
       gettext-runtime: 0.19.4 -> 0.19.7
       expat: 2.1.0_3 -> 2.1.1_1
       dbus: 1.8.16 -> 1.8.20
       curl: 7.43.0_2 -> 7.48.0_1
       ca_root_nss: 3.19.3 -> 3.22.2
       avahi-app: 0.6.31_3 -> 0.6.31_5

Installed packages to be REINSTALLED:
       dbus-glib-0.104 (option added: DOCS)

The process will require 5 MiB more space.
39 MiB to be downloaded.

Proceed with this action? [y/N]:

Geben Sie erneut "+ y " ein, gefolgt von " ENTER +", um fortzufahren.

Die Pakete werden aktualisiert, aber um sicherzustellen, dass Ihr Benutzer Zugriff auf die neuesten Versionen hat, führen Sie den Befehl + rehash + aus:

rehash

Damit ist der Upgrade-Vorgang abgeschlossen. Aber was ist, wenn etwas schief gelaufen ist?

Schritt 5 - Rollback einer fehlgeschlagenen Installation (optional)

Der gesamte Upgradevorgang sollte reibungslos verlaufen. Wenn jedoch während des Upgrades Probleme auftreten, können Sie kürzlich installierte Pakete mit dem folgenden Befehl zurücksetzen:

sudo freebsd-update rollback

Dadurch wird der Rollback-Vorgang eingeleitet, und Sie kehren zu Ihrer ursprünglichen Position zurück. Sie können auch die letzte Sicherung wiederherstellen, die Sie vor Beginn des Vorgangs erstellt haben.

Fazit

Ein Upgrade eines Betriebssystems auf eine neuere Version und die rechtzeitige Anwendung von Sicherheitspatches sind wichtige Aspekte der laufenden Systemadministration. Mit dem Befehl "+ freebsd-update +" können Sie diese beiden Aufgaben einfach ausführen. Sobald Sie mit dem Prozess vertraut sind, können Sie zukünftige Upgrades selbst durchführen.

Weitere Informationen zum Upgrade von FreeBSD finden Sie unter An Introduction To Basic FreeBSD Maintenance entsprechendes Kapitel im FreeBSD Handbook.