在 Centos 服务器上安装 Rails

在 Centos 服务器上安装 Rails

我正在尝试在 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

  1. 确保你拥有 Ruby1.9.2安装。Rails 3 需要 Ruby 1.8.7 或 1.9.2。Ruby-1.9.2 具有更好的性能。
  2. 使用“文件”来确定您下载的“gem”文件的类型
  3. 如果可能,请使用“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>

相关内容