如何从FreeBSD 12升级到FreeBSD13

译文 精选
开发 架构
FreeBSD 13.1稳定版已正式发布。本教程将引导您完成从FreeBSD 12.3及更早的版本升级到FreeBSD 13.1的步骤。

译者 | 赵青窕

审校 | 孙淑娟

目录

  • 引言
  • 更新FreeBSD 12
  • 从 FreeBSD 12 升级到 FreeBSD 13

            升级过程中的异常处理

  • 更改主机名(可选操作)

引言

最近,FreeBSD的版本发布团队宣布FreeBSD 13.1-RELEASE发布的消息。这是13-stable分支的第二个版本。

FreeBSD 13.1中增加了许多新功能。它支持多种架构,包括amd64、i386、powerpc、powerpc64、powerpc64le、powerpcspe、armv6、armv7、aarch64 和 riscv64。

如果您想安装一个全新的版本,请前往 FreeBSD 13.1 ​​下载页面​​​获取适合您架构的版本。 然后参考文章《​​Install FreeBSD - Step By Step Guide​​》安装FreeBSD。

如果您已经在运行旧版本(例如 FreeBSD 12.x),您可以直接将 FreeBSD 12.x 升级到 FreeBSD 13.1。 在本文中,我将手把手的教您如何从 FreeBSD 12.3 版本升级到 FreeBSD 13.1。

更新FreeBSD 12

升级前,比较重要的就是进行内容的备份,尽管FreeBSD 升级过程已经做得很好了,但我还是强烈建议进行数据的备份。

接下来,让我们看一下如何进行更新。

分别使用下面的两个命令来检查FreeBSD操作系统的版本和内核的版本:

# freebsd-version -k
  • 1.

下面是该命令执行的输出样例:

12.3-RELEASE

$ uname -mrs
  • 1.
  • 2.
  • 3.

下面是该命令执行的输出样例:

FreeBSD 12.3-RELEASE amd64
  • 1.

查询FREEBSD操作系统的版本和内核版本

正如您在上面看到的,安装的版本是 FreeBSD 12.3-RELEASE。在升级到下一个可用的主版本前,我们必须更新我们当前的FreeBSD 12.x 版本。需要下载和安装FreeBSD安全补丁,请以root 用户身份运行以下命令:

# freebsd-update fetch
# freebsd-update install
# pkg upgrade
  • 1.
  • 2.
  • 3.

升级软件包后,可以选用下面两个命令中的一个来重新启动系统:

# shutdown -r now
# reboot
  • 1.
  • 2.

接下来,我将说明如何从FreeBSD 12升级到FreeBSD 13。

从 FreeBSD 12 升级到 FreeBSD 13

在我撰写本指南时,最新稳定的FreeBSD版本是13.1。

运行以下命令将系统从FreeBSD 12.x版本升级到FreeBSD 13.1-RELEASE:

# freebsd-update -r 13.1-RELEASE upgrade
  • 1.

运行此命令后,freebsd-update命令将评估配置文件和当前系统的状态,以尝试收集执行升级所需的信息。在升级过程中,系统会询问您要安装什么、要删除什么或接下来要如何操作。 您可能需要输入y并按几次ENTER键以便继续升级流程。

下面是执行升级命令freebsd-update的输出样例:

src component not installed, skipped
 Looking up update.FreeBSD.org mirrors… 2 mirrors found.
 Fetching metadata signature for 12.3-RELEASE from update1.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 src/src world/base world/base-dbg world/doc
 world/lib32 world/lib32-dbg
 The following components of FreeBSD do not seem to be installed:
 Does this look reasonable (y/n)? y
 Fetching metadata signature for 13.1-RELEASE from update2.freebsd.org… done.
 Fetching metadata index… done.
 Fetching 1 metadata patches. done.
 Applying metadata patches… done.
 Fetching 1 metadata files… 
[...]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

执行上面的命令后,将会开始下载所有需要的安装包,这个过程将需要几分钟时间,具体时间取决于您的网络速度和FreeBSD系统上安装的软件包数量。

在升级过程中,配置文件将被合并。随着升级过程的继续,每次成功合并的结果都将显示给用户。请注意,当前系统尚未更改,因为所有合并和修补都是在另一个目录中进行的。

成功应用所有补丁后,所有配置文件都已合并,运行下面的命令将所有更改提交到磁盘:

# freebsd-update install
  • 1.

下面是执行上述命令的输出样例:

ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Installing updates…
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

到此所有内核更新都已安装在您的FreeBSD中,重新启动系统以应用补丁。

登录系统后,再次运行以下命令完成安装更新:

# freebsd-update install
  • 1.

所有的更新安装完成后,您将看到以下输出:

[...]
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.
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

再次运行相同的命令以删除旧的共享库并完成FreeBSD 13.1升级任务。

# freebsd-update install
  • 1.

最后,重新启动系统以完成升级任务。通过检查操作系统版本来验证 FreeBSD 13.1 是否升级成功。

# freebsd-version -k
13.1-RELEASE
  • 1.
  • 2.

同时也可以检查 FreeBSD 内核版本:

# uname -mrs
FreeBSD 13.1-RELEASE amd64
  • 1.
  • 2.

此时我们就已经成功升级到FreeBSD 13.1。

我们还需要做一件事。主要版本升级后,应升级所有已安装的包和端口。

使用以下命令更新所有 packages and ports collections:

# pkg-static install -f pkg
# pkg bootstrap -f
# pkg update
# pkg upgrade -y
  • 1.
  • 2.
  • 3.
  • 4.

接下来就可以重启,然后开始使用升级后的FreeBSD了。

升级过程中的异常处理

升级到 FreeBSD 13 后,当我尝试更新ports collections时出现以下错误:

pkg-static: Warning: Major OS version upgrade detected.  Running "pkg-static install -f pkg" recommended
 Updating FreeBSD repository catalogue…
 pkg-static: repository meta has wrong version 2
 pkg-static: Repository FreeBSD load error: meta cannot be loaded No error: 0
 Fetching meta.txz: 100%    916 B   0.9kB/s    00:01    
 pkg-static: repository meta has wrong version 2
 repository FreeBSD has no meta file, using default settings
 Fetching packagesite.txz: 100%    6 MiB   1.6MB/s    00:04    
 pkg-static: repository meta has wrong version 2
 pkg-static: Repository FreeBSD load error: meta cannot be loaded No error: 0
 Unable to open created repository FreeBSD
 Unable to update repository FreeBSD
 Error updating repositories!
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

这通常发生在我们将12.0升级到12.1 或2 时。要解决此问题,请使用 ports-mgmt/portmaster从端口树(ports tree)更新ports-mgmt/pkg。如果您还没有这样做,请使用命令获取端口树:

# portsnap fetch
  • 1.

该命令执行情况如下:

Looking up portsnap.FreeBSD.org mirrors… 4 mirrors found.
 Fetching public key from ipv4.aws.portsnap.freebsd.org… done.
 Fetching snapshot tag from ipv4.aws.portsnap.freebsd.org… done.
 Fetching snapshot metadata… done.
 Fetching snapshot generated at Sat May 28 05:59:31 IST 2022:
 552628c35b88d79f5a54b7774ddca0463fde713e43f367          88 MB 3233 kBps    28s
 Extracting snapshot… done.
 Verifying snapshot integrity… done.
 Fetching snapshot tag from ipv4.aws.portsnap.freebsd.org… done.
 Fetching snapshot metadata… done.
 Updating from Sat May 28 05:59:31 IST 2022 to Sat May 28 17:23:31 IST 2022.
 Fetching 5 metadata patches… done.
 Applying metadata patches… done.
 Fetching 0 metadata files… done.
 Fetching 18 patches. 
 (18/18) 100.00%  done.                             
 done.
 Applying patches… 
 done.
 Fetching 0 new ports or files… done.
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

接下来运行下面的命令来下载整个端口树并将其解压缩到/usr/ports 目录。

# portsnap extract
  • 1.

之后运行下面的命令:

# pkg bootstrap -f
# pkg update -f
# pkg upgrade -f
  • 1.
  • 2.
  • 3.

这通常发生在我们进行次要升级(minor upgrade)时,即从12.0 到 12。运行pkg bootstrap -f 后,一切都将按预期进行工作。

更改主机名(可选操作)

我曾经在Linux和Unix系统中,将我的主机名设置成对应的系统版本号, 例如,对于 FreeBSD 12 系统,我通常将主机名设置为“freebsd12”。 如果你和我一样,你应该更新你的主机名以反映当前版本。

以 root 用户身份输入“hostname <新主机名>”,主机名将立即更改。

# hostname freebsd13.ostechnix.lan
  • 1.

执行上面命令时,请您用您自己的主机名替换“freebsd13.ostechnix.lan”。要使此更改在重新启动后永久生效,需要使用文本编辑器编辑文件“/etc/rc.conf”:

# vi /etc/rc.conf
  • 1.

添加或修改以下行:

hostname="freebsd13.ostechnix.lan"
  • 1.

这样重新启动系统后该更改就可以生效,检查主机名是否已修改可以使用下面的命令:

# hostname
freebsd13.ostechnix.lan
  • 1.
  • 2.

至此,您就可以开始使用FreeBSD 13.1系统了。

译者介绍

赵青窕,51CTO社区编辑,从事多年驱动开发。研究兴趣包含安全OS和网络安全领域,发表过网络相关专利。

原文标题:How To Upgrade To FreeBSD 13 From FreeBSD 12,作者:Sk

责任编辑:华轩 来源: 51CTO
相关推荐

2010-02-02 10:33:09

Linux升级系统

2010-03-18 17:58:26

至强5500至强5600

2011-05-03 13:35:56

2013-03-14 14:52:51

Ubuntu12.10Ubuntu 13.0

2016-07-22 09:09:00

Linux Mint 升级Linux Mint

2009-12-11 17:31:57

2013-05-20 10:39:55

MariaDB

2020-04-21 08:00:00

UbuntuLinux

2011-04-25 09:37:56

2013-08-20 15:48:50

Fedora 18Fedora 19

2021-10-11 14:59:43

Windows 10Windows 11微软

2009-06-15 14:35:04

JBoss4.0.5

2015-09-30 15:39:21

Ubuntu升级Linux

2023-06-13 10:44:51

Debian 11Debian 12

2011-03-24 09:15:14

Ubuntu 11.0Linux 内核2.6

2019-11-05 13:20:00

Fedora 30Fedora 31Linux

2019-05-14 15:55:15

Fedora 29Fedora 30Linux

2020-05-08 17:55:35

Fedora 31Fedora 32Linux

2021-12-17 22:42:18

Windows 11Windows微软

2021-08-25 07:56:37

MySQLMyRocks存储
点赞
收藏

51CTO技术栈公众号