IM服务器的安装相信很多人都会安装,但RedHat Enterprise Server 4.1系统下安装最新版的Jabberd-2.0s9可能就不是很多人都会,经过本人的N次试验结果终于出来了,Jabberd服务器可以正常的运行,详细的安装操作如下(请使用root用户来安装下列程式,同时本文也参考了Tansf兄弟的“Jabber服务器Jabberd安装”文章):
Step1、安装Jabberd-2.0s9前所需要准备的软件清单:
1.1、MySQL安装所需要的文件(RedHat Enterprise Server 4.1安装光盘内也提供):
MySQLclient10-3.23.58-4.RHEL4.1.i386.rpm
MySQL-devel-4.1.10a-2.RHEL4.1.i386.rpm
MySQL-server-4.1.10a-2.RHEL4.1.i386.rpm
MySQL-4.1.10a-2.RHEL4.1.i386.rpm
MySQL-shared-compat-4.1.10a-0.i386.rpm
1.2、OpenSSL安装所需要的文件(RedHat Enterprise Server 4.1安装光盘内也提供):
Openssl-0.9.7a-43.1.i386.rpm
Openssl-devel-0.9.7a-43.1.i386.rpm
1.3、libidn安装所需要的文件(RedHat Enterprise Server 4.1安装光盘内也提供):
libidn-0.5.6-1.i386.rpm
libidn-devel-0.5.6-1.i386.rpm
1.4、Jabberd安装所需要的文件:
jabberd-2.0s9.tar.gz
下载地址:
http://jabberd.jabberstudio.org/2/
Step2、Jabberd安装前的设置:
# tar zxvf jabberd-2.0s9.tar.gz(解压jabberd-2.0s9.tar.gz文件)
# cd jabberd-2.0s9(进入jabberd-2.0s9目录)
# cd tools(进入tools目录)
# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (2)
(出现以上的提示,原因是没有运行MySQL服务的原因)
[root@pdc tools]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.10a
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> \. db-setup.mysql(输入数据库文件)
Query OK, 1 row affected (0.01 sec)
Database changed
Query OK, 0 rows affected (0.08 sec)
Query OK, 0 rows affected (0.14 sec)
Query OK, 0 rows affected (0.09 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON jabberd2.* TO jabberd2@localhost IDENTIFIED BY'secret';
Query OK, 0 rows affected (0.01 sec)
mysql> quit(离开MySQL程序)
Bye
Step3、建立用户:
# groupadd jabber
# useradd -g jabber jabber
# passwd jabber
Changing password for user jabber.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Step4、运行以下命令,建立相应的目录和更改属性:
# mkdir -p /usr/local/var/jabberd/db
# mkdir -p /usr/local/var/jabberd/log
# mkdir -p /usr/local/var/jabberd/pid
# chown -R jabber:jabber /usr/local/var/jabberd
Step5、开始安装jabberd-2.0s9程序:
#./configure -enable-debug -with-extra-include-path=/usr/local/ssl/include
-with-extra-library-path=/usr/local/ssl/lib
#make
#make install
Step6、运行以下命令,更改目录相关属性:
# chown jabber:jabber /usr/local/etc/jabberd/*
# chmod 660 /usr/local/etc/jabberd/*
Step7、修改/usr/local/etc/jabberd/目录下的c2s.xml、sm.xml两个文件:
c2s.xml文件修改一处;
localhost
更改为:
easy.com(更改为自己定义的域名)
sm.xml文件修改两处;
localhost
更改为:
easy.com(更改为自己定义的域名)
-->
更改为:
(使用可用可以自动注册帐号)
Step8、启动Jabberd服务:
#jabberd
附1:
# ./configure --enable-debug --with-extra-include-path=/usr/local/ssl/include --with-extra-library-path=/usr/local/ssl/lib
执行全过程记录:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g77... g77
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether g77 accepts -g... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking for correct ltmain.sh version... yes
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for g77 option to produce PIC... -fPIC
checking if g77 PIC flag -fPIC works... yes
checking if g77 supports -c -o file.o... yes
checking whether the g77 linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether time.h and sys/time.h may both be included... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking arpa/nameser.h usability... yes
checking arpa/nameser.h presence... yes
checking for arpa/nameser.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for sys/types.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/stat.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking winsock2.h usability... no
checking winsock2.h presence... no
checking for winsock2.h... no
checking for resolv.h... yes
checking for windns.h... no
checking for connect... yes
checking for _head_libws2_32_a in -lws2_32... no
checking for gethostbyname... yes
checking for gethostbyname... (cached) yes
checking for res_query... no
checking for res_query in -lresolv... yes
checking for inet_ntop... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for syslog... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking if snprintf can handle NULL arguments... yes
checking if vsnprintf can handle NULL arguments... yes
checking stringprep.h usability... yes
checking stringprep.h presence... yes
checking for stringprep.h... yes
checking for stringprep_check_version in -lidn... yes
checking for Libidn version >= 0.3.0... yes
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for CRYPTO_lock in -lcrypto... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking for SSL_connect in -lssl... yes
checking for OpenSSL version >= 0.9.6b... yes
checking mysql.h usability... no
checking mysql.h presence... no
checking for mysql.h... no
checking for mysql.h in /usr/include/mysql... yes
checking for mysql_init in -lmysqlclient... yes
checking for stdint-types....... "(putting them into ac-stdint.h)"
checking for uintptr_t... yes
checking for uint64_t... yes
... seen our uintptr_t in stdint.h (uint64_t too)
creating ac-stdint.h : _AC_STDINT_H
checking for int_least32_t... yes
checking for int_fast32_t... yes
..adding include stdint.h
... seen good stdint.h inttypes
... seen good uint64_t
... DONE ac-stdint.h
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for in_port_t... yes
checking for sa_family_t... yes
checking for struct sockaddr_storage... yes
checking for struct sockaddr_in6... yes
checking for struct in6_addr... yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking for poll... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for working memcmp... yes
checking for stdlib.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking whether lstat dereferences a symlink specified with a trailing slash... yes
checking whether stat accepts an empty string... no
checking for vprintf... yes
checking for _doprnt... no
checking for close... yes
checking for dup2... yes
checking for fcntl... yes
checking for inet_aton... yes
checking for ioctl... yes
checking for isascii... yes
checking for _findfirst... no
checking for getopt... yes
checking for gettimeofday... yes
checking for getpid... yes
checking for _getpid... no
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for mkdir... yes
checking for _mkdir... no
checking for modf... yes
checking for sleep... yes
checking for Sleep... no
checking for strcasecmp... yes
checking for stricmp... no
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strnicmp... no
checking for strstr... yes
checking for tzset... yes
checking for uname... yes
checking for getpagesize... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating etc/Makefile
config.status: creating etc/templates/Makefile
config.status: creating tools/Makefile
config.status: creating man/Makefile
config.status: creating expat/Makefile
config.status: creating mio/Makefile
config.status: creating scod/Makefile
config.status: creating subst/Makefile
config.status: creating sx/Makefile
config.status: creating util/Makefile
config.status: creating c2s/Makefile
config.status: creating resolver/Makefile
config.status: creating router/Makefile
config.status: creating s2s/Makefile
config.status: creating sm/Makefile
config.status: creating Doxyfile
config.status: creating config.h
config.status: executing depfiles commands
附2:
# make install
执行全过程记录:
Making install in etc
make[1]: Entering directory `/tmp/jabberd-2.0s9/etc'
Making install in templates
make[2]: Entering directory `/tmp/jabberd-2.0s9/etc/templates'
make[3]: Entering directory `/tmp/jabberd-2.0s9/etc/templates'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/etc/jabberd/templates" || mkdir -p -- "/usr/local/etc/jabberd/templates"
/usr/bin/install -c -m 644 'roster.xml.dist' '/usr/local/etc/jabberd/templates/roster.xml.dist'
make install-data-hook
make[4]: Entering directory `/tmp/jabberd-2.0s9/etc/templates'
/usr/bin/install -c -m 644 roster.xml.dist /usr/local/etc/jabberd/templates/roster.xml
make[4]: Leaving directory `/tmp/jabberd-2.0s9/etc/templates'
make[3]: Leaving directory `/tmp/jabberd-2.0s9/etc/templates'
make[2]: Leaving directory `/tmp/jabberd-2.0s9/etc/templates'
make[2]: Entering directory `/tmp/jabberd-2.0s9/etc'
make[3]: Entering directory `/tmp/jabberd-2.0s9/etc'
test -z "/usr/local/etc/jabberd" || mkdir -p -- "/usr/local/etc/jabberd"
/usr/bin/install -c -m 644 'c2s.xml.dist' '/usr/local/etc/jabberd/c2s.xml.dist'
/usr/bin/install -c -m 644 'resolver.xml.dist' '/usr/local/etc/jabberd/resolver.xml.dist'
/usr/bin/install -c -m 644 'router.xml.dist' '/usr/local/etc/jabberd/router.xml.dist'
/usr/bin/install -c -m 644 's2s.xml.dist' '/usr/local/etc/jabberd/s2s.xml.dist'
/usr/bin/install -c -m 644 'sm.xml.dist' '/usr/local/etc/jabberd/sm.xml.dist'
/usr/bin/install -c -m 644 'jabberd.cfg.dist' '/usr/local/etc/jabberd/jabberd.cfg.dist'
/usr/bin/install -c -m 644 'router-users.xml.dist' '/usr/local/etc/jabberd/router-users.xml.dist'
make install-data-hook
make[4]: Entering directory `/tmp/jabberd-2.0s9/etc'
/usr/bin/install -c -m 644 c2s.xml.dist /usr/local/etc/jabberd/c2s.xml
/usr/bin/install -c -m 644 resolver.xml.dist /usr/local/etc/jabberd/resolver.xml
/usr/bin/install -c -m 644 router.xml.dist /usr/local/etc/jabberd/router.xml
/usr/bin/install -c -m 644 s2s.xml.dist /usr/local/etc/jabberd/s2s.xml
/usr/bin/install -c -m 644 sm.xml.dist /usr/local/etc/jabberd/sm.xml
/usr/bin/install -c -m 644 jabberd.cfg.dist /usr/local/etc/jabberd/jabberd.cfg
/usr/bin/install -c -m 644 router-users.xml.dist /usr/local/etc/jabberd/router-users.xml
make[4]: Leaving directory `/tmp/jabberd-2.0s9/etc'
make[3]: Leaving directory `/tmp/jabberd-2.0s9/etc'
make[2]: Leaving directory `/tmp/jabberd-2.0s9/etc'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/etc'
Making install in tools
make[1]: Entering directory `/tmp/jabberd-2.0s9/tools'
make[2]: Entering directory `/tmp/jabberd-2.0s9/tools'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/usr/bin/install -c 'jabberd' '/usr/local/bin/jabberd'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/tools'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/tools'
Making install in man
make[1]: Entering directory `/tmp/jabberd-2.0s9/man'
make[2]: Entering directory `/tmp/jabberd-2.0s9/man'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/man/man8" || mkdir -p -- "/usr/local/man/man8"
/usr/bin/install -c -m 644 './jabberd.8' '/usr/local/man/man8/jabberd.8'
/usr/bin/install -c -m 644 './c2s.8' '/usr/local/man/man8/c2s.8'
/usr/bin/install -c -m 644 './resolver.8' '/usr/local/man/man8/resolver.8'
/usr/bin/install -c -m 644 './router.8' '/usr/local/man/man8/router.8'
/usr/bin/install -c -m 644 './s2s.8' '/usr/local/man/man8/s2s.8'
/usr/bin/install -c -m 644 './sm.8' '/usr/local/man/man8/sm.8'
make[2]: Leaving directory `/tmp/jabberd-2.0s9/man'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/man'
Making install in expat
make[1]: Entering directory `/tmp/jabberd-2.0s9/expat'
make[2]: Entering directory `/tmp/jabberd-2.0s9/expat'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/expat'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/expat'
Making install in mio
make[1]: Entering directory `/tmp/jabberd-2.0s9/mio'
make[2]: Entering directory `/tmp/jabberd-2.0s9/mio'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/mio'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/mio'
Making install in scod
make[1]: Entering directory `/tmp/jabberd-2.0s9/scod'
make[2]: Entering directory `/tmp/jabberd-2.0s9/scod'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/scod'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/scod'
Making install in subst
make[1]: Entering directory `/tmp/jabberd-2.0s9/subst'
make[2]: Entering directory `/tmp/jabberd-2.0s9/subst'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/subst'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/subst'
Making install in sx
make[1]: Entering directory `/tmp/jabberd-2.0s9/sx'
make[2]: Entering directory `/tmp/jabberd-2.0s9/sx'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/sx'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/sx'
Making install in util
make[1]: Entering directory `/tmp/jabberd-2.0s9/util'
make[2]: Entering directory `/tmp/jabberd-2.0s9/util'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/util'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/util'
Making install in c2s
make[1]: Entering directory `/tmp/jabberd-2.0s9/c2s'
make[2]: Entering directory `/tmp/jabberd-2.0s9/c2s'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'c2s' '/usr/local/bin/c2s'
/usr/bin/install -c c2s /usr/local/bin/c2s
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/c2s'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/c2s'
Making install in resolver
make[1]: Entering directory `/tmp/jabberd-2.0s9/resolver'
make[2]: Entering directory `/tmp/jabberd-2.0s9/resolver'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'resolver' '/usr/local/bin/resolver'
/usr/bin/install -c resolver /usr/local/bin/resolver
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/resolver'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/resolver'
Making install in router
make[1]: Entering directory `/tmp/jabberd-2.0s9/router'
make[2]: Entering directory `/tmp/jabberd-2.0s9/router'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'router' '/usr/local/bin/router'
/usr/bin/install -c router /usr/local/bin/router
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/router'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/router'
Making install in s2s
make[1]: Entering directory `/tmp/jabberd-2.0s9/s2s'
make[2]: Entering directory `/tmp/jabberd-2.0s9/s2s'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 's2s' '/usr/local/bin/s2s'
/usr/bin/install -c s2s /usr/local/bin/s2s
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/s2s'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/s2s'
Making install in sm
make[1]: Entering directory `/tmp/jabberd-2.0s9/sm'
make[2]: Entering directory `/tmp/jabberd-2.0s9/sm'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'sm' '/usr/local/bin/sm'
/usr/bin/install -c sm /usr/local/bin/sm
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9/sm'
make[1]: Leaving directory `/tmp/jabberd-2.0s9/sm'
make[1]: Entering directory `/tmp/jabberd-2.0s9'
make[2]: Entering directory `/tmp/jabberd-2.0s9'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/tmp/jabberd-2.0s9'
make[1]: Leaving directory `/tmp/jabberd-2.0s9'