FreeBSD 11.2 サーバーを pkg コマンドでメンテナンス中、messagebus というユーザーが更新中に消えてしまったという内容のエラーで、パッケージ更新が止まってしまいました。。
Number of packages to be installed: 65
Number of packages to be reinstalled: 1
The process will require 449 MiB more space.
Proceed with this action? [y/N]: y
[1/66] Installing dbus-1.12.12...
===> Creating groups.
Using existing group 'messagebus'.
===> Creating users
Creating user 'messagebus' with uid '556'.
pw: user 'messagebus' disappeared during update
pkg: PRE-INSTALL script failed
/etc/passwd と /etc/master.passwd を確認してみたところ、どちらにも messagebus というアプリ専用アカウントは登録されています。
そういえば、以前も同様のエラーに遭遇したことがあるのを思い出し検索してみました。この時はテキストファイルである master.passwdが壊れていたのですが、今回は問題ないように見えます。
試しに finger で messagebus をチェックしてみると次のようになり、ユーザーが見つからない。
> finger messagebus finger: messagebus: no such user
今回は、テキストファイルじゃなくデータベースが壊れたようです。
パスワードデータベースを更新するために、pkg_mkdb コマンドを発行してみました。
# pwd_mkdb -p /etc/master.passwd
このあとで finger を行ってみると、今度はユーザー情報が表示されました。
> finger messagebus Login: messagebus Name: D-BUS Daemon User Directory: /nonexistent Shell: /usr/sbin/nologin No Mail.
続いて、もう一度 pkg upgrade コマンドを発行したところ、無事にパッケージを更新できました。
時々こういう事が起きるんですよねぇ。