====== 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 バージョンが変わっていたら再起動((カーネル、カーネルモジュールに変更がなければ不要)) # shutdown -r now 確認。 # uname -a こんな風に表示されます。((後ろにp1がついています)) 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 カーネルなら((unameとは違いインストールされているバージョン)) # freebsd-version -k 10.0-RELEASE-p2 ユーザランドなら # freebsd-version -u 10.0-RELEASE-p3 起動中のカーネルなら # freebsd-version -r 10.0-RELEASE-p1 jailのユーザランドなら # freebsd-version -j jail((jailname or jid)) 10.0-RELEASE-p3 ==== 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-update install バージョン確認 freebsd-version -kur freebsd-version -k uname -r バージョンが変わっていたら再起動 通常、システムを再起動する必要があります カーネルアップデートによりシステムの再起動が必要かどうかを調べるには、freebsd-version -k と uname -r を実行し、2 つのコマンドの結果が異なる場合には、システムを再起動します 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 再起動((カスタムカーネルを使用している場合には、nextboot(8) を使って次回の再起動時のカーネルを、 /boot/GENERIC に設定します)) # shutdown -r now あれやこれやのアップデートをインストール((古い共有ライブラリとオブジェクトファイルを削除)) # freebsd-update install バージョン確認 # freebsd-version # uname -a ==== メジャーバージョンアップグレード後の package のアップグレード ==== メジャーバージョンアップグレード後には、packages, ports をアップグレードする必要があります パッケージのアップデート # pkg-static upgrade -f # pkg bootstrap -f アプリケーションを再構築するには # portmaster -af ソフトウェアのアップグレードが終わったら、最後にもう一度 freebsd-update を実行 # freebsd-update install ---- portsツリーの更新 # portsnap fetch update && portsdb -u portsからインストールしたものをアップデート # portmaster pathto/port サードパーティーアプリの更新\\ ただしportsからインストールしたものはpkg lockしてから((lockしたportsをアップグレードする場合、まずunlockしてからなので注意)) # pkg upgrade -f 念の為再起動 # shutdown -r now ==== Bootloaderの更新 ==== [[https://yuisoft.com/yuichiro/UpdateBootLoader.pdf?fbclid=IwAR09-v3AV3FSzKe52XchbObbJbPAgFy2brIb5Ccw1r3_Q8UpoZXr55-Axio|FreeBSD のブートローダ を更新するには]]を参照 ===== 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あるので消しておきます。((これを忘れると/varがあふれて寂しいことになります)) # rm -fr /var/db/freebsd-update/files ===== 7.3以前 ===== FreeBSD 7.3-RELEASEかそれ以前のFreeBSDからアップグレードする場合には、サードパーティアプリケーションをリビルドする必要があります。 アップデート後にサードパーティアプリケーションをインストールし、再びfreebsd-updateを実行して、古いライブラリを削除してください。 ===== 参考 ===== * [[https://docs.freebsd.org/ja/books/handbook/cutting-edge/|FreeBSD のアップデートとアップグレード]] * [[http://kaworu.jpn.org/freebsd/freebsd-update|freebsd-update]] * http://ror.hj.to/ja/issei/entries/kzx8vj-pa1ivb8zlw4b/node * **[[https://www.freebsd.org/doc/handbook/jails-application.html|Updating Multiple Jails]]**