Como faço para usar gemas com o Ubuntu?
-
05-09-2019 - |
Pergunta
Eu recentemente atualizado para o Ubuntu 9.04 e não tenho problemas usando pedras preciosas.
Eu instalei o Ruby, Rubygems e Rails usando o apt-get.
O comando rails
funciona.
Eu então instalado Capistrano e outras pedras preciosas, como heroku. A fim de fazer isso, eu usei o comando:
sudo gem install XXX
Quando eu quero usar o comando cap
ele não funciona:
bash: cap: command not found
É o mesmo com os outros comandos gem.
Eu tenho algo especial a fazer para que a gema comandos trabalho?
Solução
Onde estão meus Gems?
Você pode encontrar onde suas gemas são armazenados usando o comando gem environment
. Por exemplo:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
Se você olhar para as "jóia caminhos:" seção, você pode ver que as gemas podem ser armazenados em dois lugares no meu laptop:. /usr/lib/ruby/gems/1.8
ou no diretório .gem
em minha dir home
Você também pode ver que os executáveis ??são armazenados em EXECUTABLE DIRETÓRIO que neste caso é /usr/bin
.
Porque /usr/bin
está no meu caminho esta me permite executar cap
, merb
, rails
etc.
Atualizando seu PATH
Se por algum motivo o seu EXECUTABLE diretório não está no seu caminho (por exemplo, se é /var/lib/gems/1.8/bin), então você precisa atualizar sua variável PATH.
Assumindo que você está usando o shell bash. Você pode fazer isso rapidamente para a sessão atual, digitando o seguinte no shell rápido; Vamos fingir que você deseja adicionar /var/lib/gems/1.8/bin
para o caminho:
export PATH=$PATH:/var/lib/gems/1.8/bin
e pressione retorno. Isso acrescenta o novo diretório para o fim do caminho atual. Nota do cólon entre $PATH
e /var/lib/gems/1.8/bin
Para definir o valor para todas as sessões você terá que editar quer seu arquivo .profile
ou .bashrc
e adicionar a mesma linha ao final do arquivo. Eu costumo editar meu arquivo .bashrc
por nenhum outro do que isso é o que eu sempre fiz razão. Quando terminar, salve o arquivo e, em seguida, atualizar seu ambiente, digitando:
bash
no shell rápida. Isso fará com que o .bashrc
para obter reler.
A qualquer momento você pode verificar o valor atual de $PATH
digitando
echo $PATH
no shell rápida.
Aqui está um exemplo de um dos meus próprios servidores, onde o meu nome de usuário é "chris" e o nome da máquina é "chris-laptop":
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
My Gem não irá carregar!
" Ruby não irá carregar, embora instalado " destaca um problema comum usando várias versões diferentes de rubi; Às vezes, o ambiente Gem e caminho Gem ficar fora de sincronia:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
Qualquer processo Rubi aqui está olhando apenas em um lugar para seus Gems.
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Olhe atentamente para a saída do ambiente gem:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Este não é o mesmo caminho como retornado por Gem.path:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
É difícil dizer o que exatamente causou lib/ruby
à mudança para lib/ruby1.9
mas muito provavelmente o desenvolvedor estava trabalhando com várias versões Ruby. A mv
rápido ou ln
vai resolver o problema.
Se você precisa trabalhar com várias versões de Ruby, então você realmente deve estar usando rvm .
Outras dicas
Como observado por @ Chris você precisa adicionar o ambiente de pedras preciosas para seu caminho. Você pode fazer isso:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
A pasta na qual gemas são armazenados deve estar no seu PATH, por exemplo a minha é:
/home/victor/.gem/ruby/1.8/bin
Verifique se o seu caminho digitando
echo $PATH
É seens que ao instalar rubygems, agora em ubuntu 9.04, eu tenho este problema. Notei que no "ambiente gem" o diretório executável é "/var/lib/gems/1.8/bin", em vez de "/ usr / bin" ... Este é um problema com rubygems ou com o Ubuntu 9.04 ??
A solução que encontrei é adicionar "/var/lib/gems/1.8/bin" ao meu $ PATH fazer isso: export PATH = $ PATH: /var/lib/gems/1.8/bin Mas não é salvo ... Como posso salvar o meu caminho?
Obrigado ...
resolvi: coloquei o export PATH = $ PATH: /var/lib/gems/1.8/bin não ~ / .bashrc! =]
MKMF é parte do pacote ruby1.9.1-dev. Este pacote contém os arquivos de cabeçalho necessários para bibliotecas de extensão para Ruby 1.9.1. Você precisa instalar o pacote ruby1.9.1-dev fazendo:
sudo apt-get install ruby1.9.1-dev