在solaris上安装rb-inotify

时间:2011-11-23 09:27:13

标签: ruby rubygems solaris inotify libffi

我正在尝试在Solaris机器上安装rb-inotify。 uname -a 的结果:

SunOS test9 5.10 Generic_142901-02 i86pc i386 i86pc

ruby​​-1.8.7和rubygems-1.7.2已经编译并安装但运行后

gem install rb-inotify

我收到以下错误消息:

Building native extensions.  This could take a while...
ERROR:  Error installing rb-inotify:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for ffi.h... no


checking for ffi.h in /usr/local/include... no
checking for rb_thread_blocking_region()... no
checking for ruby_thread_has_gvl_p()... no
checking for ruby_native_thread_p()... no
checking for rb_thread_call_with_gvl()... no
creating extconf.h
creating Makefile

make
Configuring libffi
make -C "/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"
make[1]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=./install-sh -c" "INSTALL_DATA=./install-sh -c -m 644" "INSTALL_PROGRAM=./install-sh -c" "INSTALL_SCRIPT=./install-sh -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/bin/bash /usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/missing --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/bash" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "prefix=/usr/local" "AR=false" "AS=as" "CC=gcc" "CXX=g++" "LD=/usr/ccs/bin/ld" "NM=/usr/ccs/bin/nm -p" "RANLIB=:" "DESTDIR=" all-recursive
make[2]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
Making all in include
make[3]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/include'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/include'
Making all in testsuite
make[3]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/testsuite'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/testsuite'
Making all in man
make[3]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/man'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/man'
make[3]: Entering directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
restore=: && backupdir=".am$$" && \
    am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
    rm -rf $backupdir && mkdir $backupdir && \
    if (/bin/bash /usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/missing --run makeinfo   --version) >/dev/null 2>&1; then \
      for f in doc/libffi.info doc/libffi.info-[0-9] doc/libffi.info-[0-9][0-9] doc/libffi.i[0-9] doc/libffi.i[0-9][0-9]; do \
        if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
      done; \
    else :; fi && \
    cd "$am__cwd"; \
    if /bin/bash /usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi/missing --run makeinfo     -I doc -I ./doc \
     -o doc/libffi.info ./doc/libffi.texi; \
    then \
      rc=0; \
      CDPATH="${ZSH_VERSION+.}:" && cd .; \
    else \
      rc=$?; \
      CDPATH="${ZSH_VERSION+.}:" && cd . && \
      $restore $backupdir/* `echo "./doc/libffi.info" | sed 's|[^/]*$||'`; \
    fi; \
    rm -rf $backupdir; exit $rc
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/debug.lo src/debug.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/debug.c  -fPIC -DPIC -o src/.libs/debug.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/prep_cif.lo src/prep_cif.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/prep_cif.c  -fPIC -DPIC -o src/.libs/prep_cif.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/types.lo src/types.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/types.c  -fPIC -DPIC -o src/.libs/types.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/raw_api.lo src/raw_api.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/raw_api.c  -fPIC -DPIC -o src/.libs/raw_api.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/java_raw_api.lo src/java_raw_api.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/java_raw_api.c  -fPIC -DPIC -o src/.libs/java_raw_api.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/closures.lo src/closures.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/closures.c  -fPIC -DPIC -o src/.libs/closures.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/x86/ffi64.lo src/x86/ffi64.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/x86/ffi64.c  -fPIC -DPIC -o src/x86/.libs/ffi64.o
/bin/bash ./libtool   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -I. -I./include -Iinclude -I./src  -c -o src/x86/unix64.lo src/x86/unix64.S
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -I. -I./include -Iinclude -I./src -c src/x86/unix64.S  -fPIC -DPIC -o src/x86/.libs/unix64.o
/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -Wall -g -fexceptions  -c -o src/x86/ffi.lo src/x86/ffi.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -Wall -g -fexceptions -c src/x86/ffi.c  -fPIC -DPIC -o src/x86/.libs/ffi.o
/bin/bash ./libtool   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I./include -Iinclude -I./src  -I. -I./include -Iinclude -I./src  -c -o src/x86/sysv.lo src/x86/sysv.S
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -I. -I./include -Iinclude -I./src -c src/x86/sysv.S  -fPIC -DPIC -o src/x86/.libs/sysv.o
/bin/bash ./libtool --tag=CC   --mode=link gcc -Wall -g -fexceptions  -version-info `grep -v '^#' ./libtool-version`   -o libffi.la -rpath /usr/local/lib src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo                     src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo src/x86/sysv.lo      
libtool: link: gcc -shared -Wl,-z -Wl,text -Wl,-h -Wl,libffi.so.5 -o .libs/libffi.so.5.0.10  src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi64.o src/x86/.libs/unix64.o src/x86/.libs/ffi.o src/x86/.libs/sysv.o   -lc   
libtool: link: (cd ".libs" && rm -f "libffi.so.5" && ln -s "libffi.so.5.0.10" "libffi.so.5")
libtool: link: (cd ".libs" && rm -f "libffi.so" && ln -s "libffi.so.5.0.10" "libffi.so")
libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
/bin/bash ./libtool --tag=CC   --mode=link gcc -Wall -g -fexceptions    -o libffi_convenience.la  src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo                     src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo src/x86/sysv.lo      
libtool: link: false cru .libs/libffi_convenience.a src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi64.o src/x86/.libs/unix64.o src/x86/.libs/ffi.o src/x86/.libs/sysv.o 
make[3]: *** [libffi_convenience.la] Error 1
make[3]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi'
make: *** ["/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"/.libs/libffi_convenience.a] Error 2

然后我发现rb-notify的homepage说它是 Linux 内核子系统inotify的包装器。这就是我无法在Solaris机器上安装它的原因吗?

但是,我确实知道人们在Windows机器上安装rb-notify没有任何问题,那么如果 inotify 是“ Linux 内核子系统”,那该怎么办呢?

1 个答案:

答案 0 :(得分:0)