Problemas de caminho com uma instalação de origem

Problemas de caminho com uma instalação de origem

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 gemexecutável, então ele ainda está em /usr/local/bin/e aponta para o /usr/local/bin/rubyinté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 ~/binde que esteja antes /usr/local/binno seu arquivo PATH. (Como alternativa, se você tiver acesso root, poderá simplesmente executar novamente o ./configurescript 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 gemexecutável instalado ~/bin, você poderá fazê-lo simplesmente gem install railssem precisar do sudo. (Ou, se você optar pela instalação root em /usr/local/bin, certifique-se gemde que esteja em /usr/local/bin/geme execute sudo gem install rails, como tentou antes).

Possivelmente, uma abordagem melhor teria sido examinarrvmourbenv, 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.

informação relacionada