apcupsd の異常ログ
Apcupsd-users のメーリングリストでは「成功した」との報告があったが、この方法は今のところ成功していない。
異常なエラー表示
バージョン確認
# apcupsd -V apcupsd 3.14.5 (10 January 2009) freebsd
apcupsd のパッチ当て&再インストール
- パッチファイル
ファイル名を smart.c.patch とする。--- smart.c 2010-02-21 16:24:27.000000000 +0900
+++ smart.c 2010-02-21 16:25:48.000000000 +0900
@@ -209,9 +209,10 @@
case -1:
if (errno == EINTR || errno == EAGAIN) { /* assume SIGCHLD */
continue;
+ } else if (ups->driver_internal_data) {
+ Error_abort1("Select error on UPS FD. %s\n", strerror(errno));
}
- Error_abort1("Select error on UPS FD. %s\n", strerror(errno));
- break;
+ return FAILURE; /* We're probably shutting down */
default:
break;
} - apcupsd の削除
# cd /usr/ports/sysutils/apcupsd
# make deinstall
# make clean distclean - 再起動
# shutdown -r now
- make する
# cd /usr/ports/sysutils/apcupsd
# make fetch checksum extract - パッチ当て
※パッチファイル (smart.c.patch) を次のディレクトリにコピーしておく
# cd /usr/ports/sysutils/apcupsd/work/apcupsd-3.14.5/src/drivers/apcsmart
# patch <smart.c.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- smart.c 2010-02-21 HH:MM:SS.000000000 +0900
|+++ smart.c 2010-02-21 HH:MM:SS.000000000 +0900
--------------------------
Patching file smart.c using Plan A...
Hunk #1 succeeded at 209.
done
# - インストール
# cd /usr/ports/sysutils/apcupsd
# make build
# make install
ports の make オプションメモ
make fetch | FTPなどのサイトからソースコードをダウンロードする インストールに必要な distfile を取ってくる |
make checksum | ダウンロードしたファイルが正常かどうか確かめる 取ってきたファイルのチェックサムを検証する |
make depands | このportsに依存関係(インストールするために必要なports)があるportsをインストールする |
make extract | distfile を作業用ディレクトリに展開する |
make patch | 展開したソースコードにFreeBSD用のパッチを当てる |
make configure make config |
コンパイルするオプションなどを指定してコンパイルするための準備を整える(configure) |
make build | コンパイルする |
make install | コンパイルしたバイナリをOSにインストールする |
make package | コンパイルしたバイナリをpackageにする |
make fetch-list | 対象のportsを構築するために必要なdistfileリストを表示する |
make clean | 作業用 work ディレクトリを削除する |
make distclean | clean に加え、対象の ports の distfile も削除する |
make deinstall | pkg_delete と同様。インストールした ports を削除する |
make search | キーワードで INDEX ファイルから検索する |
make showconfig | コンパイルオプションの表示 設定したオプションの内容は /var/db/ports ディレクトリに Ports 毎にディレクトリが存在し、その Ports 毎のディレクトリ内の options というファイルに格納されている。 |
make rmconfig | コンパイルオプションの削除(リセット) |