我正在尝试在 AWS 上的 centos 服务器上安装 ruby on rails。我无法在服务器上安装 rails。它给出了一些错误。以下是我在安装 rails 时得到的结果。
#gem install rails
ERROR: Error installing rails:
gzip error installing /usr/local/lib/ruby/gems/1.8/cache/activesupport-3.0.8.gem
答案1
- 确保你拥有 Ruby1.9.2安装。Rails 3 需要 Ruby 1.8.7 或 1.9.2。Ruby-1.9.2 具有更好的性能。
- 使用“文件”来确定您下载的“gem”文件的类型
- 如果可能,请使用“rvm”来安装和管理 Ruby、Rails 和其他 gem。警告:AWS 上的编译速度很慢。
答案2
在 SO 上安装 zlib-devel 包并重新编译你的 ruby 版本
答案3
好吧,这很古老,但我认为仍然相关。
您粘贴的输出没有清楚地说明错误,但我的感觉是您遇到了权限错误。
我做了这些假设: - 您的 ruby 作为系统包安装 - 您的 GEM_ROOT 是 /usr/local/lib/ruby/gems/ - 您以普通用户身份运行 gem install 命令。
您可以向特定用户组授予对 GEM_ROOT 文件夹的写权限,并让您的 unix 用户成为其中一个组的一部分。或者像大多数人一样,使用 sudo。
尽管我不建议以 root 身份通过系统包和 gems 安装 ruby。但您最终会以 root 身份编译 C 代码,这是不推荐的。
您应该让您的网络用户安装 rvm,这样您就可以直接在他的主目录中安装多个 ruby。gems 也会更容易。
然后配置你的 apache/nginx 指向这些目录
Define RVM_ROOT /usr/local/rvm/gems
Define RVM_WRAPPERS /usr/local/rvm/wrappers
Define RUBY_23 ruby-2.3.7
Define RUBY_24 ruby-2.4.2
Define APACHE_ETC /etc/httpd
Define PASSENGER_RUBY ruby-2.4.2
Define PASSENGER_VERSION 5.1.10
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.4.2/gems/passenger-5.1.10/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot ${RVM_ROOT}/${PASSENGER_RUBY}/gems/passenger-${PASSENGER_VERSION}
PassengerDefaultRuby ${RVM_WRAPPERS}/${PASSENGER_RUBY}/ruby
PassengerLogLevel 1
</IfModule>
<VirtualHost *:443>
DocumentRoot "/opt/www/app/public"
# Turn on Passenger
PassengerEnabled on
PassengerAppRoot /opt/www/app
PassengerLogLevel 2
PassengerLogFile /var/log/passenger.log
PassengerAppEnv production
PassengerPreStart https://app.com
SetEnv GEM_HOME ${RVM_ROOT}/ruby-2.4.2
SetEnv GEM_PATH ${RVM_ROOT}/ruby-2.4.2:${RVM_ROOT}/ruby-2.4.2@global
PassengerRuby ${RVM_ROOT}/ruby-2.4.2/wrappers/ruby
RailsEnv production
</VirtualHost>