« 2008年8月 | トップページ | 2008年10月 »

squid-3.0.STABLE9

 プロキシー機能を提供するソフトウェアの一つに「squid」があります。現時点ではsquid-2.xと、squid-3.xのリリースが続いています。

 さて、新機能を多く搭載したsquid-3.xは先日、squid-3.0.STABLE9がリリースされました。もちろん、Solaris10でも用いることができますが、makeに際して少し工夫が必要です。

 特に以下の条件でmakeを予定している場合、参考になるかと思います。

 ・Solaris10にて、squid-3.0系を64bitでmakeしたい。
 ・gccはSolaris10に添付のものを、そのまま利用したい。

 ①環境変数の設定

 64bitでmakeを行うため、CFLAGS、LDFLAGSに"-m64"が含まれるよう、調整しておいてください。

 ②configureの準備

 そのままconfigureを行いmakeを進めると、二箇所でエラーが発生します。

 (1)CXXFLAGSからSunコンパイラ用の引数が取り除かれない

 configureによって、「-xarch=generic64」が諸FLAGSに生成されます。これらはgccを利用する場合は「-m64」に置き換えられますが、現時点のconfigureではCFLAGSとLDFLAGSのみ処理されます。従って、g++が利用された時点でエラーを生じます。

 g++: language arch=generic64 not recognized
 g++: MemPool.cc: linker input file unused because linking not done
 mv: cannot access .deps/MemPool.Tpo

 この問題は、configureにおいてCXXFLAGSの引数も置き換えるように記述することで、解決します。以下を参考に、一行を書き足してください。

 CFLAGS="`echo $CFLAGS | sed -e 's/-xarch=generic64/-m64/'`"
 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-xarch=generic64/-m64/'`" (追加)
 LDFLAGS="`echo $LDFLAGS | sed -e 's/-xarch=generic64//'`"

 (2)dependency_libsにおいて-lgcc_sが利用される

 amd64のライブラリを作成する際に-lgcc_sを引数に用いるため、not foundを生じます。

 ld: fatal: library -lgcc_s: not found
 ld: warning: file /usr/sfw/lib/amd64/libstdc++.so: attempted multiple inclusion of file
 ld: fatal: File processing errors. No output written to cf_gen

 この問題は、Solaris10にインストールされているファイルを一部書き換えることで解決します。以下を参考に、一部を書き換えてください。

 ※書き換え前に、オリジナルのファイルの保存をお勧めします。

 vi /usr/sfw/lib/amd64/libstdc++.la

 旧:dependency_libs=' -L/usr/sfw/lib/amd64 -lgcc_s -lm'
 新:dependency_libs=' -L/usr/sfw/lib/amd64 -lgcc_s_amd64 -lm'

 ③configure及びmakeの実施とインストール

 ./configure --prefix=/usr/local/squid --with-large-files --enable-large-cache-files --enable-snmp

 make
 make install

 ④64bitバイナリの確認

 % ldd /usr/local/squid/sbin/squid
 libstdc++.so.6 => /usr/sfw/lib/64/libstdc++.so.6
 libgcc_s.so.1 =>  /usr/sfw/lib/64/libgcc_s.so.1
 libmd5.so.1 => /usr/lib/64/libmd5.so.1
 libresolv.so.2 => /usr/lib/64/libresolv.so.2
 libmalloc.so.1 => /usr/lib/64/libmalloc.so.1
 libsocket.so.1 => /usr/lib/64/libsocket.so.1
 libnsl.so.1 => /usr/lib/64/libnsl.so.1
 libm.so.2 => /usr/lib/64/libm.so.2
 libc.so.1 => /usr/lib/64/libc.so.1
 libmp.so.2 => /usr/lib/64/libmp.so.2
 libscf.so.1 => /usr/lib/64/libscf.so.1
 libdoor.so.1 => /usr/lib/64/libdoor.so.1
 libuutil.so.1 =>  /usr/lib/64/libuutil.so.1

 お疲れ様でした。

| | コメント (0) | トラックバック (0)

北陸ラーメン博(第三回) 2008/10/12~13

 今年も、北陸ラーメン博の開催が決定しました。すでに公式サイトが立ち上がり、出店ラーメン店の案内が始まっています。

 北陸ラーメン博公式サイト

 当方、第一回第二回とも、楽しく参加しました。今年もたくさん食べてこようと思います。

 さて、ラーメンの前売りチケットの販売が、すでにコンビニ(北陸三県のサークルKサンクス全店)で始まっています。前売りチケットは当日チケットよりも安いうえ、混雑なく購入できます。当日の参加が確実であれば、早めに購入しておくとよいでしょう。

 以下は、チケット購入の一例。

Ramen2008_2

 チケット10枚大人買い(¥6,500)

 筆者ひとりで全部、食べるつもりです。これは最近の言葉で言うと、「筆者はばかなの?しぬの?」というやつです。わくわくしますね。

 なお、当日は大変混み合います(8号線付近まで、駐車場へ入る車で並んでしまうことがあります)。夕方になると、お店によっては売り切れてしまい、食べられないこともあります。当日は開場前に並んで、午前中に落ち着いてお店をまわりましょう。

| | コメント (2) | トラックバック (0)

snort-2.8.3

 先日、snortの最新版がリリースされました。Solaris10ではインストールに少し工夫が必要でしたので、メモしておきます。

 特に、以下のmakeを実施したい方にお勧めします。

 ・Solaris10にて、snortを64bitでmakeしたい。
 ・gccはSolaris10に添付のものを、そのまま利用したい。

 snortのmakeに必要なlibpcapとpcreは、予め以下のインストールを行っておいてください。

 ・/usr/local/libpcap以下へ、64bitでmakeしインストールしておくこと。
 ・/usr/local/pcre以下へ、64bitでmakeしインストールしておくこと。

 ①環境変数の設定

 64bitでmakeを行うため、CFLAGS、CPPFLAGS、LDFLAGSに"-m64"が含まれるよう、調整しておいてください。

 ②snortのconfigureを実施

 前述の環境におけるconfigureの例を、以下に示します。

 ./configure --prefix=/usr/local/snort
   --with-libpcap-includes=/usr/local/libpcap/include
   --with-libpcap-libraries=/usr/local/libpcap/lib
   --with-libpcre-includes=/usr/local/pcre/include
   --with-libpcre-libraries=/usr/local/pcre/lib
   --enable-64bit-gcc

 ③makeの準備

 そのままmakeすると、/usr/include/sys/types32.hで定義されたtimeval32と、./src/pcap_pkthdr32.hで定義されたtimeval32が重複します。

 /usr/include/sys/types32.h:50: error: redefinition of `struct timeval32'

 この状況を回避するために、以下の二つのファイルを編集してください(timeval32を、timeval32pと変更して用います)。

 ・vi ./src/pcap_pkthdr32.h

 「struct timeval32」を「struct timeval32p」に変更
 「struct timeval32 ts;」を「struct timeval32p ts;」に変更する。

 ・vi .src/event.h

 「struct timeval32 ref_time;」を「struct timeval32p ref_time;」に変更する。

 ③makeの実施とインストール

 make
 make install

 ④64bitバイナリの確認

 % ldd /usr/local/snort/bin/snort
 libpcre.so.0 => /usr/local/pcre/lib/libpcre.so.0
 libm.so.2 => /usr/lib/64/libm.so.2
 libsocket.so.1 => /usr/lib/64/libsocket.so.1
 libnsl.so.1 => /usr/lib/64/libnsl.so.1
 libdl.so.1 => /usr/lib/64/libdl.so.1
 libc.so.1 => /usr/lib/64/libc.so.1
 libgcc_s.so.1 => /usr/sfw/lib/64/libgcc_s.so.1
 libmp.so.2 => /usr/lib/64/libmp.so.2
 libmd5.so.1 => /usr/lib/64/libmd5.so.1
 libscf.so.1 => /usr/lib/64/libscf.so.1
 libdoor.so.1 => /usr/lib/64/libdoor.so.1
 libuutil.so.1 => /usr/lib/64/libuutil.so.1

 お疲れ様でした。

| | コメント (0) | トラックバック (0)

« 2008年8月 | トップページ | 2008年10月 »