使用Freebsd-update升级FreeBSD操作系统

在本文中,我们将使用升级FreeBSD操作系统freebsd-update。该freebsd-update实用程序可用于使用最新的修补程序版本来更新您的实例,或者您也可以选择升级到次要版本或主要版本。

步骤1:更新实例之前要考虑的要点

  • 备份您的实例。最简单的方法是拍摄快照。您还可以选择从中进行配置文件的额外备份/etc/
  • 保留维护期,以便可以在该时间范围内计划和测试升级;与次要版本或补丁程序版本升级相比,主要版本升级应保留更多时间。
  • 如果要升级到主要版本,freebsd-update则在生产服务器上尝试之前,在测试或开发实例上进行测试会更安全。您可以使用快照快速启动测试实例,测试升级,而不会对生产实例产生任何影响。
  • 在开始升级之前,建议关闭实例上的服务。例如:Web服务器,数据库等。升级完成后可以启用它们。对于主要版本升级,此步骤尤其重要。
  • 在开始升级之前,请仔细阅读目标FreeBSD发行版的发行说明。
  • /var分区中至少需要500MB的可用空间,尤其是要升级到新的次要或主要版本。

步骤2:更新到最新的补丁程序版本

下载更新

修补程序版本包含对操作系统文件和二进制文件的修复,并且还可能包含内核更改。使用获取更新freebsd-update。为了简洁起见,下面的命令输出已被编辑。

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

安装更新

更新已下载到您的服务器。现在安装它们。

# freebsd-update install
src component not installed, skipped
Installing updates... done.

如果需要,重新引导到新内核

由于从11.0-RELEASE-p1进行更新11.0-RELEASE-p11涉及到安装新内核,因此请重新启动实例以引导至新安装的内核。

# shutdown -r now
... system reboot ... 
# freebsd-version
11.0-RELEASE-p11

现在,您已成功将实例从升级11.0-RELEASE11.0-RELEASE-p11。重新启用服务并测试实例。

步骤3:更新为次要或主要版本

下载升级

在本节中,我们将FreeBSD实例从FreeBSD升级11.0-RELEASE到FreeBSD 11.1-RELEASEfreebsd-update在这种情况下,该命令与早期修补程序版本升级不同。请注意,如果由于本地更改而导致文件中存在一些冲突,freebsd-update则会提示您大致相同,并允许您解决冲突。

# 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".

安装升级

现在文件已下载,所有冲突已解决,您可以继续安装更新。

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

重新启动进入新内核并继续安装

实例重新启动后,您可以确认正在运行的内核的版本,然后继续安装。

# uname -a
FreeBSD fbsd 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017
    root@releng2.nyi.freebsd.org:/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.

主要版本使用不同的应用程序二进制接口(ABI),这将破坏大多数第三方应用程序。如果使用端口构建第三方应用程序,则需要构建所有这些应用程序。如果使用软件包管理系统,则可以使用以下命令。

# pkg-static upgrade -f

重新安装所有软件包后,请完成freebsd-update安装。

# freebsd-update install
src component not installed, skipped
Installing updates... done.
# freebsd-version
11.1-RELEASE

恭喜,您的实例已升级到11.1-RELEASE!现在,您可以继续启用所有必需的服务,并确认实例的行为符合预期。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息