2011-09-14 14 views
2

Xcode 4.1でOS X Lionをインストールしました。私はRuby 1.9.2とgems 1.5.0を使用しています。 Rails 3.0.9から3.1にアップグレードしようとすると、次のエラーが発生します。Rails 3.1へのアップデートに失敗しました

$ ruby -v 
ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-darwin9.8.0] 
$ rails -v 
Rails 3.0.9 
$ gem -v 
1.5.0 
$ gem update rails 
Updating installed gems 
Updating rails 
Building native extensions. This could take a while... 
ERROR: Error installing rails: 
    ERROR: Failed to build gem native extension. 

     /Users/me/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb 
creating Makefile 

make 
gcc -I. -I/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/i386-darwin9.8.0 -I/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/backward -I/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -o bcrypt_ext.o -c bcrypt_ext.c 
In file included from /Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby.h:32, 
       from bcrypt_ext.c:1: 
/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/ruby.h:108: error: size of array ‘ruby_check_sizeof_long’ is negative 
/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/ruby.h:112: error: size of array ‘ruby_check_sizeof_voidp’ is negative 
In file included from /Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/intern.h:29, 
       from /Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/ruby.h:1327, 
       from /Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby.h:32, 
       from bcrypt_ext.c:1: 
/Users/me/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/st.h:69: error: size of array ‘st_check_for_sizeof_st_index_t’ is negative 
bcrypt_ext.c: In function ‘bc_salt’: 
bcrypt_ext.c:42: warning: implicit conversion shortens 64-bit value into a 32-bit value 
make: *** [bcrypt_ext.o] Error 1 


Gem files will remain installed in /Users/me/.rvm/gems/ruby-1.9.2-p0/gems/bcrypt-ruby-3.0.1 for inspection. 
Results logged to /Users/me/.rvm/gems/ruby-1.9.2-p0/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out 
Nothing to update 

ここで何が起こっているのか分かりませんか?

ありがとうございます!代わりに、 "更新" を行うための

答えて

1

、ちょうどん "宝石は、レールを取り付ける-v 3.1"

UPDATE: はどうやら3.1.0(activemodelが実際に)bcryptのルビーに依存レール。この依存関係は、3.1.1で削除する必要があります(https://github.com/rails/rails/issues/2687参照)。

待たない場合は、bcrypt-rubyのビルドを解決する必要があります。コンパイラエラーは、rubyとコンパイラの間に32ビット/ 64ビットの不一致があることを示しています。 Leopardにライオンをインストールしましたか?もしそうなら、すべてのrvmルビーとネイティブ拡張宝石を再構築する必要があります。

このタイプのコンパイラの問題が再発する可能性があるため、待機したい場合でも、おそらく再構築する必要があります。テストとして、 "gem install eventmachine"のようなネイティブの宝石をインストールしてみてください。同じエラーが発生した場合、それはすべてのネイティブの宝石にこの問題があることを示す良い指標です。

問題の説明と、同様の問題のSnow Leopardへのアップグレードを持っていた誰かのために、このページを参照してください: http://jtigger-learning.wikidot.com/gem-install-fails-on-building-native-extensions

+0

OPは、彼が同じエラーを得たと言います。 –

+0

@robert私はOPによって "gem install"という言葉は一切見ません。私は "宝石の更新"だけを参照してください。 – Kelvin

+0

彼は私が削除した無回答を投稿しました。それは "それを試したが、このエラーがありました..."と言っていたのですが、彼は本質的にあなたが質問で上記と同じテキストをコピーしました。私はあなたがそれを見ることができるように答えを元に戻すでしょう。 –

関連する問題