7

最近、OSXをMountain Lion(10.8)とXcode(4.4)にアップグレードしましたが、Rails環境を機能させようとすると問題が発生しました。実行を開始し、ライブラリbundle installのインストール時にエラーが発生しました。libv8以下は完全なエラーの貼り付けです。私は周りを検索して同様の問題を探しましたが、これまでにstackoverflowで見つけたものは私の問題には当てはまりません。これまで私が試したが役に立たなかったいくつかのことを次に示します。

  • Xcodeコマンドラインツールをインストールする
  • MySQLをインストールします
  • X11をインストールします
  • gemfileを介して異なるバージョンのlibv8をインストールします

今、私は問題が私のルビースキルを超えているように見えるポイントにいます。誰かが私が試すことができることについていくつかのアイデアを持っているか、同様の問題を経験しているなら、私はあなたの助けが欲しいです。ありがとう!

私のgemfileは次のようになります。

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'bundler'
gem 'rake'
gem 'sqlite3'
gem 'haml'
gem 'nokogiri'
gem 'whenever'
gem 'mysql'
gem 'mysql2'
gem 'jquery-rails'
gem 'capistrano'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

そして、gemをインストールしようとしたときのエラーログは次のとおりです。

sudo bundle install
Password:
Fetching source index for https://rubygems.org/
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.3.6) 
Using activesupport (3.2.6) 
Using builder (3.0.0) 
Using activemodel (3.2.6) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.6) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.6) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.6) 
Using activeresource (3.2.6) 
Using bundler (1.0.15) 
Using highline (1.6.13) 
Using net-ssh (2.5.2) 
Using net-scp (1.0.4) 
Using net-sftp (2.0.5) 
Using net-ssh-gateway (1.1.0) 
Using capistrano (2.12.0) 
Using chronic (0.6.7) 
Using coffee-script-source (1.3.3) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.3) 
Using rdoc (3.12) 
Using thor (0.15.4) 
Using railties (3.2.6) 
Using coffee-rails (3.2.2) 
Using haml (3.1.6) 
Using jquery-rails (2.0.2) 
Installing libv8 (3.3.10.4) with native extensions /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:482:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
extconf.rb:13: uninitialized constant Gem (NameError)
Checking for Python...

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/libv8-3.3.10.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/libv8-3.3.10.4/ext/libv8/gem_make.out
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:445:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:445:in `build_extensions'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:197:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:101:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:91:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:58:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:57:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:49:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:8:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/cli.rb:222:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `send'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19
4

5 に答える 5

7

追加してみてください

gem 'therubyracer', '0.11.0beta5'
gem 'libv8', '~> 3.11.8'

あなたのGemfileに。それは私に役立ちます。

于 2012-07-27T10:16:52.780 に答える
4

これは、10.8でレールを実行する方法のクイックガイドです:http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

ガイドから:

1.9.2、1.8.7、REEなどの1.9.3より古いRubyをインストールする必要がある場合は、GCC4.2をインストールする必要があります。

于 2012-07-26T20:55:33.497 に答える
1

さて、いくつか掘り下げて問題を抱えているのは私だけではないことを確認した後、私は解決策を見つけました。最終的には、「therubyracer」ジェムがMountainLionでコンパイルされていないバージョンのlibv8を参照していたためです。修正は、libv8のより新しいバージョンを使用するgemのベータバージョンを使用するようにgemを更新することでした。githubの問題へのリンクは次のとおりです:https ://github.com/cowboyd/therubyracer/issues/181

Railsを元に戻して実行するプロセス全体のベビーベッドのメモのリストを保持しました。ここに、役立つ可能性のある人のための短いリストを示します。

  • Brewをアンインストールして再インストールします(で0.9に更新されないbrew updateため、手動で再インストールする必要がありました)
  • @Joeが述べたように含まれなくなったGCCコンパイラをインストールします-/Library/Cachesディレクトリを変更します
  • MySQLをインストールする
  • X11をインストールします
  • 'therubyracer' gem "therubyracer"、 "〜>0.11.0beta5"のベータ版を使用するようにGemfileを更新します
  • ここで説明するように、NokigiriとLibXMLの競合に関する問題を修正します。 警告:NokogiriはLibXMLバージョン2.7.3に対してビルドされましたが、動的に2.7.8をロードしました。

bundle installそして勝つ!

于 2012-07-26T22:52:24.910 に答える
0

最新のビルド環境には更新されていませんが。(Xcode 4.4)、 この回答(質問:Mac上のRubyをXcode 4.3.1で更新する問題)に従うと役立つ場合があります。

Xcodeのバージョンは異なりますが、基本的な設定は同じです。

Xcode 4.4でenvをビルドしようとしていますが、現時点で特定のgem(capybara-webkit)に小さな問題がありました。答えを更新します。

于 2012-07-26T23:32:08.550 に答える
0

いくつか提案があります。rvmシステムバージョンのRubyを使用するrbenvよりも、使用する方が役立つ場合があります。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

もう1つの提案は、最新バージョンのlibv8と、それに対してコンパイルされるプレリリースバージョンのtherubyracerを使用することです。

于 2012-07-26T22:20:57.280 に答える