簡體   English   中英

錯誤:執行gem時...(ArgumentError)IPv4地址期望4個字節但1個字節-Ruby On Rails

[英]ERROR: While executing gem … (ArgumentError) IPv4 address expects 4 bytes but 1 bytes - Ruby On Rails

編譯bundle install ,出現以下錯誤:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/bartsabayton/.rvm/rubies/ruby-2.2.0-preview1/bin/ruby -r ./siteconf20150310-8631-16gdgvg.rb extconf.rb 
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... yes
checking for sqlite3_enable_load_extension()... yes
checking for sqlite3_load_extension()... yes
checking for sqlite3_open_v2()... yes
checking for sqlite3_prepare_v2()... yes
checking for sqlite3_int64 in sqlite3.h... yes
checking for sqlite3_uint64 in sqlite3.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling statement.c
statement.c: In function ‘bind_param’:
statement.c:261:7: warning: implicit declaration of function ‘RBIGNUM’ [-Wimplicit-function-declaration]
statement.c:261:11: error: invalid type argument of ‘->’ (have ‘int’)
statement.c:261:32: error: ‘SIZEOF_BDIGITS’ undeclared (first use in this function)
statement.c:261:32: note: each undeclared identifier is reported only once for each function it appears in
statement.c: In function ‘reset_bang’:
statement.c:293:7: warning: variable ‘status’ set but not used [-Wunused-but-set-variable]
statement.c: In function ‘clear_bindings’:
statement.c:313:7: warning: variable ‘status’ set but not used [-Wunused-but-set-variable]
make: *** [statement.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/bartsabayton/.rvm/gems/ruby-2.2.0-preview1@e-law-landing/gems/sqlite3-1.3.8 for inspection.
Results logged to /home/bartsabayton/.rvm/gems/ruby-2.2.0-preview1@e-law-landing/extensions/x86-linux/2.2.0/sqlite3-1.3.8/gem_make.out
An error occurred while installing sqlite3 (1.3.8), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.8'` succeeds before bundling.

所以我做了gem install sqlite3 -v '1.3.8' ,但是這樣做時,

ERROR:  While executing gem ... (ArgumentError)
    IPv4 address expects 4 bytes but 1 bytes

我檢查了我的rvm,

RVM清單:

bartsabayton@bartsabayton-All-Series:~/rails/landing$ rvm list

rvm rubies

   ruby-2.0.0-p0 [ i686 ]
   ruby-2.1.0 [ i686 ]
 * ruby-2.1.3 [ i686 ]
=> ruby-2.2.0-preview1 [ i686 ]

# => - current
# =* - current && default
#  * - default

我在用:

  • Ubuntu 12.04
  • Ruby 2.2.0preview1(2014-09-17干線47616)[i686-linux]

請幫忙。 需要修復它。

您使用的是Ruby 2.2.0,而此特定版本的sqlite3(1.3.8)不適用於該版本。

因此,您應該安裝較新版本的sqlite3。

你可以試試:

gem install sqlite3

並確保在系統上安裝了sqlite3sqlite-devel

注意:正如Ismael所注意到的,您還應該更新Ruby。

您正在使用像2.xx這樣的Ruby更高版本,而此sqlite3(1.3.8)的特定版本存在問題。

因此,請使用以下命令手動安裝sqlite3-

寶石安裝sqlite3

如果仍然出錯,則刪除Gemfile.lock,然后進行捆綁安裝,即可正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM