【问题标题】:Building passenger apache2 module: no such file to load -- rubygems builder构建乘客 apache2 模块:没有要加载的文件 -- ruby​​gems builder
【发布时间】:2013-02-20 10:44:33
【问题描述】:

我想在 debian 挤压服务器上构建乘客 3.0.19 apache2 模块。以 root 身份调用乘客安装 apache2-module 后,我收到以下错误消息:

Compiling and installing Apache 2 module...
cd /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19
/usr/bin/ruby1.8 /usr/bin/rake apache2:clean apache2 RELEASE=yes
# /usr/bin/ruby1.8 /usr/bin/rake apache2:clean apache2 RELEASE=yes
rake aborted!
no such file to load -- rubygems/builder

问题出在哪里?我怎样才能解决这个问题?使用passenger-install-apache2-module --trace 不起作用(对于完整的堆栈跟踪)。

【问题讨论】:

  • 你在使用 Ruby 2.0 吗?
  • 我正在使用来自 debian repo 的 ruby​​ 1.8:ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
  • 为什么使用 1.8?它很慢并且缺乏功能

标签: ruby rubygems apache2 passenger


【解决方案1】:

我使用来自 git 存储库的最新乘客版本(实际上是 4.0.0.rc4)并创建了一个 gem。使用这个 gem 效果很好。

git clone https://github.com/FooBarWidget/passenger.git
cd passenger
gem build passenger.gemspec
gem install passenger-*.gem

之后,您可以使用passenger-install-apache2-module 构建apache2 插件。

【讨论】:

  • 当我使用其他路径安装从源代码安装 Apache、PHP、Ruby 时,这对我有用
  • 与其手动克隆,可以直接调用gem install passenger --pre安装4.0.0.rc4。 source
【解决方案2】:

我有一个类似的环境(乘客 3.0.9,Ruby 1.8.7),我通过降级 ruby​​gems 解决了这个问题。

最新的稳定版 RVM 将安装 ruby​​gems v(2+)。我降级到 ruby​​gems v(1.6.2),重新安装了乘客 gem,问题就消失了。

在 RVM 环境中,命令为 gem update --system 1.6.2

1.8.x 版的 ruby​​gems 也可以使用,但它会在您所做的所有事情上引发过多的弃用警告。

【讨论】:

    【解决方案3】:

    几分钟前我在这里回答了一个类似的问题:Passenger: cannot load such file rubygems/builder

    本质上是 Ruby 2.0 的一个问题。我在那里提供了一个可能的解决方案(摘自 github 评论)。

    如果您没有使用 Ruby 2.0,那么您可能需要这样做:gem install builder

    【讨论】:

    • 我正在使用来自 debian 压缩存储库的 ruby​​ 1.8:ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] - gem install builder 没有帮助
    • @whitenexx 从 Rubygems 2.x 降级到较低版本应该可以解决 Ruby 1.8 上的问题
    【解决方案4】:

    如果你运行的是 Ruby 2

    编辑文件 config/rubber/rubber-passenger.yml

    换行

    passenger_version: 3.0.19
    

    passenger_version: 4.0.35 # works fine with 4.0.35 but you can try a newer version
    

    记得检查 Ruby 版本 config/rubber/rubber-ruby.yml

    ruby_version: 2.0.0-p247
    

    【讨论】:

    • 但是警告:“在 RC 2 公告中,我们只是声称我们在 Ruby 2.0.0 本身中遇到了很多错误(例如这个),因此我们不建议使用 Ruby 2.0.0。这些错误与 Phusion Passenger 无关。Phusion Passenger 支持 Ruby 2.0.0,无论 Ruby 2.0.0 有什么错误。来自乘客常见问题。
    【解决方案5】:

    确保你有 zlibc。

    sudo apt-get install zlibc zlib1g zlib1g-dev

    然后重新安装或重新编译 ruby​​。

    【讨论】:

      【解决方案6】:

      遇到了完全相同的问题。在 Amazon Linux 上,以下工作正常:

      gem install passenger && passenger-install-apache2-module
      

      运行“宝石安装乘客”将最新版本添加到系统中。也删除了旧的:

      #gem list passenger
      
      *** LOCAL GEMS ***
      passenger (4.0.10, 3.0.19)
      
      #gem uninstall passenger
      
      Select gem to uninstall:
       1. passenger-3.0.19
       2. passenger-4.0.10
       3. All versions
      > 1
      Successfully uninstalled passenger-3.0.19
      

      【讨论】:

        【解决方案7】:

        我有同样的问题。为了解决这个问题,我不得不降级 ruby​​gems 包。我的配置是passenger 3.0.2rubygems 1.3.7

        【讨论】:

          猜你喜欢
          • 2013-02-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多