
você pode me ajudar a entender minha estrutura de pastas Ruby? Não entendo por que minhas joias estão espalhadas e por que não são comandos reconhecidos.
Vou explicar como é minha instalação primeiro:
/usr/bin/ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1
O primeiro é um link direto para ruby1.9.1 porque o comando "ruby" não funcionou no terminal. Fiz o mesmo com "gema". Instalei rubygems baixando, extraindo e executando setup.rb aqui: (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
Instalei algumas gems 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é agora tudo bem? Bem, não exatamente, pois o comando "versão da bússola" parece não existir. Minha confusão aumenta a cada pasta que examino. O caminho a seguir não faz sentido para mim, por exemplo. Por que estaria escondido? Por que o bigode é a única joia nesta pasta?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
Primeiro de tudo, aqui está o "ambiente gem", o que faz ainda menos sentido, porque eu definitivamente instalei o rubygems-1.7.2 como disse no primeiro parágrafo,mas aqui mostra uma versão antiga 1.3.7. Por que?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"........... Além disso, todas as gems estão instaladas nesta pasta (bigode também! mesmo que já esteja dentro da outra pasta) , assim como afirma o "ambiente Ruby":
/var/lib/gems/1.9.1/gems
Mas nenhuma dessas joias funciona. Não posso ligar para nenhum desses, exceto rake. Então foi aqui que provavelmente cometi o erro, acho que usei "apt-get install rake" além de "gem install rake", porque o comando "rake" não foi reconhecido e o prompt de comando o sugeriu. Talvez eu tenha feito isso com rubygems também... Sou novo no Linux e percebi que o prompt de comando sabia como instalar esse material corretamente.
.
Não pode ser normal eu ter que criar syslinks por toda parte, certo?No Windows não tive esse problema.
Responder1
Eu instalei o rvm, ainda não sei por que houve tanta bagunça, mas agora posso forçar facilmente uma determinada versão do Ruby e sei onde todas as gemas são instaladas. (no diretório rvm) Funciona para mim.
Responder2
Acho que o seu problema é instalar RubyGems
manualmente e não com o apt-get. Você possivelmente fez o mesmo ruby
ou está faltando um meta-pacote que inclui o link simbólico que você criou manualmente.
Esta também é a mesma razão pela qual /var/lib/gems/1.9.1/bin
o diretório onde estão todos os binários não está em seu $PATH. Portanto, você não consegue encontrar os executáveis para essas joias.
Ao atualizar do Ruby 1.8 para o Ruby 1.9.3, as gems instaladas com o Ruby 1.8 ainda estarão na pasta Ruby 1.8. Você possivelmente tem RubyGems instalado com uma versão Ruby diferente.
O caminho a seguir não faz sentido para mim, por exemplo. Por que estaria escondido? Por que o bigode é a única joia nesta pasta?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
Você obviamente instalou o bigode (sem sudo) com
gem install mustache
Isso o instala para o usuário e o diretório de instalação do usuário é $HOME/.gem/
. A pasta fica oculta para que você não a exclua acidentalmente. Talvez você precise 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
:
instalar pacotes através do apt-get-or-gem.