FreeBSD10: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''note:tested on 32bit release'' | ''note:tested on 32bit release with voipmonitor 11 sources'' | ||
Install packages | Install packages | ||
pkg install libexecinfo libpcap unixODBC | pkg install libexecinfo libpcap unixODBC mysql56-client libvorbis libogg vorbis-tools gmake subversion wget bash libssh git mysql56-server autotools | ||
Startup mysql | Startup mysql | ||
echo mysql_enable=\"YES\" >> /etc/rc.conf | echo mysql_enable=\"YES\" >> /etc/rc.conf | ||
vim /var/db/mysql/my.cnf | vim /var/db/mysql/my.cnf | ||
service mysql-server start | service mysql-server start | ||
Line 28: | Line 27: | ||
/etc/rc.d/ldconfig restart | /etc/rc.d/ldconfig restart | ||
Download and | Check that json-c.pc has been installed on a right place | ||
pkg-config --variable pc_path pkg-config //this show you where pkg-config search for .pc files | |||
Bad situation solved creating a symlink | |||
ln -s /usr/local/lib/pkgconfig/json-c.pc /usr/local/libdata/pkgconfig/json-c.pc | |||
Recheck that pkg_config know about json-c (should return something like '-L/usr/local/lib -ljson-c') | |||
pkg-config --libs json-c | |||
Download and configure voipmonitor | |||
cd /usr/src | cd /usr/src | ||
git clone | git clone https://github.com/voipmonitor/sniffer.git | ||
cd | cd sniffer | ||
./configure | ./configure | ||
Locate ansidecl.h in your environmentand copy it to voipmonitor sources dir | |||
locate ansidecl.h //returned /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h | |||
cp /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h ansidecl.h | |||
Modify Makefile and compile voipmonitor | |||
sed -i.orig s/\ json/\ json-c/g Makefile | |||
sed -i.bak 's/.*MYSQLLIB =.*/'MYSQLLIB\ \=\ -L\\/usr\\/local\\/lib\\/mysql\ -lmysqlclient\ -lm'/' Makefile | |||
sed -i.bak2 's/${CXX} $(objects).*'\$'/ld --allow-multiple-definition -Vt -o voipmonitor '\\/'usr'\\/'lib'\\/'crt1.o '\\/'usr'\\/'lib'\\/'crti.o '\\/'usr'\\/'lib'\\/'crtbegin.o ${objects} ${LIBS} ${LIBS_PATH} --as-needed -lgcc_s --no-as-needed '\\/'usr'\\/'lib'\\/'crtend.o '\\/'usr'\\/'lib'\\/'crtn.o /' Makefile | |||
sed -i.bak3 s/\ \-ldl// Makefile | |||
ln -s /usr/bin/c++ /usr/sbin/g++ | ln -s /usr/bin/c++ /usr/sbin/g++ | ||
gmake | |||
gmake | |||
gmake install | gmake install | ||
vi /usr/local/etc/rc.d/voipmonitor | Create voipmonitor startup script | ||
echo voipmonitor_enable=\"YES\" >> /etc/rc.conf | |||
vi /usr/local/etc/rc.d/voipmonitor | |||
#!/bin/sh | #!/bin/sh | ||
# | # | ||
# | # | ||
# PROVIDE: voipmonitor | # PROVIDE: voipmonitor | ||
# REQUIRE: | # REQUIRE: mysql | ||
# KEYWORD: shutdown | # KEYWORD: shutdown | ||
# | # | ||
Line 59: | Line 72: | ||
name=voipmonitor | name=voipmonitor | ||
rcvar=voipmonitor_enable | rcvar=voipmonitor_enable | ||
export PATH=/usr/local/bin:/usr/local/sbin:$PATH | |||
pidfile="/var/run/${name}.pid" | |||
procname="/usr/sbin/voipmonitor" | |||
start_cmd="/usr/sbin/voipmonitor --config-file=/etc/voipmonitor.conf -v1" | |||
load_rc_config $name | load_rc_config $name | ||
run_rc_command "$1" | run_rc_command "$1" | ||
ldconfig | |||
service voipmonitor start | service voipmonitor start |
Latest revision as of 15:36, 21 January 2015
note:tested on 32bit release with voipmonitor 11 sources
Install packages
pkg install libexecinfo libpcap unixODBC mysql56-client libvorbis libogg vorbis-tools gmake subversion wget bash libssh git mysql56-server autotools
Startup mysql
echo mysql_enable=\"YES\" >> /etc/rc.conf vim /var/db/mysql/my.cnf service mysql-server start
Download and install snappy
cd /usr/src wget --no-check-certificate https://snappy.googlecode.com/files/snappy-1.1.1.tar.gz tar xzf snappy-1.1.1.tar.gz cd snappy-1.1.1 ./configure make make install
Download and install json-c
cd /usr/src git clone https://github.com/json-c/json-c.git; cd json-c; sh autogen.sh; ./configure; make; make install ln -s /usr/local/lib/libjson-c.so.2.0.0 /usr/lib/libjson.so /etc/rc.d/ldconfig restart
Check that json-c.pc has been installed on a right place
pkg-config --variable pc_path pkg-config //this show you where pkg-config search for .pc files
Bad situation solved creating a symlink
ln -s /usr/local/lib/pkgconfig/json-c.pc /usr/local/libdata/pkgconfig/json-c.pc
Recheck that pkg_config know about json-c (should return something like '-L/usr/local/lib -ljson-c')
pkg-config --libs json-c
Download and configure voipmonitor
cd /usr/src git clone https://github.com/voipmonitor/sniffer.git cd sniffer ./configure
Locate ansidecl.h in your environmentand copy it to voipmonitor sources dir
locate ansidecl.h //returned /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h cp /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h ansidecl.h
Modify Makefile and compile voipmonitor
sed -i.orig s/\ json/\ json-c/g Makefile sed -i.bak 's/.*MYSQLLIB =.*/'MYSQLLIB\ \=\ -L\\/usr\\/local\\/lib\\/mysql\ -lmysqlclient\ -lm'/' Makefile sed -i.bak2 's/${CXX} $(objects).*'\$'/ld --allow-multiple-definition -Vt -o voipmonitor '\\/'usr'\\/'lib'\\/'crt1.o '\\/'usr'\\/'lib'\\/'crti.o '\\/'usr'\\/'lib'\\/'crtbegin.o ${objects} ${LIBS} ${LIBS_PATH} --as-needed -lgcc_s --no-as-needed '\\/'usr'\\/'lib'\\/'crtend.o '\\/'usr'\\/'lib'\\/'crtn.o /' Makefile sed -i.bak3 s/\ \-ldl// Makefile
ln -s /usr/bin/c++ /usr/sbin/g++
gmake gmake install
Create voipmonitor startup script
echo voipmonitor_enable=\"YES\" >> /etc/rc.conf vi /usr/local/etc/rc.d/voipmonitor
#!/bin/sh # # # PROVIDE: voipmonitor # REQUIRE: mysql # KEYWORD: shutdown # . /etc/rc.subr name=voipmonitor rcvar=voipmonitor_enable export PATH=/usr/local/bin:/usr/local/sbin:$PATH pidfile="/var/run/${name}.pid" procname="/usr/sbin/voipmonitor" start_cmd="/usr/sbin/voipmonitor --config-file=/etc/voipmonitor.conf -v1" load_rc_config $name run_rc_command "$1"
ldconfig service voipmonitor start