Ruby 捆绑安装不';不要在RVM上工作

Ruby 捆绑安装不';不要在RVM上工作,ruby,macos,git,bundle-install,Ruby,Macos,Git,Bundle Install,我在安装捆绑包时遇到问题 这是我最后的步骤: git克隆http:… git签出-b daniel bundle安装 我得到的错误是: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/ruby extconf.rb checking for main() in -lp

我在安装捆绑包时遇到问题

这是我最后的步骤:

  • git克隆http:…
  • git签出-b daniel
  • bundle安装
我得到的错误是:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native
extension.

        /Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/ruby extconf.rb  checking for main() in -lpthread... yes checking for main() in
-lobjc... yes
*** 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=/Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
    --with-pthreadlib   --without-pthreadlib    --with-objclib
    --without-objclib   --enable-debug  --disable-debug
/Users/daniel/.rvm/gems/ruby-1.9.3-p286/gems/therubyracer-0.11.0/ext/v8/build.rb:50:in
`build_with_rubygem_libv8': undefined local variable or method
`libv8_include_flags' for main:Object (NameError)   from
extconf.rb:20:in `<main>'


Gem files will remain installed in
/Users/daniel/.rvm/gems/ruby-1.9.3-p286/gems/therubyracer-0.11.0 for
inspection. Results logged to
/Users/daniel/.rvm/gems/ruby-1.9.3-p286/gems/therubyracer-0.11.0/ext/v8/gem_make.out
An error occurred while installing therubyracer (0.11.0), and Bundler
cannot continue. Make sure that `gem install therubyracer -v '0.11.0'`
succeeds before bundling.
我正在使用MacOS10.7.5。Xcode及其命令行工具和Rails是最新的。 还安装了SQLite 3

有人能帮我吗


编辑:

我还尝试删除存储库并再次克隆它,但出现了相同的错误


编辑:

Rails和Sqlite3的安装路径是否正确

daniel:~ 
daniel$ sudo gem update --system Latest version currently
installed. Aborting. 
daniel:~ 
daniel$ sudo gem install rails 
Fetching:
rails-3.2.11.gem (100%) Successfully installed 
rails-3.2.11 1 gem installed 
Installing ri documentation for rails-3.2.11... 
Installing RDoc documentation for rails-3.2.11... 
daniel:~ 
daniel$ sudo gem install sqlite3
Fetching: sqlite3-1.3.7.gem (100%) 
Building native extensions.  This could take a while... 
Successfully installed sqlite3-1.3.7 1 gem installed 
Installing ri documentation for sqlite3-1.3.7... 
Installing RDoc documentation for sqlite3-1.3.7...
daniel:~ 
daniel$ which ruby irb gem rake
/Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
/Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/irb
/Users/daniel/.rvm/rubies/ruby-1.9.3-p286/bin/gem
/Users/daniel/.rvm/gems/ruby-1.9.3-p286/bin/rake

至少有一个问题是您正在运行RVM,但使用
sudo
在系统上安装gems

请阅读“”,尤其是以下部分:

“不要使用sudo…” RVM在计算机上您自己的用户空间中为您(用户)创建一个沙箱,允许您管理它,而无需成为系统管理员。换句话说,这意味着您不必为任何RVM或gems管理使用
sudo

如果您确实使用了
sudo
,您将暂时不再是用户,而成为管理员,拥有管理员权限和管理员环境,其中不包括
/Users/daniel/.RVM/rubies/ruby-1.9.3-p286
路径中的RVM沙盒。沙箱的知识由您环境中的路径携带,您机器上的root用户不使用该路径。安装在
sudo
子shell中的Gems被安装到管理员帐户知道的位置,即在系统Ruby安装中,这就是为什么RVM沙盒Ruby看不到它们:系统的Ruby和RVM控制的Ruby之间没有交叉。这就是沙箱的全部概念:分离元素和资源以避免污染

您可以通过查看以下内容的输出来了解这一切:

which ruby irb gem rake
它们的路径都指向您的沙箱:

/Users/daniel/.rvm/rubies
在Mac OS系统上,该命令应报告:

/usr/bin/ruby
/usr/bin/irb
/usr/bin/gem
/usr/bin/rake
使用以下方法重新安装Rails和SQLite gem:

gem install rails sqlite3
并查看您的包的行为


另外,不要使用
sudo
故意试图管理/删除安装在Ruby上的系统。这是苹果为他们自己的目的而安装的,目的是使他们安装的软件能够运行。利用它的存在是可以的,但它是为他们的使用而存在的。将RVM管理的Ruby用于您自己的目的。

您接受了XCode许可协议吗?我可以启动XCode并创建新项目等。所以我想我已经接受了它。谢谢你的解决方案。你有什么版本的Xcode?你使用的是什么版本的libv8?我注意到,我没有使用libv8:谢谢你的回答!我自己解决了这个问题。安装Rubyracer 0.10.2版后,“bundle install”命令运行正常。再次感谢各位!这里也有同样的问题。我不得不将libv8的版本改为3.3.10,将rubyracer的版本改为0.10.2。
gem install rails sqlite3