FreeBSD10.3: pkg: PRE-INSTALL script failed

FreeBSD のパッケージを新たにインストールしようとして、失敗しました。

新しいDHCPDサーバーを起動させるために、pkg コマンドで、 isc-dhcpサーバーをインストールすることにしました。

そうしたところ、インストールエラーが発生。

# pkg install -y isc-dhcp43-server
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Updating database digests format: 100%
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	isc-dhcp43-server: 4.3.5

Number of packages to be installed: 1

The process will require 4 MiB more space.
910 KiB to be downloaded.
Fetching isc-dhcp43-server-4.3.5.txz: 100%  910 KiB 932.0kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/1] Installing isc-dhcp43-server-4.3.5...
===> Creating groups.
Creating group 'dhcpd' with gid '136'.
===> Creating users
Creating user 'dhcpd' with uid '136'.
pwd_mkdb: corrupted entry
pwd_mkdb: at line #33
pwd_mkdb: /etc/master.passwd: Inappropriate file type or format
pw: passwd file update: No error: 0
pkg: PRE-INSTALL script failed

FreeBSD のパッケージインストールは、専用ユーザーを追加するものがあります。DHCPDもダミーアカウントを追加します。そのアカウント管理コマンド実行時にエラーが発生したようです。

最初は何事かと思ったのですが、エラーメッセージをよくよく見てみると、passwdファイルが壊れているとのこと。ところがパスワードファイルを見てもおかしな部分は見つかりません。
カーソルをゆっくり移動しながらチェックしてゆくと、私が旧マシンからコピーしたパスワード情報が途中改行されていることの気づきました。行が長すぎて自動改行されていたようです。これが原因。
この移行アカウントがあったため、パスワードファイル全体が壊れていると判定されたようです。

原因が判明したので、master.passwd ファイルで改行されているアカウントを1行にまとめてデータベースをアップデート

この後、再度インストールを行ったところ、

Jan 18 00:56:36 hostname pkg: isc-dhcp43-server-4.3.5 installed

と、無事にインストールされました。

コメントを残す