Caminhos de instalação de Ruby / gem espalhados por toda a causa?

1

você pode me ajudar a entender minha estrutura de pastas ruby? Eu não entendo porque minhas gemas estão espalhadas por toda parte e porque elas não são comandos reconhecidos.

Vou explicar como minha instalação se parece primeiro:

/ usr / bin / ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1

O primeiro é um link suave para ruby1.9.1 porque o comando "ruby" não funcionou no terminal. Eu fiz o mesmo com "gem". Eu instalei rubygems através de download, extração e executando o setup.rb aqui: (Eu criei a pasta "ruby")

/home/pc/ruby/rubygems-1.7.2/setup.rb

/ usr / bin / gem
/usr/bin/gem1.8
/usr/bin/gem1.9.1

Eu instalei algumas gemas com "sudo gem install"

> gem list

 *** LOCAL GEMS ***

 compass (0.10.6)
 haml (3.0.25)
 mustache (0.99.3)
 rake (0.8.7)

Até aí tudo bem? Bem, não é bem assim, como se vê, o comando "versão da bússola" parece não existir. Minha confusão cresce com cada pasta que eu olho. O caminho a seguir não faz sentido para mim, por exemplo. Por que isso seria escondido? Por que o bigode é a única jóia dentro desta pasta?

/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem

Primeiro de tudo, aqui está "ambiente gem", o que faz ainda menos sentido, porque eu definitivamente instalei o rubygems-1.7.2 como eu disse no primeiro parágrafo, mas aqui ele mostra uma versão antiga 1.3 .7. Por que? Eu instalei o Ubuntu anteontem.

  RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  - EXECUTABLE DIRECTORY: /var/lib/gems/1.9.1/bin
      - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.9.1
     - /home/pc/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

ruby --version retorna "ruby 1.8.7" ........... Também, como se constata, todas as gemas são instaladas nesta pasta (bigode também! Mesmo que já esteja dentro da outra pasta), assim como o "ambiente ruby" afirma:

/var/lib/gems/1.9.1/gems

Mas nenhuma dessas gemas funciona. Eu não posso chamar nada disso, exceto o rake. Então aqui é onde eu provavelmente cometi o erro, eu acho que usei o "apt-get install rake" além do "gem install rake", porque o comando "rake" não foi reconhecido, e o prompt de comando sugeriu isso. Eu posso ter feito isso com rubygems também ... Eu sou novo no Linux, e eu percebi que o prompt de comando sabia como instalar esse material corretamente.

.

Não pode ser normal que eu tenha que criar syslinks por inteiro, certo? No Windows, não me deparei com esse problema.

    
por Blub 11.04.2011 / 11:21

2 respostas

1

Instalei o rvm, ainda não sei por que houve uma bagunça, mas agora posso forçar uma certa versão do ruby facilmente, e sei onde todas as gemas são instaladas. (no diretório rvm) Funciona para mim.

    
por 11.04.2011 / 14:03
0

Eu acho que o seu problema é instalar RubyGems manualmente e não com o apt-get. Você possivelmente fez o mesmo com ruby ou está faltando um meta-pacote que inclui o link simbólico criado manualmente.

Esta é também a mesma razão pela qual /var/lib/gems/1.9.1/bin , o diretório onde todos os binários são não está no seu $ PATH. Então você não pode encontrar os executáveis para essas gemas.

Quando você atualiza do Ruby 1.8 para o Ruby 1.9.3, as gemas instaladas com o Ruby 1.8 ainda estarão na pasta Ruby 1.8. Você possivelmente tem o RubyGems instalado com uma versão diferente do Ruby.

The following path doesn't make any sense to me, for example. Why would it be hidden? Why is mustache the only gem inside this folder?

/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem

Você obviamente instalou bigode (sem sudo) com

gem install mustache

Isso é instalado para o usuário e o diretório de instalação do usuário é $HOME/.gem/ . A pasta está oculta para que você não a apague acidentalmente. Você pode ter que adicionar isso ao seu $ PATH (ou instalar com --no-user-install )

solução:

Não basta baixar e instalar RubyGems (e ruby) manualmente. Use seu gerenciador de pacotes ( aptitude )

Depois, você pode decidir se deseja instalar gems com aptitude ou gem install : install-packages-through-apt-get-or-gem .

    
por 22.12.2012 / 19:59