2013-10-17 24 views
0

我試圖在我的Xubuntu 13.04 x64系統上安裝bzip2-ruby gem。未能在Xubuntu 13.04(x64)上編譯/安裝bzip2-ruby

我使用RVM(使用Ruby 2.0.0),並通過以下命令進行安裝:

gem install bzip2-ruby

它安裝失敗,這是我收到的輸出(從編譯日誌拍攝) :

/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for bzlib.h... yes 
checking for BZ2_bzWriteOpen() in -lbz2... yes 
creating Makefile 

make 
compiling bzip2.c 
In file included from bzip2.c:5:0: 
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:2:2: warning: #warning use "ruby/io.h" instead of "rubyio.h" [-Wcpp] 
bzip2.c: In function ‘bz_find_struct’: 
bzip2.c:117:71: error: ‘OpenFile’ undeclared (first use in this function) 
bzip2.c:117:71: note: each undeclared identifier is reported only once for each function it appears in 
bzip2.c:117:81: error: expected expression before ‘)’ token 
bzip2.c: In function ‘bz_io_data_finalize’: 
bzip2.c:297:13: error: unknown type name ‘OpenFile’ 
bzip2.c:297:31: error: ‘OpenFile’ undeclared (first use in this function) 
bzip2.c:297:41: error: expected expression before ‘)’ token 
bzip2.c:298:21: error: request for member ‘f’ in something not a structure or union 
bzip2.c:299:28: error: request for member ‘f’ in something not a structure or union 
bzip2.c:300:21: error: request for member ‘f’ in something not a structure or union 
bzip2.c:302:21: error: request for member ‘f2’ in something not a structure or union 
bzip2.c:303:28: error: request for member ‘f2’ in something not a structure or union 
bzip2.c:304:21: error: request for member ‘f2’ in something not a structure or union 
bzip2.c: In function ‘bz_writer_init’: 
bzip2.c:473:9: error: unknown type name ‘OpenFile’ 
bzip2.c:483:13: warning: assignment from incompatible pointer type [enabled by default] 
bzip2.c:483:13: warning: passing argument 1 of ‘rb_io_check_closed’ from incompatible pointer type [enabled by default] 
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0, 
       from bzip2.c:5: 
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:179:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’ 
bzip2.c:484:13: warning: passing argument 1 of ‘rb_io_check_writable’ from incompatible pointer type [enabled by default] 
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0, 
       from bzip2.c:5: 
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:172:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’ 
bzip2.c: In function ‘bz_reader_init’: 
bzip2.c:698:13: error: unknown type name ‘OpenFile’ 
bzip2.c:703:13: warning: assignment from incompatible pointer type [enabled by default] 
bzip2.c:703:13: warning: passing argument 1 of ‘rb_io_check_closed’ from incompatible pointer type [enabled by default] 
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0, 
       from bzip2.c:5: 
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:179:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’ 
bzip2.c:704:13: warning: passing argument 1 of ‘rb_io_check_readable’ from incompatible pointer type [enabled by default] 
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0, 
       from bzip2.c:5: 
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:173:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’ 
bzip2.c: In function ‘bz_next_available’: 
bzip2.c:779:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point] 
bzip2.c: In function ‘bz_reader_ungetc’: 
bzip2.c:981:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point] 
bzip2.c: In function ‘bz_reader_ungets’: 
bzip2.c:1025:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point] 
bzip2.c: In function ‘Init_bzip2_ext’: 
bzip2.c:1726:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 
make: *** [bzip2.o] Error 1 

現在,我有C/C++幾乎沒有經驗,所以我甚至不能開始調試,它的編譯C代碼...但...任何人有什麼想法?我需要一個Ruby BZip2 gem庫,用於我正在開發的項目,這是我發現的第一個,不知道是否有任何替代方案可以嘗試。

回答

0

顯然,問題在於這個gem似乎不能用Ruby 2.0.0工作(至少我無法工作)。我通過RVM安裝了1.9.3,並安裝了它並且工作正常。我沒有足夠的關於C來修復它與2.0.0一起工作,所以我只用1.9.3來完成這個項目。沒什麼大不了。