如何从FreeBSD12升级到FreeBSD13发布团队宣布发布FreeBSD13.1-RELEASE。这是13-stable分支的第二个版本。FreeBSD13.1中添加了许多新功能。它支持多种架构,包括amd64、i386、powerpc、powerpc64、powerpc64le、powerpcspe、armv6、armv7、aarch64和riscv64。如果您想安装新版本,请转到FreeBSD13.1下载页面以获取适用于您的体系结构的版本。然后参考文章《??Install FreeBSD - Step By Step Guide??》安装FreeBSD。如果您已经在运行旧版本(例如FreeBSD12.x),则可以直接将FreeBSD12.x升级到FreeBSD13.1。在本文中,我将逐步教您如何从FreeBSD12.3升级到FreeBSD13.1。升级FreeBSD12之前,备份内容比较重要。虽然FreeBSD的升级过程已经做好了,但是我还是强烈推荐数据备份。接下来,让我们看看如何更新。使用以下两条命令查看FreeBSD操作系统版本和内核版本:#freebsd-version-k下面是命令执行的输出样例:12.3-RELEASE$uname-mrs下面是输出样例命令执行示例:FreeBSD12.3-RELEASEamd64查询FREEBSD操作系统的版本和内核版本如上所示,安装的版本为FreeBSD12.3-RELEASE。在升级到下一个可用的主要版本之前,我们必须更新当前的FreeBSD12.x版本。下载并安装FreeBSD安全补丁,请以root用户运行以下命令:#freebsd-updatefetch#freebsd-updateinstall#pkgupgrade升级软件包后,您可以选择以下两个命令之一来重启系统:#shutdown-rnow#reboot接下来,我将解释如何从FreeBSD12升级到FreeBSD13。从FreeBSD12升级到FreeBSD13在撰写本指南时,最新的稳定FreeBSD版本是13.1。运行以下命令将系统从FreeBSD12.x版本升级到FreeBSD13.1-RELEASE:#freebsd-update-r13.1-RELEASEupgrade运行此命令后,freebsd-update命令将评估配置文件和当前状态系统试图收集执行升级所需的信息。在升级过程中,系统会询问您要安装什么、要删除什么或下一步要做什么。您可能需要键入y并按几次ENTER以继续升级过程。以下是升级命令freebsd-update的示例输出:未安装src组件,已跳过Lookingupupdate.FreeBSD.orgmirrors…2mirrorsfound。从update1.freebsd.org获取12.3-RELEASE的元数据签名…完成。获取元数据索引……完成。正在获取1个元数据文件……完成。检查系统……完成。似乎安装了FreeBSD的以下组件:kernel/generickernel/generic-dbgsrc/srcworld/baseworld/base-dbgworld/docworld/lib32world/lib32-dbgFreeBSD的以下组件似乎没有安装安装:这看起来合理吗(是/否)?y从update2.freebsd.org获取13.1-RELEASE的元数据签名…完成。获取元数据索引…完成。正在获取1个元数据补丁。完毕。应用元数据补丁……完成。Fetching1metadatafiles...[...]执行上述命令后,它将开始下载所有必需的安装包。这个过程会花费几分钟,具体时间取决于你的网络速度和你的FreeBSD系统上安装的软件包数量。在升级过程中,配置文件将被合并。随着升级过程的继续,每次成功合并的结果都会显示给用户。请注意,当前系统没有更改,因为所有合并和修补都是在另一个目录中完成的。成功应用所有补丁并合并所有配置文件后,运行以下命令将所有更改提交到磁盘:#freebsd-updateinstall以下是执行上述命令的示例输出:ZFS文件系统版本:5ZFS存储池版本:功能支持(5000)安装更新...内核更新已安装。请重新启动并再次运行“/usr/sbin/freebsd-updateinstall”以完成安装更新。此时所有的内核更新都已安装在你的FreeBSD中,重启系统以应用补丁。登录系统后,再次运行以下命令以完成更新的安装:#freebsd-updateinstall安装完所有更新后,您将看到以下输出:[...Completingthisupgraderequiresremoveoldshared目标文件。请重建所有已安装的第3方软件(例如,从ports树安装的程序),然后再次运行“/usr/sbin/freebsd-updateinstall”以完成安装更新。再次运行相同的命令以删除旧的共享库并完成FreeBSD13.1升级任务。#freebsd-updateinstall最后重启系统,完成升级任务。通过检查操作系统版本来验证FreeBSD13.1升级是否成功。#freebsd-version-k13.1-RELEASE您还可以查看FreeBSD内核版本:#uname-mrsFreeBSD13.1-RELEASEamd64现在我们已经成功升级到FreeBSD13.1。我们还需要做一件事。主要版本升级后,应升级所有已安装的软件包和端口。使用以下命令更新所有包和端口集合:#pkg-staticinstall-fpkg#pkgbootstrap-f#pkgupdate#pkgupgrade-y然后你可以重新启动并开始使用升级后的FreeBSD。升级过程中的异常处理升级到FreeBSD13后,尝试更新端口集合时出现以下错误:pkg-static:警告:检测到主要操作系统版本升级。推荐运行“pkg-staticinstall-fpkg”正在更新FreeBSD存储库目录...pkg-static:存储库meta版本2错误pkg-static:存储库FreeBSD加载错误:无法加载meta无错误:0获取meta.txz:100%916B0.9kB/s00:01pkg-static:repositorymeta有错误的版本2repositoryFreeBSD没有元文件,使用默认设置Fetchingpackagesite.txz:100%6MiB1.6MB/s00:04pkg-static:repositorymeta有错误的版本2pkg-static:RepositoryFreeBSDloaderror:metacannotbeloadedNoerror:0无法打开创建的存储库FreeBSD无法更新存储库FreeBSD更新存储库时出错!当我们从12.0升级到12.1或2时,通常会发生这种情况。要解决此问题,请使用ports-mgmt/portmaster从ports树更新ports-mgmt/pkg。如果您还没有这样做,请使用以下命令获取端口树:#portsnapfetch该命令执行如下:Lookingupportsnap.FreeBSD.orgmirrors...4mirrorsfound。从ipv4.aws.portsnap.freebsd.org获取公钥...完成。从ipv4.aws.portsnap.freebsd.org获取快照标签…完成。获取快照元数据……完成。获取快照生成于5月28日星期六05:59:31IST2022:552628c35b88d79f5a54b7774ddca0463fde713e43f36788MB3233kBps28s提取快照...完成。验证快照完整性……完成。从ipv4.aws.portsnap.freebsd.org获取快照标签…完成。获取快照元数据……完成。从2022年5月28日星期六05:59:31IST更新到2022年5月28日星期六17:23:31IST。获取5个元数据补丁……完成。应用元数据补丁……完成。正在获取0个元数据文件……完成。获取18个补丁。(18/18)100.00%完成。完毕。应用补丁……完成。Fetching0newportsorfiles…done.接下来运行以下命令下载整个端口树并将其解压缩到/usr/ports目录。#portsnapextract后运行以下命令:#pkgbootstrap-f#pkgupdate-f#pkgupgrade-f这通常发生在我们进行小升级时,从12.0到12。运行pkgbootstrap-f后一切正常。更改主机名(可选操作)我习惯在Linux和Unix系统中将我的主机名设置为对应的系统版本号,例如,对于FreeBSD12系统,我通常将主机名设置为“freebsd12”。如果你和我一样,你应该更新你的主机名以反映当前版本。以root身份输入“hostname
