
Espero que meu título não seja confuso. Eu tenho uma máquina CentOS 5 e Ruby 1.8.7 instalado aqui. Então, para atualizar minha instalação Ruby e gems/Rails eu
Ruby desinstalado:sudo yum remover rubi
Baixei a última versão estável do Ruby e descompactei-a:wget... && tar -zxf ....
Passou pela instalação normal:
- ./configure --prefix=$HOME
- fazer
- sudo make install
Rubygems baixadas:entendi....
executei o arquivo de configuração: ruby setup.rb
Agora, meu problema é que, se eu tentar instalar o Rails, o que faço digitando:gem instalar trilhos, recebo a seguinte mensagem:"-bash: /usr/local/bin/gem: /usr/local/bin/ruby: intérprete incorreto: permissão negada"
Então o próximo movimento lógico (para mim) foi digitar:sudo gem instalar trilhos, mas isso retorna"sudo: gem: comando não encontrado", o que significa que estraguei algo regiamente.
Apenas para adicionar mais algumas informações
onde está o rubi:rubi: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby
qual rubi: ~/bin/rubi
Estou pensando que ao instalar o Ruby manualmente a partir do código-fonte eu estraguei alguma coisa, talvez o --prefix=$HOME seja o culpado aqui?
Responder1
Parece que você não desinstalou o pacote que fornece o gem
executável, então ele ainda está em /usr/local/bin/
e aponta para o /usr/local/bin/ruby
intérprete que não está mais presente.
Você pode desinstalar esse pacote (recomendado, já que você também removeu o pacote Ruby do qual ele depende) ou apenas certificar-se ~/bin
de que esteja antes /usr/local/bin
no seu arquivo PATH
. (Como alternativa, se você tiver acesso root, poderá simplesmente executar novamente o ./configure
script sem especificar --prefix=${HOME}
e deixá-lo instalar em /usr/local/bin
, que é o padrão do Ruby.)
Depois de organizar as coisas para que seu shell encontre o gem
executável instalado ~/bin
, você poderá fazê-lo simplesmente gem install rails
sem precisar do sudo
. (Ou, se você optar pela instalação root em /usr/local/bin
, certifique-se gem
de que esteja em /usr/local/bin/gem
e execute sudo gem install rails
, como tentou antes).
Possivelmente, uma abordagem melhor teria sido examinarrvm
ourbenv
, sendo que ambos tornam o gerenciamento de vários rubis uma tarefa bastante simples. Usando qualquer uma dessas ferramentas, você pode ter várias versões do Ruby instaladas sem a necessidade de remover a versão do sistema, que pode ser necessária para outros pacotes no sistema.