ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



os:freebsd:freebsd-update

FreeBSDのアップグレード

同じリリース内でセキュリティパッチレベルを上げる。
6.3-RELEASEからは,「upgrade」オプションで異なるリリースに上がることが可能になった.

セキュリティパッチ

パッチをダウンロード。

# freebsd-update fetch

アップデートが不要な場合、以下のような表示

No updates needed to update system......

パッチをインストール。

# freebsd-update install

確認

# freebsd-version -ku
13.2-RELEASE-p2
13.2-RELEASE-p2
# freebsd-version -r
13.2-RELEASE

最後に再起動。1)

# shutdown -r now

確認。

# uname -a

こんな風に表示されます。2)

FreeBSD hostname 8.2-RELEASE FreeBSD 8.2-RELEASE-p1 #0: Fri Feb 18 02:24:46 UTC 2011…

10.0からfreebsd-versionというFreeBSDのパッチレベルを教えてくれるコマンドが導入されました
リブート前でも確認できます。

# freebsd-version
10.0-RELEASE-p1

カーネルなら

# freebsd-version -k
10.0-RELEASE-p1

ユーザランドなら

# freebsd-version -u
10.0-RELEASE-p1

update できない?

unameすると以下のように

# uname -a
FreeBSD ...... 10.2-RELEASE-p9 FreeBSD 10.2-RELEASE-p9 ......

と表示されるのに、以下のようにupdateは不要と出るケースがある

# freebsd-update fetch
......
Preparing to download files... done.
No updates needed to update system to 10.2-RELEASE-p12.

これは、unameで表示されるのがkernelバージョンのため
freebsd-versionで表示するとわかりやすい

# freebsd-version -k
10.2-RELEASE-p9
# freebsd-version -u
10.2-RELEASE-p12

自動的に適用させる

cronで設定

以下の1行を追加

0 5 * * * root /usr/sbin/freebsd-update cron

バージョン確認

freebsd-version -kur

バージョンが変わっていたら再起動

shutdown -r now

リリースアップグレード

必要なバイナリなどの取得

# freebsd-update upgrade -r 8.2-RELEASE
...
Does this look reasonable (y/n)? y

設定がコンフリクトしたらエディタが起動するのでよさげに直す。
その他は、

Does this look reasonable (y/n)? y

ずっとy

終わったら、カーネルのアップデート

# freebsd-update install

再起動

# shutdown -r now

あれやこれやのアップデートをインストール3)

# freebsd-update install

バージョン確認

# freebsd-version
# uname -a

パッケージのアップデート

# pkg-static upgrade -f

アプリケーションを再構築するには

# portmaster -af

portsツリーの更新

# portsnap fetch update && portsdb -u

portsからインストールしたものをアップデート

# portmaster pathto/port

サードパーティーアプリの更新
ただしportsからインストールしたものはpkg lockしてから4)

# pkg upgrade -f

念の為再起動

# shutdown -r now

Bootloaderの更新

JailのUpgrade

# freebsd-update -b /jail/base -r 10.3-RELEASE upgrade

ただし、母艦側が10.3だとエラーなので、unameを環境変数でごまかす

# setenv UNAME_r 10.2-RELEASE

これで、Upgrade、install

# freebsd-update -b /jail/base -r 10.3-RELEASE upgrade
# freebsd-update -b /jail/base install

環境変数を戻して

# unsetenv UNAME_r 10.3-RELEASE

再度

# freebsd-update -b /jail/base install

作業ファイルの削除

作業ファイルが数百MBあるので消しておきます。5)

# rm -fr /var/db/freebsd-update/files

7.3以前

FreeBSD 7.3-RELEASEかそれ以前のFreeBSDからアップグレードする場合には、サードパーティアプリケーションをリビルドする必要があります。 アップデート後にサードパーティアプリケーションをインストールし、再びfreebsd-updateを実行して、古いライブラリを削除してください。

参考

1)
カーネル、カーネルモジュールに変更がなければ不要
2)
後ろにp1がついています
3)
古い共有ライブラリとオブジェクトファイルを削除
4)
lockしたportsをアップグレードする場合、まずunlockしてからなので注意
5)
これを忘れると/varがあふれて寂しいことになります
os/freebsd/freebsd-update.txt · 最終更新: 2023/11/18 17:36 by hayashi