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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top