我遇到了libv8
gem与ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-darwin10.8.0]的问题。 gem install libv8工作正常,我有
gem 'therubyracer'
在我的Gemfile
中,这依赖于我libv8
时安装的bundle install
:
$ bundle exec gem list *** LOCAL GEMS *** actionmailer (3.1.3) actionpack (3.1.3) ... libv8 (3.3.10.4 x86_64-darwin-10) ...
但是当我跑步时:
$ rails s Could not find libv8-3.3.10.4 in any of the sources Run `bundle install` to install missing gems.
找不到libv8
- 这是32/64位问题吗?如果是这样,我该如何解决?
答案 0 :(得分:1)
我怀疑这是因为我有32/64位不匹配。
我用以下方法解决了这个问题:
$ irb ruby-1.9.3-p0 :001 > `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}`
答案 1 :(得分:1)
另一个解决方案是使用nodejs而不是therubyracer。您可以使用apt-get / yum在服务器上安装它,因此您的Gemfile不需要包含execjs或therubyracer。
答案 2 :(得分:1)
我有一个类似的问题从x86开发盒部署到x86_64服务器(使用capistrano)
当我进行部署时,我得到了相同的“找不到任何来源的libv8-3.3.10.4”消息。这是因为在x86机器上运行'bundle pack'只会将x86 gem复制到/ vendor / cache目录中!
我通过将linux x86_64 gem文件显式添加到/ vendor / cache目录来修复此问题,以便它与部署服务器体系结构一致。之后部署运行良好。
答案 3 :(得分:1)
您可以在Mavericks上实际安装该版本:
gem install libv8 -v 3.11.8.17 - --with-system-v8
您可以提供要安装的任何libv8 gem版本..
在此之后您可能会遇到安装therubyracer然后
的问题更新Gemfile版本以指向最后一个版本:
gem" therubyracer","〜> 0.10.2"
我能够成功安装宝石。
如果您想手动安装gem,可以使用:
gem install therubyracer --version"〜> 0.10.2"
答案 4 :(得分:0)
你试过bundle exec rails s
吗?您在系统上安装的宝石与项目运行所需的宝石之间可能存在冲突。
答案 5 :(得分:0)
我通过安装nodejs(最新版本)解决了这个问题。它的作用是它安装了libv8 -dev库。因此,而不是安装宝石,你需要的是本机库。
您可以直接安装它或在系统中安装nodejs,并且应该解决上述错误。