我想在debian squeeze服务器上构建passenger-3.0.19 apache2模块。在以root身份调用passenger-install-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不起作用(对于完整的堆栈跟踪)。
答案 0 :(得分:5)
我从git repository使用了最新的乘客版本(实际上是4.0.0.rc4)并创建了一个gem。使用这个宝石工作得很好。
git clone https://github.com/FooBarWidget/passenger.git
cd passenger
gem build passenger.gemspec
gem install passenger-*.gem
之后,您可以使用passenger-install-apache2-module构建apache2插件。
答案 1 :(得分:4)
我有一个类似的环境(乘客3.0.9,Ruby 1.8.7),我通过降级rubygems解决了这个问题。
最新的稳定RVM将安装rubygems v(2+)。我降级到rubygems v(1.6.2),重新安装了乘客宝石,问题就消失了。
在RVM环境中,命令为gem update --system 1.6.2
1.8y版本的rubygems也可以,但它会对你所做的每件事都抛出太多的弃用警告。
答案 2 :(得分:2)
如果您正在运行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版本 配置/橡胶/的橡胶ruby.yml 强>
ruby_version: 2.0.0-p247
答案 3 :(得分:1)
我几分钟前回答了一个类似的问题:Passenger: cannot load such file rubygems/builder
基本上是Ruby 2.0的一个问题。我在那里提供了一个可能的解决方案(从github评论中提取)。
如果您没有使用Ruby 2.0,那么您可能需要执行:gem install builder
答案 4 :(得分:0)
确保你有zlibc。
sudo apt-get install zlibc zlib1g zlib1g-dev
然后重新安装或重新编译ruby。
答案 5 :(得分:0)
有完全相同的问题。在Amazon Linux上,以下工作正常:
gem install passenger && passenger-install-apache2-module
运行'gem install passenger'将最新版本添加到系统中。也删除了旧的:
#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
答案 6 :(得分:0)
我有同样的问题。要解决这个问题,我不得不降级rubygems包。我的配置是passenger 3.0.2
和rubygems 1.3.7
。