ok, isso é antigo, mas ainda acho relevante.
a saída que você colou não indica claramente o erro, mas meu sentimento é de que você encontrou um erro de permissão.
Estou fazendo estas suposições:
- seu ruby é instalado como pacote de sistema
- seu GEM_ROOT é / usr / local / lib / ruby / gems /
- você executa o comando gem install como um usuário comum.
você pode conceder acesso de gravação à sua pasta GEM_ROOT a um grupo de usuários específico
e faça com que seu usuário unix faça parte de um grupo. ou como a maioria das pessoas, use o sudo.
embora eu recomende contra install ruby via system package e gems como root. você vai acabar compilando código C por root que não é recomendado.
você deve ter seu usuário da web instalado rvm, dessa forma você pode ter vários ruby instalados diretamente em sua casa.
as gemas serão mais fáceis também.
então você configura seu apache / nginx para apontar para esses diretórios
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>