Mais um dos milhares e milhares de tutoriais de como instalar, mas as vezes é muito dificil de encontrar um que mostre tudo junto.
Primeiramente deve-se instalar o Ruby e os programas necessários:
sudo apt-get install gcc g++ build-essential zlib1g zlib1g-dev
sudo apt-get install -y ruby1.8 ri1.8 rdoc1.8 rake irb1.8
Deve-se criar os links simbólicos para os executaveis, com os comandos:
cd /usr/bin sudo ln -s ruby1.8 ruby sudo ln -s ri1.8 ri sudo ln -s rdoc1.8 rdoc sudo ln -s irb1.8 irb
Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
ruby -v
Agora deve-se instalar o gerenciador de pacotes para o ruby o RubyGems.
Para isso pode-se utilizar-se do comando:
sudo apt-get install rubygems
ou então baixar o pacote mais atual do site e instalá-lo, isso é mais recomendável de se fazer.
E pode ser feito de uma maneira automatizada com os comandos:
LINK=$(wget -qO - http://rubyforge.org/frs/?group_id=126 |grep "rubygems-" -m 1 | sed 's/.*href="//g'| sed 's/".*//g') VERSION=$(echo $LINK | sed 's/.*rubygems-//g' | sed 's/.t.*//g') wget http://rubyforge.org$LINK ARQ=$(echo $LINK |sed 's/.*rubygems-//g' ) tar -xvzf rubygems-$ARQ cd rubygems-$VERSION sudo ruby setup.rb cd /usr/bin sudo ln -s gem1.8 gem
Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
gem -v
Com isso se tem todo o ruby pronto para produção, porém está faltando agora o Rails e o Passenger. Para instalar o rails utiliza-se do gerenciador de pacotes RubyGems com o seguinte comando:
sudo gem install rails
Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
rails -v
Instalação do Passenger
Agora deverá ser instalado algumas dependencias dele:
sudo apt-get install -y apache2-mpm-prefork apache2-prefork-dev libapr1-dev libopenssl-ruby libopenssl-ruby1.8 libssl-dev libssl0.9.8 g++ ruby1.8-dev
E para então instalar o passenger com o RubyGems
sudo gem install passenger
Agora ele está instalado, porém ainda falta instalar o modulo dele do apache.
Deve-se definir duas constantes antes de iniciar a instalação do módulo, são elas HTTPD e APXS2, ulilizando o comando :
export HTTPD=/pasta/do/httpd export APXS2=/pasta/do/apxs2
No Ubuntu 8.04 e provavelmente nas versões anteriores o httpd é chamado de apache2ctl, abaixo segue o comando com a pasta padrões já inseridas.
export HTTPD=/usr/sbin/apache2ctl export APXS2=/usr/bin/apxs2
Após definir as constantes instale o modulo apache do passenger utilizando o comando:
sudo passenger-install-apache2-module
Agora o modulo apache do passenger está instalado, faltando apenas a configuração final.
Abre-se o arquivo apache.conf ou o http.conf, no Ubuntu esses arquivos ficam no diretório /etc/apache2, e como dica utilize o arquivo http.conf, pois este até então está vazio.
Insira as seguintes linhas no arquivo:
LoadModule passenger_module /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado/ext/apache2/mod_passenger.so PassengerRoot /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado PassengerRuby /pasta/do/executavel/ruby1.8
No caso do ubuntu as linhas ficaram:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/bin/ruby1.8
Ainda no mesmo arquivo adicione a seguinte linha:
RailsEnv MODO_DE_EXECUÇÃO
O MODO_DE_EXECUÇÃO deve ser subistituido por:
production #Caso o aplicativo rails já será utilizado para produção
development #Caso o aplicativo ainda esteja em desenvolvimento
Agora faltam somente 2 passos para que sua aplicação rails possa funcionar perfeitamente.
Caso queira que o rails rode um subdiretorio do / do apache altere o arquivo sites-enabled/default do apache a seguinte linha dentro do virtualhosts:
RailsBaseURI /subdiretorio
E faça um link simbólico da pasta public da sua aplicação rails para a pasta / do apache em alguns casos ela fica no /var/www.
cd /pasta/do/root/do/apache ln -s /pasta/da/sua/app/public subdiretorio
Salve o arquivo.
E finalizando, reinicie o apache com o comando:
sudo apache2ctl restart
E agora é só desenvolver suas aplicações em rails.
Agradeço pela visita, qualquer erro é só falar.

Muito bom o artigo, parabéns pela ajuda…
e abusando da boa vontade … (Preciso programar em Rails e não
consigo nem instalar o ruby direito… ;-\)
Após instalar o ruby 1.8.7 patch level 22 no ubuntu 8.04 hardy
me occoreu o seguinte erro ao instalar a gem 1.2:
xyz@xyz: /usr/local/src/rubygems-1.2.0$ sudo ruby setup.rb
/lib/rubygems/spec_fetcher.rb:1:in `require’: no such file to load –
zlib (LoadError)
Primeiro instalei compilando os fontes:
sudo apt-get install gcc g++ build-essential
cd /usr/src
sudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p22.tar.bz2
sudo tar -jxvf ruby-1.8.7-p22.tar.bz2
cd /ruby-1.8.7-p22
sudo ./configure
sudo make
sudo make install
ruby -v
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-linux]) …ok
cd /usr/src
sudo wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
sudo tar -zxvf rubygems-1.2.0.tgz
cd rubygems-1.2.0
sudo ruby setup.rb
erro…
Depois eu tentei instalar o ruby de diversas formas diferentes incluindo as
bibliotecas libz também.
sudo apt-get install ruby rdoc ri irb libyaml-ruby libzlib-ruby ri ruby1.8-dev
sudo apt-get install ruby rubygems irb ri rdoc ruby1.8-dev build-essential
sudo apt-get install -y ruby1.8 ri1.8 rdoc1.8 rake irb1.8
A cada nova instalação do ruby eu tentei instalar o rubygems 1.2 direto
dos fontes como fiz na primeira vez, então o mesmo erro ocorreu, daí refiz
o processo de remoção e instalação dos pacotes novamente.
Depois descobri que o meu Ruby está “desinstalável”….rsss
Após tentar os comandos abaixo…
sudo apt-get remove ruby libruby libruby1.8 ruby1.8 irb rdoc ri
sudo aptitude remove ruby
sudo dpkg –list | grep ruby, dpkg -r
pelo Synaptic também removi as bibliotecas relacionadas
.. e nada
após um ruby -v
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-linux]) !!!!
Como eu posso resolver isto? Já enfrentou este problema?
se vc puder me ajudar fico muito grato!
Ruby sem gems não dá…rsssss
Quero programar Rails no Ubuntu!
Dizem que é fácil, mas como diria o capitão nascimento
“quem disse que a vida é fácil”
Obrigado pela atenção.
Att.
Bruno
Respondendo a sua pergunta…
O que ocorreu é que quando você compilou o ruby o zlib não estava instalado, para solucionar seu problema faça o seguinte.
Verifique se os pacotes abaixo estão instalados:
zlib1g,zlib1g-dev
sudo apt-get install zlib1g zlib1g-dev
Então, será preciso remover o ruby e compilar ele novamente, e no caso a remoção tem de ser manual.
Ao contrario das outras versões ele não fica mais em /usr/lib/ruby … a versão 1.8.7 fica na pasta /usr/local/lib/ruby
então rode o comando, sem medo
sudo rm -rf /usr/local/lib/ruby
e faça novamente o procedimento de compliação que você postou acima…Lembrando que você vai ter de extrair novamente os aquivos e compilar novamente.
sudo tar -jxvf ruby-1.8.7-p22.tar.bz2
cd /ruby-1.8.7-p22
sudo ./configure
sudo make
sudo make install
e depois
sudo wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
sudo tar -zxvf rubygems-1.2.0.tgz
cd rubygems-1.2.0
sudo ruby setup.rb
Comigo funcionou…
Espero ter ajudado
Danilo, muito obrigado pela sua ajuda!
Resolveu, perfeito!
Te devo uma Erdinger!
[]‘s
[...] Probelmas com o ruby + openssl 28-10-2008 Hoje fui testar os passos que comentei em outro post que fiz no ubuntu 8.04, no ubuntu 8.10, pra verificar se estavam [...]
valeu, funcionou perfect !
Eu tentei seu tutorial em uma instalação zerada do Ubuntu Server 8.10.
Só ficou faltando colocar aí um passo nas dependências; precisei instalar o build-essentials que era necessário para se gerar as extensões nativas que o passenger pedia
Tirando isso, o resto foi tranquilo!
Bom post, muito obrigado!
Acabei esquecendo do build-essentials… vou atualizar
valeu..
Fiz todos os passos no ubuntu 8.10 porem quando inicio a aplicação o passenger volta um erro:
Error message:
No such file or directory – /nonexistent
Application root:
/var/www/teste
Backtrace:
# File Line Location
0 /usr/local/lib/site_ruby/1.8/rubygems.rb 723 in `initialize’
1 /usr/local/lib/site_ruby/1.8/rubygems.rb 723 in `new’
2 /usr/local/lib/site_ruby/1.8/rubygems.rb 723 in `set_paths’
3 /usr/local/lib/site_ruby/1.8/rubygems.rb 719 in `each’
4 /usr/local/lib/site_ruby/1.8/rubygems.rb 719 in `set_paths’
5 /usr/local/lib/site_ruby/1.8/rubygems.rb 526 in `path’
6 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb 66 in `installed_spec_directories’
7 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb 56 in `from_installed_gems’
8 /usr/local/lib/site_ruby/1.8/rubygems.rb 736 in `source_index’
9 /usr/local/lib/site_ruby/1.8/rubygems.rb 140 in `activate’
10 /usr/local/lib/site_ruby/1.8/rubygems.rb 49 in `gem’
11 /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb 226 in `establish_connection’
12 /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb 216 in `establish_connection’
13 /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb 209 in `establish_connection’
14 /usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/initializer.rb 332 in `initialize_database’
15 /usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/initializer.rb 120 in `process’
16 /usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/initializer.rb 93 in `send’
17 /usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/initializer.rb 93 in `run’
18 ./config/environment.rb 13
19 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require’
20 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb 31 in `require’
21 /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb 509 in `require’
22 /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb 354 in `new_constants_in’
23 /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb 509 in `require’
24 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/application_spawner.rb 254 in `preload_application’
25 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/application_spawner.rb 214 in `initialize_server’
26 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/utils.rb 179 in `report_app_init_status’
27 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/application_spawner.rb 203 in `initialize_server’
28 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 166 in `start_synchronously’
29 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 135 in `start’
30 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 112 in `fork’
31 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 112 in `start’
32 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/application_spawner.rb 179 in `start’
33 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/framework_spawner.rb 270 in `handle_spawn_application’
34 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/framework_spawner.rb 263 in `synchronize’
35 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/framework_spawner.rb 263 in `handle_spawn_application’
36 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 317 in `__send__’
37 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 317 in `main_loop’
38 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 168 in `start_synchronously’
39 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 135 in `start’
40 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 112 in `fork’
41 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 112 in `start’
42 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/railz/framework_spawner.rb 87 in `start’
43 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/spawn_manager.rb 218 in `spawn_rails_application’
44 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/spawn_manager.rb 213 in `synchronize’
45 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/spawn_manager.rb 213 in `spawn_rails_application’
46 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/spawn_manager.rb 122 in `spawn_application’
47 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/spawn_manager.rb 247 in `handle_spawn_application’
48 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 317 in `__send__’
49 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 317 in `main_loop’
50 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/lib/passenger/abstract_server.rb 168 in `start_synchronously’
51 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/bin/passenger-spawn-server 46
Olá
Tente reiniciar o mod_rails, e o apache novamente.
Uma coisa que pode ter originado isso…
Caso você tenha esquecido do RailsEnv, caso tenha colocado tente colocar me modo de desenvolvimento ou produção pelo RAILS_ENV no enviroment.rb.
Danilo!
Descomentei a linha do enviroment.erb, e ja tinha colocado o RailsEnv no http.conf, porem continua dando o mesmo erro.
Eu estou usando o ultima versao passenger 2.0.5 e e esta usando o 2.0.3, será que pode ser isso?
Bem para fins de Exoscisação do problema e formatei a maquina coloquei o ubuntu 8.10 server e apos executei o seu tutorial novamente passo a passo, e no fim apareceu o mesmo erro! Ja estou ficando preocupado.
Outro dia eu montei outro servidor e usei seu tutorial e funciono certinho.
Porem nesse servidor o erro acima descrito persiste!!
Bem aguardo ajuda, obrigado pela atenção
Olá
Pelo que verifiquei, o problema é que ele não está encontrando ou podendo ler uma pasta que está especificada no Gem.user_home
Faça o seguinte abra o irb e digite as seguintes linhas:
require “rubygems”
Gem.user_home
É para aparecer uma pasta, verifique se ela existe e as permissões dela.
Parabéns pelo Post, meu ajudou muito!
[...] possuir o passenger já funcionando em sua maquina (caso não tenha instalado ainda veja este tutorial), e obviamente ter o webmin instalado. Crie um o arquivo vazio chamado rails.conf na pasta [...]
[...] + GTK. Primeiro é necessário ter instalado o Ruby ( caso não tenha ele instalado veja o tutorial Aqui ) e o [...]