- PR -

syslog-ngのインストールについて。(Solaris9)

投稿者投稿内容
proper
会議室デビュー日: 2005/12/05
投稿数: 17
投稿日時: 2006-05-12 10:15
こんにちは。何時も拝見させて頂いております。
Linuxの会議室なのですがSolaris9についてご質問させてください。

OSはSolaris9(SunFire V120にインストール)です。
syslog-ngのインストールを行っています。

syslog-ngのVerはsyslog-ng-1.9.10、libolは0.3.0です。
各々解凍しsyslog-ngをconfigureを行うと

checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for EVTLOG... Package eventlog was not found in the pkg-config search path.
Perhaps you should add the directory containing `eventlog.pc'
to the PKG_CONFIG_PATH environment variable
No package 'eventlog' found
configure: error: Package requirements (eventlog) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively you may set the EVTLOG_CFLAGS and EVTLOG_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for

と表示され止ってしまいます。
eventlog.pcが無いと言う事だと思うのですが。。。
何をインストールすればeventlog.pcが生成されるのでしょうか?
ちなみにeventlog-0.1.2をインストールしましたが結果は同じでした。

宜しくお願い致します。
かつ
ベテラン
会議室デビュー日: 2006/04/04
投稿数: 56
投稿日時: 2006-05-15 19:10
configure のオプションはどの様に指定していますか?

当方の環境(SunFire V210 + Solaris9)では以下のconfigureでコンパイルしています。

$ ./configure --enable-sun-streams --enable-sun-door
proper
会議室デビュー日: 2005/12/05
投稿数: 17
投稿日時: 2006-05-16 09:24
かつさんありがとうございます。

configureのオプションですが何も指定せず行いました。
お教え頂きましたconfigureのオプションを実際に行ってみましたが
結果は同じでした。

Solaris9のインストールの際に問題があるのでしょうか?
確かOEMインストールを行った記憶があります。
かつ
ベテラン
会議室デビュー日: 2006/04/04
投稿数: 56
投稿日時: 2006-05-16 11:30
ああ、ごめんなさい。syslog-ng-1.6 と勘違いしていました。

syslog-ng-1.9 の場合、eventlog と言うソフトが必要です。
eventlog は syslog-ng-1.9.10 のサイトにありますので、それをインストールしてください。
http://www.balabit.com/downloads/syslog-ng/1.9/src/eventlog-0.2.4.tar.gz

これを入れると、/usr/local/lib/pkgconfig/eventlog.pc が作成され、syslog-ng の configure が通ると思います。

ただ、GLIB の static link ファイルが無いとエラーになりますので、
$ ./configure --enable-dynamic-linking
とした方が良いかも。

と、思ったらこのままだと make が通らないですね。
main.o で nanosleep が未定義ってエラーになります。
http://docs.sun.com/app/docs/doc/816-0216/6m6ngupi6?l=ja&a=view
を見ると nanosleep は main.c で #include <time.h> して、rt ライブラリが必要との事。
main.c で time.h は include 済みなので、後は LDFLAGS="-lrt" を設定して、上記 configure を実行すれば make が通りました。
proper
会議室デビュー日: 2005/12/05
投稿数: 17
投稿日時: 2006-05-16 13:41
かつさん。再々ありがとうございます。
eventlog-0.2.4をインストールし
$ ./configure --enable-dynamic-linking を行うとすんなり通りました。

ただmakeですがご指導頂きましたLDFLAGS="-lrt"をenvしmakeしましたが失敗しました。
G_UNLIKELY libsyslog-ng.a(filter.o)
G_LIKELY libsyslog-ng.a(filter.o)
nanosleep main.o
ld: 重大なエラー: シンボル参照エラー。syslog-ng に書き込まれる出力はありません。
と出ました。それと気になっているのですがmakeの最中に
「キャストによってポインタから異なるサイズの整数となります」と表示されるのですが。。。

何度も申し訳ありません。
かつ
ベテラン
会議室デビュー日: 2006/04/04
投稿数: 56
投稿日時: 2006-05-16 15:21
う〜ん、当方では出ないエラーです。
G_LIKELY/G_UNLIKELY は filter.c で利用されていますね。Glibのマクロとの事ですが、Glibのバージョンとどうやってインストールしてますか?

私は SunSITEからパッケージをダウンロードして入れています。
$ pkginfo -l SMCglib
PKGINST: SMCglib
NAME: glib
CATEGORY: application
ARCH: sparc
VERSION: 2.2.3

その下の nanosleep は私の方で出たエラーと同じ気がしますが、-lrt 付ければ問題無いはず。

それとエラーが日本語だと分かり難いのと、ネットでの検索でもヒットし難いので、出来れば英語でやってみてください。(LANG=C で)
proper
会議室デビュー日: 2005/12/05
投稿数: 17
投稿日時: 2006-05-16 16:28
かつさん。度々申し訳ありません。
Glibですが同じくパッケージをインストールしています。
(glib-2.2.3-sol9-sparc-local.gzです)

確認ですが
$ export LDFLAGS="-lrt"
で間違いないでしょうか?

かつ
ベテラン
会議室デビュー日: 2006/04/04
投稿数: 56
投稿日時: 2006-05-16 17:16
どんな方法でも良いと思いますが、私は以下でやっています。

$ LDFLAGS="-lrt" ./configure --enable-dynamic-linking

出来上がった Makefile を見て、LDFLAGS が設定されていれば問題無いと思います。

$ grep LDFLAGS Makefile
LDFLAGS = -lrt

make 時のエラーはどのコマンド実行中に出ていましたか?
私の場合は、最後の syslog-ng ファイルを作成するところです。
gcc -g -O2 -Wall -g -o syslog-ng main.o libsyslog-ng.a -lpthread -lnsl -lsocket -ldoor -lfl -L/usr/local/lib -lglib-2.0 -liconv -lm -L/usr/local/lib -levtlog
の実行結果が Undefined symbol エラーになっていました。

これがうまく行った時には以下の様になっていました。(-lrt が付いている)
gcc -g -O2 -Wall -g -lrt -o syslog-ng main.o libsyslog-ng.a -lpthread -lnsl -lsocket -ldoor -lfl -L/usr/local/lib -lglib-2.0 -liconv -lm -L/usr/local/lib -levtlog

スキルアップ/キャリアアップ(JOB@IT)