freebsd-update

freebsd-updateはビルドなしにOS更新してくれる代わり、カーネル再構築が不要なアップデートの場合にはカーネル埋め込みのバージョン番号が更新されないため、unameでは正確にバージョン表示できなくなる。

FreeBSDのバージョン確認方法 – admin note

from 12.4 to 14.0 (minor version upgrade)

Warning:
After upgrading, it is not possible to use freebsd-update rollback to return to 12.4-RELEASE or 13.2-RELEASE.

https://www.freebsd.org/releases/14.0R/installation/

# freebsd-update fetch
# freebsd-update install

# freebsd-update upgrade -r 14.0-RELEASE
# freebsd-update install

# shutdown -r now

# freebsd-update install

Please rebuild all installed 3rd party software
(e.g., programs installed from the ports tree)

# pkg bootstrap -f
# pkg-static upgrade -f

# freebsd-update install

# shutdown -r now

※ pkg-static upgrade がメモリを1GB強使うのでメモリは2GB程度あるとよい

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME    WCPU COMMAND
 4974 root          1  56    0  1146M   960M RUN      0:08  10.82% pkg-static upgrade -f

from 12.3 to 12.4 (minor version upgrade)

https://www.freebsd.org/releases/12.4R/installation/

freebsd-update fetch
freebsd-update install

freebsd-update upgrade -r 12.4-RELEASE
freebsd-update install 

shutdown -r now

freebsd-update install
freebsd-update install 

shutdown -r now

以下のコマンドを実行すると、FreeBSD のセキュリティパッチがダウンロードされ、インストールされます。 最初のコマンドは、未対応のパッチがあるかどうかを調べます。 もし未対応のパッチがある場合には、パッチが当てられた際に変更されるファイルのリストが作成されます。 2 番目のコマンドはパッチを適用します。

# freebsd-update fetch
# freebsd-update install

アップデートによってカーネルにパッチが適用された場合には、システムを再起動して新しいカーネルで起動する必要があります。 もし、実行中のバイナリにパッチが適用された場合には、パッチが当てられたバイナリが使われるように、影響するアプリケーションを再起動する必要があります。
...
以下のコマンドを実行すると、FreeBSD 9.0 のシステムを FreeBSD 9.1 にアップグレードします。

# freebsd-update -r 9.1-RELEASE upgrade

コマンドを実行すると、freebsd-update は設定ファイルと現在のシステムを評価し、 アップデートするために必要な情報を収集します。 画面には、どのコンポーネントが認識され、どのコンポーネントが認識されていないといったリストが表示されます。 たとえば以下のように表示されます。
...
すべてのパッチは別のディレクトリでマージされており、まだ、システムには反映されていません。 すべてのパッチが正しく適用され、すべての設定ファイルがマージされてプロセスがスムーズに進んだら、ユーザは以下のコマンドを用いて、変更点をディスクに反映してください。

# freebsd-update install

すべてのパッチは別のディレクトリ = /var/db/freebsd-update/ ?

Components

srcをupdateから除外する場合は

/etc/freebsd-update.conf

Components src world kernel

Components world kernel
にする。

from 13.0 to 13.1 (minor version upgrade)

After upgrading, sshd (from OpenSSH 8.8p1) will not accept new connections until it is restarted. After installing the new userland, either reboot (as specified in the source update procedure), or execute service sshd restart.

https://www.freebsd.org/releases/13.1R/relnotes/

sshdを再起動するまでssh接続できない。

sshd[15608]: fatal: recv_rexec_state: parse config: incomplete message

リモート作業する場合は念のため予備のssh接続を維持しておく。

(12.3 to 12.4 も同様の問題あり)

OpenSSH_7.9p1 → 9.1p1

OpenSSH has been updated to 9.1p1. 50cb877af1fb (Sponsored by The FreeBSD Foundation)

https://www.freebsd.org/releases/12.4R/relnotes/

from 13.1 to 13.2 (minor version upgrade)

OpenSSH has been updated to version 9.2p1.

sshdを再起動するまでssh接続できない。

from 12.2 to 13.0 (major version upgrade)

# freebsd-update fetch
# freebsd-update install

# freebsd-update upgrade -r 13.0-RELEASE

# freebsd-update install

# shutdown -r now

# freebsd-update install

(third-party applications)
# pkg bootstrap -f
# pkg-static upgrade -f

# freebsd-update install

# shutdown -r now

https://www.freebsd.org/releases/13.0R/installation/

from 10.3 to 11.1 (major version upgrade)

# freebsd-update fetch
# freebsd-update install

# freebsd-update upgrade -r 11.1-RELEASE

# freebsd-update install

# shutdown -r now

# freebsd-update install

(third-party applications)
# pkg-static install -f pkg
# pkg-static upgrade -f

# freebsd-update install

# shutdown -r now

https://www.freebsd.org/releases/11.1R/installation.html
https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/updating-upgrading-freebsdupdate.html

参考になる

https://qiita.com/hs_onsky/items/173dc102cd99d7f838b7

複数メジャーバージョンをまたぐアップグレード 9.0 → 12.1

9.0 → 9.2 → 10.4 → 12.1

Since I was unable to upgrade from 9.3 to either 12.0 or 11.2 because of this metadata error, I went first 9.3->10.4 and then 10.4->12.0
https://forums.freebsd.org/threads/freebsd-9-3-12-0-upgrade.69064/

準備
インストール済みpackageを「更新」するといろいろと面倒な事が起こるので、いったん全削除して再インストールする。そのためにインストール済みpackageリストを作っておき、全削除。
(全削除するとsudoも使えなくなるから、suしてから)

$ pkg_info > pkg.list.txt
$ su
Password:
# pkg_info | cut -f1 -d" " | xargs -n1 pkg_delete -f

https://flageo.hatenadiary.org/entry/20130103/p1

PRERELEASE

$ uname -sr
FreeBSD 9.1-PRERELEASE

$ sudo freebsd-update -v debug fetch
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching public key from update2.freebsd.org... fetch: http://update2.freebsd.org/9.1-PRERELEASE/amd64/pub.ssl: Not Found
failed.
Fetching public key from update1.freebsd.org... fetch: http://update1.freebsd.org/9.1-PRERELEASE/amd64/pub.ssl: Not Found
failed.
No mirrors remaining, giving up.