FreeBSD是个优秀的操作系统,部署完成后,如果不需要对功能进行更新,基本都可以忘了它的存在。
在一个老版本FreeBSD上安装软件可以使用挂载DVD的方式,这适用于本地。但在☁云上却没有合适的挂载DVD的方案(或许有,但懒得折腾了)。
这时候想在FreeBSD上通过port或pkg安装软件时,则需要将操作系统更新到最新的支持版本,否则在安装过程中会出现一些意外的错语。
本文以FreeBSD 13.0 为例,记录将其升级到 13.2 的过程。
升级要趁早,除非当前服务我们不准备安装新的软件。否则时间长了,就只能重装系统了
查看系统版本
在系统升级之前,必须先查看系统版本。
root@iZ2ze0xwz94jy5fwl4xjxzZ:~/.ssh # freebsd-version
13.0-RELEASE-p10
有了当前版本后,由于FreeBSD的升级过程中需要step by step,比如当前由13.0升到13.2,需要确认这两个版本之间有几个小版本,从小版本逐步升起,所以下一步需要确认版本列表。
版本列表
https://www.freebsd.org/security/#sup 记录了当前正在被支持的版本号,比如:
而 https://www.freebsd.org/security/unsupported/ 记录了历史所有的版本号:
可见,由13.0升级到13.2,需要先升级到13.1.
升级
本文以阿里云为例
FreeBSD官方在 https://docs.freebsd.org/en/books/handbook/cutting-edge/ 中对如何升级系统进行描述。
如果你是新手,第一次进行系统升级,则建议先备份好重要的数据。
简单来讲,需要简单进行如下步骤:
root@iZ2ze0xwz94jy5fwl4xjxzZ:~/.ssh # freebsd-update fetch
root@iZ2ze0xwz94jy5fwl4xjxzZ:~/.ssh # freebsd-update install
fetch 会显示fetch的列表,此时按q查看后退出
此时会将操作系统升级到当前版本的最状态,比如当前系统在升级前后的版本号分别为:
13.0-RELEASE-p10
13.0-RELEASE-p13
接下来,将13.0升级到13.1
root@iZ2ze0xwz94jy5fwl4xjxzZ:~/.ssh # freebsd-update -r 13.1-RELEASE upgrade
接着就是比较漫长的拉取升级包的过程(这取决于网速),升级包拉取后会有个询问升级包的过程,按y
以继续(如果是查看升级看,则可以按q
退出查看后继续)
接着执行:
$ freebsd-update install
这个命令可能会执行2次,看命令行的提示情况。大的版本升级后,建议执行一次reboot
操作。
然后继续执行:freebsd-update fetch
及 freebsd-update install
升级小版本,最终再通过
$freebsd-update -r 13.2-RELEASE upgrade
升级至 13.2
版本。
然后如果使用的是云服务器的话,做个系统镜像出来备分即可。
异常处理
Freebsd 13.0 升到 13.0 后 reboot
后sshd启动失败导致失去了远程连接,此时则需要使用阿里云的vnc服务进行连接(注意使用firefox浏览器,chrome浏览器vnc上有BUG),然后编辑 /etc/ssh/sshd_config
的最后一行:
Chiphers xxx
把此行注释掉以使用默认的设置:
#Chiphers xxx
然后再启动 service sshd restart
即可。
此时再使用ssh连接前应该删除~/.ssh/known_hosts
中的相关信息.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。