snmptrap を IRC に出力(ビルド編)
※05.21:kyototycoonのLD_RUN_PATH/configure微修正。
今更車輪の再発明もどうかと思いつつ、kyotoなどの習作がてら作ったもののまとめです。
ビルドして入れたもののまとめ。(snmptrapdに関してはOS付属を使用。IRCサーバは別に既にあるもの想定)
当時64bitで全部作ろうかと思ったのですが、作業している当時はOS付属のgcc合わせで32bitで作ろうとしたので
ここに記載しているのはすべて32bitで作っています。
64bitは、tamtam180さんのが非常に参考になります。(Solaris環境ではいつもお世話になっています。)
つhttp://mt.orz.at/archives/2012/02/solaris10kyoto.html
また、KyotoCabinet/KyotoTycoonはそもそもMakefileが64bit向けですので、32bitでビルドはできていますが、
動かしていることで何かしら想定外挙動は起き得ると思っています。その辺も全部自己責任。
●環境
x86 Solaris10 u8
Intel(R) Atom(TM) CPU 330 @ 1.60GHz CPUSocket
●GCC4.4.6(Kyoto系・Lua系のビルド用)
インストール先:/usr/local/gcc-4.4.6
$ export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gtar xjf gmp-4.3.1.tar.bz2 cd gmp-4.3.1 CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \ ABI=32 ./configure --prefix=/usr/local/gcc-4.4.6 gmake -j 4 gmake check su export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit gtar xjf mpfr-2.4.1.tar.bz2 cd mpfr-2.4.1 CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \ LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \ ABI=32 ./configure --prefix=/usr/local/gcc-4.4.6 --with-gmp=/usr/local/gcc-4.4.6 gmake -j 4 gmake check su export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit gtar xzf binutils-2.22.tar.gz cd binutils-2.22 export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin ./configure --prefix=/usr/local/binutils-2.22 gmake -j 4 gmake check su export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit gtar xzf gcc-4.4.6.tar.gz mkdir gccbuild cd gccbuild export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin:/usr/local/binutils-2.22/bin export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib" CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \ LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \ ../gcc-4.4.6/configure \ --prefix=/usr/local/gcc-4.4.6 \ --with-gmp=/usr/local/gcc-4.4.6 \ --with-mpfr=/usr/local/gcc-4.4.6 \ --with-ar=/usr/ccs/bin/ar \ --with-as=/usr/sfw/bin/gas \ --with-gnu-as \ --with-ld=/usr/ccs/bin/ld \ --without-gnu-ld \ --enable-languages=c,c++ \ --enable-shared \ --enable-static \ --enable-threads=posix gmake -j 4 bootstrap su export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit unset LD_RUN_PATH ※参考:Sparc環境の場合はasをccs側にします $ export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib" $ LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \ > ../gcc-4.4.6/configure \ > --prefix=/usr/local/gcc-4.4.6 \ > --with-gmp=/usr/local/gcc-4.4.6 \ > --with-mpfr=/usr/local/gcc-4.4.6 \ > --with-ar=/usr/ccs/bin/ar \ > --without-gnu-as \ > --with-as=/usr/ccs/bin/as \ > --with-ld=/usr/ccs/bin/ld \ > --without-gnu-ld \ > --enable-languages=c,c++ \ > --enable-shared \ > --enable-static \ > --enable-threads=posix
●Lua-5.1.4(KyotoTycoonで参照させるので、先に本体だけ入れてしまいます)
インストール先:/usr/local/lua-5.1.4
http://www.lua.org/download.html
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gtar xzf lua-5.1.4.tar.gz cd lua-5.1.4 vi Makefile INSTALL_TOP をインストール予定場所に修正(今回は/usr/local/lua-5.1.4) INSTALL/INSTALL_EXEC/INSTALL_DATA を cp 版側に変更 vi src/luaconf.h LUA_ROOT をインストール予定場所に修正(今回は/usr/local/lua-5.1.4/) export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib" LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" gmake solaris su export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit unset LD_RUN_PATH
●KyotoCabinet/KyotoTycoon
http://fallabs.com/kyotocabinet/pkg/
http://fallabs.com/kyototycoon/pkg/
gtar xzf kyotocabinet-1.2.72.tar.gz cd kyotocabinet-1.2.72 export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib" CC=/usr/local/gcc-4.4.6/bin/gcc CXX=/usr/local/gcc-4.4.6/bin/g++ \ LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \ ./configure --prefix=/usr/local/kyotocabinet-1.2.72 cp -p Makefile Makefile.org vi Makefile diff Makefile Makefile.org 53,54c53,54 < CFLAGS = -march=native -g -O2 -Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2 < CXXFLAGS = -march=native -g -O2 -Wall -fPIC -fsigned-char -g0 -O2 --- > CFLAGS = -march=native -m64 -g -O2 -Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2 > CXXFLAGS = -march=native -m64 -g -O2 -Wall -fPIC -fsigned-char -g0 -O2 gmake -j 4 gmake check su export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install" exit gtar xzf kyototycoon-0.9.53.tar.gz cd kyototycoon-0.9.53 export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib" CC=/usr/local/gcc-4.4.6/bin/gcc CXX=/usr/local/gcc-4.4.6/bin/g++ \ LDFLAGS="-L:/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib -R/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib" \ ./configure --prefix=/usr/local/kyototycoon-0.9.53 --with-kc=/usr/local/kyotocabinet-1.2.72 --with-lua=/usr/local/lua-5.1.4 cp -p Makefile Makefile.org vi Makefile diff Makefile Makefile.org gmake -j 4 gmake check su export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit
●Luaライブラリ
http://luamemcached.luaforge.net/
https://github.com/JakobOvrum/LuaIRC
http://w3.impa.br/~diego/software/luasocket/
http://luaforge.net/projects/alt-getopt/
https://github.com/Neopallium/lualogging (rolling_fileがほしかったのでこっち)
gtar xzf luasocket-2.0.2.tar.gz cd luasocket-2.0.2 export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin cp -p config config.org vi config === LUAINC=-I/usr/local/lua-5.1.4/include INSTALL_TOP_SHARE=/usr/local/lua-5.1.4/share/lua/5.1 INSTALL_TOP_LIB=/usr/local/lua-5.1.4/lib/lua/5.1 LDFLAGS=-O -shared -fpic -lsocket -lresolv -lrt === diff config config.org 21d20 < LUAINC=-I/usr/local/lua-5.1.4/include 34,35c33,34 < INSTALL_TOP_SHARE=/usr/local/lua-5.1.4/share/lua/5.1 < INSTALL_TOP_LIB=/usr/local/lua-5.1.4/lib/lua/5.1 --- > INSTALL_TOP_SHARE=/usr/local/share/lua/5.1 > INSTALL_TOP_LIB=/usr/local/lib/lua/5.1 56c55 < LDFLAGS=-O -shared -fpic -lsocket -lresolv -lrt --- > LDFLAGS=-O -shared -fpic export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib" LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" gmake -f makefile su export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit gtar xzf lua-alt-getopt-0.7.0.tar.gz cd lua-alt-getopt-0.7.0 su chown root:root alt_getopt.lua cp -p alt_getopt.lua /usr/local/lua-5.1.4/share/lua/5.1/ exit gtar xzf lualogging-1.2.0.tar.gz cd Neopallium-lualogging-445395d/ vi Makefile === PREFIX = /usr/local/lua-5.1.4 ROOT_LUAS= src/logging.lua === su export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin gmake install exit gtar xzf luamemcached.0.7.tar.gz su chown root:root Memcached.lua CRC32.lua mv Memcached.lua CRC32.lua /usr/local/lua-5.1.4/share/lua/5.1 exit unzip JakobOvrum-LuaIRC.zip cd JakobOvrum-LuaIRC-ad53b2a/ su chown root:root *.lua mkdir /usr/local/lua-5.1.4/share/lua/5.1/irc cp -p *.lua /usr/local/lua-5.1.4/share/lua/5.1/irc exit