Problemas de caminho com uma instalação de origem

2

Espero que meu título não seja confuso. Eu tenho uma máquina do CentOS 5 e eu tinha o Ruby 1.8.7 instalado aqui. Então, para atualizar minha instalação do Ruby e gems / rails I

  • Ruby desinstalado: sudo yum remove ruby

  • Baixou a última versão estável do ruby e o untarou: wget ... & & tar-zxf ....

  • Passou pela instalação normal:

    • ./ configure --prefix = $ HOME
    • fazer
    • sudo make install
  • Rubygems transferidos: wget ....

  • executou o arquivo de configuração : ruby setup.rb

Agora, meu problema é que, se eu tentar instalar rails, o que eu faço digitando: gem install rails , recebo a seguinte mensagem: "- bash: / usr / local / bin / gem: / usr / local / bin / ruby: intérprete incorreto: Permissão negada "

Então o próximo passo lógico (para mim) foi digitar: sudo gem install rails , mas isso retorna "sudo: gem: comando não encontrado" , o que significa Eu estraguei algo ricamente.

Apenas para adicionar mais algumas informações

whereis ruby : ruby: / usr / lib / ruby / usr / lib64 / ruby / usr / local / bin / ruby / usr / local / lib / ruby

qual ruby: ~ / bin / ruby

Estou pensando que instalando ruby manualmente a partir da fonte eu estraguei alguma coisa, talvez o --prefix = $ HOME seja o culpado aqui?

    
por mohsen 18.07.2012 / 16:02

1 resposta

1

Parece que você não desinstalou o pacote que fornece o executável gem , portanto ele ainda está em /usr/local/bin/ e aponta para o interpretador /usr/local/bin/ruby que não está mais presente.

Você pode desinstalar esse pacote (recomendado, já que também removeu o pacote do ruby do qual ele depende) ou apenas certificar-se de que ~/bin esteja antes de /usr/local/bin no seu PATH . (Como alternativa, se você tiver acesso root, poderá executar novamente o script ./configure sem especificar --prefix=${HOME} e permitir a instalação em /usr/local/bin , que é o padrão do Ruby.)

Depois de organizar as coisas para que seu shell encontre o executável gem instalado em ~/bin , você deve ser capaz de simplesmente gem install rails sem precisar de sudo . (Ou, se você optar pela instalação raiz em /usr/local/bin , certifique-se de que gem esteja em /usr/local/bin/gem e, em seguida, execute sudo gem install rails , como você tentou antes).

Possivelmente, uma abordagem melhor seria ver rvm ou rbenv , que tornam o gerenciamento de vários rubis uma tarefa bastante indolor. Usando qualquer uma dessas ferramentas, você pode ter várias versões do Ruby instaladas sem a necessidade de remover o sistema, o que pode ser necessário por outros pacotes no sistema.

    
por 18.07.2012 / 18:48