はじめに
「FreeBSD 13.0-RELEASE-p13」から、「FreeBSD 13.3-RELEASE」にバージョンアップしようとした際に、設定ファイルのコンフリクトが発生した。
環境
OS : FreeBSD 13.0-RELEASE-p13
やろうとしたこと
下記の方法で、「FreeBSD 13.0-RELEASE-p13」から、「FreeBSD 13.3-RELEASE」にバージョンアップしようとした。
試したバージョンアップ方法
下記コマンドを実行し、バージョンをアップを試みた。
# 1. 現在のバージョンを確認する。
freebsd-version -kur
# 2. 最新のセキュリティパッチをあてる。
freebsd-update fetch
freebsd-update install
# 3. アップグレードの準備(ファイルをダウンロード)する。
freebsd-update -r 13.3-RELEASE upgrade
# 4. アップグレードする(ダウンロードしたファイルをインストールする)。
/usr.sbin/freebsd-update install
# 5. 再起動する。
shutdown -r now
起きたこと
アップグレードするコマンドコマンドを実行した際に、下記メッセージが表示された。
The following file could not be merged automatically: 設定ファイルのパス
Press Enter to edit this file in vi and resolve the conflicts manually...
アップグレードするコマンド
freebsd-update -r 13.3-RELEASE upgrade
表示されたメッセージの詳細
The following file could not be merged automatically: 設定ファイルのパス
Press Enter to edit this file in vi and resolve the conflicts manually...
日本語に翻訳すると、「自動でマージできなったので、viで編集し、手動でコンフリクトを解消しろ。」と書いてある。
対処方法
「group」でコンフリクトが発生した場合を例に対処方法を記載する。
- 下記メッセージに従い、Enterキーを押下する。
The following file could not be merged automatically: /etc/group Press Enter to edit this file in vi and resolve the conflicts manually...
- viエディタ上で、groupファイルの中身が表示されるので、下記の例のような部分を探す。
※ viエディタの使い方は、本記事では解説しない。編集前<<<<<<< current version wheel:*:0:root,TestUser ======= wheel:*:0:root >>>>>>> new version
編集前<<<<<<< current version 現在のバージョンの設定 ======= 新しいのバージョンの設定 >>>>>>> new version
- 今回は、下記のように編集した。
編集後
- <<<<<<< current version wheel:*:0:root,TestUser - ======= - wheel:*:0:root - >>>>>>> new version
- 以下のようなメッセージが何度か表示され、表示されるたびに設定ファイルの確認が求められる。
問題がなければ、「y」を入力し、Enterキーを押下する。The following changes, which occurred between 現在のバージョン and アップグレード先のバージョン have been merged into 設定ファイルのパス : === (省略) === 設定ファイルの内容 Does this look reasonable (y/n)?
- 削除されるファイルの一覧を確認する。
The following files will be removed as part of updating to アップグレード先のバージョン: === (以下省略) ===
- 追加されるファイルの一覧を確認する。
The following files will be updated as part of updating to アップグレード先のバージョン: === (以下省略) ===
- 下記メッセージが表示されたことを確認する。
To install the downloaded upgrades, run "/usr.sbin/freebsd-update install"
TIPS
コンフリクトが発生する設定ファイル
- /etc/group
- /etc/master.passwd
- /etc/ssh/sshd_config
「group」でコンフリクトが発生した際のメッセージ
The following file could not be merged automatically: /etc/group
Press Enter to edit this file in vi and resolve the conflicts manually...
「master.passwd」でコンフリクトが発生した際のメッセージ
The following file could not be merged automatically: /etc/master.passwd
Press Enter to edit this file in vi and resolve the conflicts manually...
「sshd_config」でコンフリクトが発生した際のメッセージ
The following file could not be merged automatically: /etc/ssh/sshd_config
Press Enter to edit this file in vi and resolve the conflicts manually...
「master.passwd」でコンフリクトを解消する際の注意事項
「master.passwd」の2番目のフィールドに記載されているパスワードハッシュは、削除しないこと。
※ 「master.passwd」は、「:」(コロン)区切りで記載されている。
user:パスワードハッシュ:1001:1001:testUser:/home/testUser:/bin/sh
さいごに
本記事では、バージョンアップ時のコンフリクトを設定ファイルを編集し、解消する方法を示した。
参考文献
※ 下記2サイトは2024年9月22日現在アクセスができないが、復旧した場合も考え、記載している。