2015-12-17 70 views
1

注:我正在运行Ubuntu,而不是Windows。无法在Ubuntu上安装kgio 2.8.1 14.04

这是尝试安装kgio时发生的情况。我是否缺少依赖关系,我该如何安装?

[email protected]$ gem install kgio -v '2.8.1' 
Building native extensions. This could take a while... 
ERROR: Error installing kgio: 
    ERROR: Failed to build gem native extension. 

    /home/gilani/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20151218-13133-1dvzrlz.rb extconf.rb 
checking for CLOCK_MONOTONIC in time.h... yes 
checking for clockid_t in time.h... yes 
checking for clock_gettime() in -lrt... yes 
checking for t_open() in -lnsl... no 
checking for socket() in -lsocket... no 
checking for poll() in poll.h... yes 
checking for getaddrinfo() in sys/types.h,sys/socket.h,netdb.h... yes 
checking for getnameinfo() in sys/types.h,sys/socket.h,netdb.h... yes 
checking for struct sockaddr_storage in sys/types.h,sys/socket.h... yes 
checking for accept4() in sys/socket.h... yes 
checking for sys/select.h... yes 
checking for writev() in sys/uio.h... yes 
checking for ruby/io.h... yes 
checking for rb_io_t.fd in ruby.h,ruby/io.h... yes 
checking for rb_io_t.mode in ruby.h,ruby/io.h... yes 
checking for rb_io_t.pathv in ruby.h,ruby/io.h... yes 
checking for struct RFile in ruby.h,ruby/io.h... yes 
checking size of struct RFile in ruby.h,ruby/io.h... 24 
checking for struct RObject... yes 
checking size of struct RObject... 40 
checking size of int... 4 
checking for rb_io_ascii8bit_binmode()... yes 
checking for rb_update_max_fd()... yes 
checking for rb_fd_fix_cloexec()... yes 
checking for rb_cloexec_open()... yes 
checking for rb_thread_blocking_region()... no 
checking for rb_thread_io_blocking_region()... yes 
checking for rb_str_set_len()... yes 
checking for rb_time_interval()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for rb_str_subseq()... yes 
checking for rb_ary_subseq()... yes 
creating Makefile 

make "DESTDIR=" clean 

make "DESTDIR=" 
compiling wait.c 
compiling autopush.c 
compiling tryopen.c 
tryopen.c:42:0: warning: "RUBY_UBF_IO" redefined [enabled by default] 
# define RUBY_UBF_IO ((void *)(-1)) 
^ 
In file included from /home/gilani/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/ruby.h:1710:0, 
       from /home/gilani/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby.h:33, 
       from tryopen.c:1: 
/home/gilani/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/intern.h:902:0: note: this is the location of the previous definition 
#define RUBY_UBF_IO ((rb_unblock_function_t *)-1) 
^ 
In file included from tryopen.c:43:0: 
/home/gilani/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/backward/rubysig.h:14:2: warning: #warning rubysig.h is obsolete [-Wcpp] 
#warning rubysig.h is obsolete 
^
tryopen.c: In function ‘my_thread_blocking_region’: 
tryopen.c:52:2: error: ‘TRAP_BEG’ undeclared (first use in this function) 
    TRAP_BEG; /* for FIFO */ 
^
tryopen.c:52:2: note: each undeclared identifier is reported only once for each function it appears in 
tryopen.c:54:2: error: ‘TRAP_END’ undeclared (first use in this function) 
    TRAP_END; 
^
make: *** [tryopen.o] Error 1 

make failed, exit code 2 

Gem files will remain installed in /home/gilani/.rvm/gems/ruby-2.2.1/gems/kgio-2.8.1 for inspection. 
Results logged to /home/gilani/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/kgio-2.8.1/gem_make.out 
+0

是否 “/home/gilani/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/kgio-2.8.1/gem_make.out” 告诉你什么吗? –

+0

@theTinMan根本没有,它包含上面的确切错误文本,除了最后两条陈述之外。 – amingilani

+0

你正试图编译一个新版本的ruby,而不是它所写的新版本,kgio 2.8.1在2013年发布(http://bogomips.org/kgio.git/tag/?h=v2.8.1 ),ruby 2.2.1于2015年3月发布(https://www.ruby-lang.org/zh/news/2015/03/03/ruby-2-2-1-released/) – bjhaid

回答

4

由于@bjhaid在评论中回答,并没有跟进。我会在这里我将它张贴关闭questoin:

您试图编译宝石对一个版本较新的红宝石比 它写对的,kgio 2.8.1在 2013(bogomips发布.org/kgio.git/tag /?h = v2.8.1),ruby 2.2.1发布了 2015年3月(ruby-lang.org/zh/news/2015/03/03/ruby-2-2-1 -released)

+0

过去一小时,我一直在撞墙,试图让我的旧rails项目使用ruby 2.3.1'工作。无论如何,谢谢。 – Sheharyar

0

它们的组合帮我在Ubuntu 16.04:

apt-get install ruby-kgio

bundle update kgio