【问题标题】:bundle install issue with libv8 and railslibv8 和 rails 的捆绑安装问题
【发布时间】:2012-02-20 17:46:33
【问题描述】:

我在使用 ruby​​ 1.9.3p0(2011-10-30 修订版 33570)[x86_64-darwin10.8.0] 的 libv8 gem 时遇到问题。 gem install libv8 工作正常,我有

gem 'therubyracer'

在我的Gemfile 中,这依赖于在我执行bundle install 时安装的libv8

$ bundle exec gem 列表 *** 当地宝石 *** actionmailer (3.1.3) 动作包(3.1.3) ... libv8 (3.3.10.4 x86_64-darwin-10) ...

但是当我跑步时:

$ 导轨 在任何来源中都找不到 libv8-3.3.10.4 运行 `bundle install` 来安装缺失的 gem。

它找不到 libv8 - 这是 32/64 位问题吗?如果是这样,我该如何解决?

【问题讨论】:

    标签: ruby-on-rails ruby gem bundler


    【解决方案1】:

    你试过bundle exec rails s吗?您系统上安装的 gem 与项目运行所需的 gem 之间可能存在冲突。

    【讨论】:

      【解决方案2】:

      我怀疑这是因为我的 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}`

      【讨论】:

      • 如果您将 gem 打包到供应商/缓存中,那么在部署时,您将为开发环境的架构打包 gem - 例如32位或OSX。如果您随后使用打包的 gem 部署到生产环境,您可能需要额外的版本。
      【解决方案3】:

      另一种解决方案是使用 nodejs 代替 therubyracer。您使用 apt-get/yum 将其安装在服务器上,因此您的 Gemfile 无需包含 execjs 或 therubyracer。

      【讨论】:

        【解决方案4】:

        我在从 x86 开发盒部署到 x86_64 服务器时遇到了类似的问题(使用 capistrano)

        当我进行部署时,我收到了相同的“在任何源中都找不到 libv8-3.3.10.4”消息。这是因为在 x86 机器上运行 'bundle pack' 只会将 x86 gem 复制到 /vendor/cache 目录中!

        我通过将linux x86_64 gem 文件显式添加到 /vendor/cache 目录来解决此问题,以便它与部署服务器架构一致。之后部署运行良好。

        【讨论】:

          【解决方案5】:

          您实际上可以在 Mavericks 上安装该版本:

          gem install libv8 -v 3.11.8.17 -- --with-system-v8

          你可以提供任何你想安装的 libv8 gem 版本..

          在此之后,您可能会遇到安装 therubyracer 的问题

          更新 Gemfile 的版本以指向最后一个版本,如下所示:

          gem "therubyracer", "~> 0.10.2"

          我能够成功安装 gem。

          如果要手动安装gem,可以使用:

          gem install therubyracer --version "~> 0.10.2"

          【讨论】:

            【解决方案6】:

            我通过安装 nodejs(最新版本)解决了这个问题。它的作用是安装 libv8 -dev 库。因此,您需要的是本机库,而不是安装 gem。

            您可以直接安装它,也可以在您的系统中安装nodejs,上述错误应该得到解决。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-09-09
              • 1970-01-01
              • 1970-01-01
              • 2020-05-25
              • 1970-01-01
              • 1970-01-01
              • 2012-09-11
              相关资源
              最近更新 更多