ChatGPT解决这个技术问题 Extra ChatGPT

如何在 10.10 Yosemite 上安装 therubyracer gem?

我无法在 Yosemite 10.10 上安装 therubyracer gem。

这是日志:

11:53  $ gem install libv8 -v '3.16.14.3' -- --with-system-v8


Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.3
Parsing documentation for libv8-3.16.14.3
Installing ri documentation for libv8-3.16.14.3
Done installing documentation for libv8 after 0 seconds
1 gem installed


02:05  $ gem install therubyracer -v '0.12.1' -- --with-system-v8


Building native extensions with: '--with-system-v8'
This could take a while...
ERROR:  Error installing therubyracer:
    ERROR: Failed to build gem native extension.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** 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=/usr/local/var/rbenv/versions/2.1.2/bin/ruby
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --without-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --without-v8-dir
    --with-v8-include
    --without-v8-include=${v8-dir}/include
    --with-v8-lib
    --without-v8-lib=${v8-dir}/lib
/usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure': You have chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundle with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location

thanks,
The Mgmt

    from /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
    from extconf.rb:32:in `'

extconf failed, exit code 1

Gem files will remain installed in /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 for inspection.
Results logged to /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make.out
你也遇到了优胜美地的问题:D
我知道,我喜欢成为一名冒险家 :-P
我也遇到了这个问题,我也尝试过 brew install v8,但是没有用
@sandelius 检查我的答案

M
Martin Bjeldbak Madsen
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

这是它在 10.10 (ruby 2.1.2) 上对我有用的唯一方法

或者尝试 gem install libv8 -v 'XX.XX.XX' -- --with-system-v8 添加 gem 的版本 :)

Mac OS Catalina 的更新:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer

是的,这是一个没有任何奇怪的帮助。即使您可能只是遇到 libv8 错误,也请执行此操作!谢谢。
是的。这是正确的做法。特别是如果您使用最新的 10.10 命令行工具重建了 ruby。
在 OS X Yosemite 中使用 Ruby 2.1.3 为我工作。
除此之外,如果您正在使用 bundler 并且有 Gemfile,您可能需要将其调整为刚刚安装的最新版本。例如,我必须(在 OS X Yosemite 上)执行以下操作:gem 'therubyracer', '0.12.1'(添加版本)。然后删除 Gemfile.lock 并执行 bundle install。它工作正常。
这对我也有用,在 El Capitan 上。我认为这要简单得多,应该是公认的答案。
m
mmln
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

然后只需捆绑您的项目宝石

这是它在 10.10 (ruby 2.1.2) 上对我有用的唯一方法


谢谢,但这是 libv8,我说的是 therubyracer gem。
这是您需要避免与 therubyracer 相关的问题
我不在乎我是否违反了规则。我不能感谢你。你为我节省了巨大的项目期限。
谢谢,它对我有用,只适用于像我这样的复制/粘贴人,我们现在在 gem install pkg/libv8-3.16.14.7-x86_64-darwin-14.gem
还值得一提的是,如果您使用 Gemfile 并且仍然无法安装 therubyracer,可能是因为已将不同版本的 libv8 添加到 Gemfile.lock。只需添加 gem 'libv8', '3.16.14.3'(或您刚刚手动安装的 libv8 的确切版本),然后运行 bundle update libv8。然后应该安装 therubyracer。
c
coding addicted

这次没有一个答案对我有用。我也用这个:

brew tap homebrew/versions
brew install v8-315

gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315

bundle install

见于 rubyracer Github 问题。

希望它可以帮助别人。


谢谢你。其他方法都不适用于使用现代版本的依赖 gem 的 El Capitan。 (在这一点上,therubyracer 可悲地落后于 libv8。)
可悲的是你是对的......每次我更改 ruby 版本时,这个错误都会让我发疯。
tap homebrew/versions 现在已被弃用,因此不再有效。
实际上,gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315) 更适合我。我 mac 中的目录实际上是 /usr/local/opt/v8@3.15
J
Jakub Troszok

也许它对某人有用,但我在安装 therubyracer 时遇到了问题(因为 libv8 的问题),解决方案是卸载我安装的所有 libv8。安装 therubyracer

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

我希望这可以帮助别人。


这似乎对我有用。但是我想指出,卸载所有版本的 libv8 gem 的最佳方法是:gem uninstall libv8 -a -x。如果您使用 ruby 版本管理器(例如 rbenv 等),那么这仅适用于您当前的 ruby 版本(以防不明显)。
👍 这个解决方案对我有用 - El Capitan 10.11.6,Ruby - ruby 1.9.3p448(2013-06-27 修订版 41675)
M
Martin T.

似乎这已在上游修复。对我、@aurels、@Mike Causer 和 @Juanda 有用的是:

bundle update libv8

R
Rohan Daxini

这在我的 Yosemite 和 Ruby 2.1.5(通过 RVM 的 Ruby)上非常适合我

gem install libv8 -v '3.16.14.3' -- --with-system-v8

早些时候它给了我 libv8 gem 版本 3.16.14.3 的错误 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.


a
aquajach

只有这对我的优胜美地 Ruby 2.1.2 有效:

gem install libv8 -v '3.16.14.3' -- --with-system-v8
brew link --overwrite v8-315 --force
gem install therubyracer -v '0.12.2' -- --with-system-v8

只有这样才能解决为 ruby 1.9.3p484rubyracer 0.12.3 安装 rubyracer 的问题
C
CloudMagick

rm Gemfile.lock 之后我能够继续使用 ruby racer

事先:我通过 brew install v8 安装了 v8,然后做了 gem install libv8 -v '3.16.14.3' -- --with-system-v8

我正在运行 10.10 Yosemite


B
Borromakot

他们在最新版本的 libv8 中更正了这个问题。请参阅:https://github.com/cowboyd/libv8/issues/123

您应该从 github 存储库安装,在 rails 我向我的 gemfile 添加了一行,如下所示gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

编辑:

这显然只能解决部分问题。我安装了新版本的libv8,但现在rubyracer 还在寻找我认为的另一个?仍在调查中。


M
Martin Streicher

我在优胜美地也遇到了同样的问题。我的解决方案与上面出现的类似。

使用 gem uninstall libv8 删除可能已安装的任何内容。

将 therubyracer 保留在 Gemfile 中,但删除对 libv8 的任何显式引用。

运行 bundle install

然后 libv8 作为依赖项安装得很好。


这是我的问题。我有多个版本的 libv8 互相争斗。清除它们并让 bundler 解决依赖关系是正确的做法。
a
alexggordon

更新了 2018 年的答案。

我在 High Sierra,在 Homebrew 1.6.1 上

brew install v8-315

gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8@3.15/

对我有用。

归功于 @coding-addicted 的 original answer


Q
Qiu

经过数小时尝试简单地升级 ruby 工作:

brew install ruby 

然后将以下内容添加到 gem 文件中:

gem 'libv8'  
gem 'therubyracer' 

c
colsen

提醒任何可能遇到我的问题的人:我最终在 RVM 中卸载了我的 ruby 版本,然后重新安装它。这似乎在最新版本的 xcode 工具中使用了正确的依赖关系来编译 ruby。

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x

C
Chris Beck

我做了以下

gem install therubyracer

现在安装 therubyracer 0.12.1 安装依赖项 libv8 (3.16.14.7 x86_64-darwin-14) 安装没有错误。

我使用通过以下方式安装的 ruby 2.1.5 进行了此操作:

CC=/usr/bin/gcc rbenv install 2.1.5

我在运行 brew upgrade ruby-builds 后所做的。

安装 ruby 2.1.5 后,我也运行了

gem upgrade --system

获得rubygems-update 2.4.5


a
abcd_win

这也是由于与 libv8 的一些冲突而发生的,尽管您可以为 rubyracer 分配一个版本并且它将被安装:

在 gemfile 中更改以下内容:

gem 'therubyracer', '~> 0.12.1'

并进行捆绑安装


t
tufla

根据以下评论,什么对我有用,

https://github.com/cowboyd/therubyracer/issues/304#issuecomment-62046085

是删除 Gemfile.lock 然后运行 bundle install


d
dchhatani

这个解决方案对我有用

gem uninstall libv8
gem install therubyracer -v '0.12.1'
    Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
    Successfully installed libv8-3.16.14.19-x86_64-darwin-18
    Building native extensions.  This could take a while...
    Successfully installed therubyracer-0.12.1
    Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
    Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
    Parsing documentation for therubyracer-0.12.1
    Installing ri documentation for therubyracer-0.12.1
    Done installing documentation for libv8, therubyracer after 0 seconds
    2 gems installed
gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
bundle install

请指出微小的变化是什么,并尝试解释它为什么起作用。由于您要回答一个 4 年前的问题,因此您还应该添加一些有关适用版本的详细信息(那时您的答案可能不相关)。
f
foamroll

使用 homebrew 的 v8 目录作为 --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1,而不是 /usr/local/opt/v8-315,对我有用,编码上瘾的答案。

这在 brew install 命令 brew install v8-315Summary 中可见。