Domanda

Recentemente ho aggiornato a Ubuntu 9.04 e ho problemi con gemme. Ho installato Ruby, Rubygems e Rails con apt-get. Il comando rails funziona.

Ho poi installato Capistrano e altre gemme, come Heroku. Per fare questo, ho usato il comando:

sudo gem install XXX

Quando voglio usare il comando cap non funziona:

bash: cap: command not found

E 'lo stesso con gli altri comandi gemma.

Ho qualcosa di particolare da fare in modo che comanda la gemma lavoro?

È stato utile?

Soluzione

Dove sono i miei Gems?

È possibile trovare dove il vostro gemme sono memorizzati utilizzando il comando gem environment. Ad esempio:

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 si guardano le "SENTIERI GEM:" sezione si può vedere che le gemme possono essere memorizzati in due punti sul mio portatile:. /usr/lib/ruby/gems/1.8 o nella directory .gem nella mia casa dir

Si può anche vedere che gli eseguibili sono memorizzati in directory eseguibile che in questo caso è /usr/bin.

A causa /usr/bin è nel mio percorso questo mi permette di correre cap, merb, rails etc.

Aggiornamento del PATH

Se per qualche motivo la vostra directory eseguibile non è sul percorso (ad esempio se è /var/lib/gems/1.8/bin), allora è necessario aggiornare la variabile PATH.

Supponendo che si sta utilizzando la shell bash. È possibile farlo in fretta per la sessione corrente digitando quanto segue al prompt della shell; facciamo finta che si desidera aggiungere /var/lib/gems/1.8/bin al percorso:

export PATH=$PATH:/var/lib/gems/1.8/bin

e premere invio. Che aggiunge la nuova directory alla fine del percorso corrente. Nota i due punti tra il $PATH e /var/lib/gems/1.8/bin

Per impostare il valore per tutte le sessioni sarà necessario modificare sia il file .profile o .bashrc e aggiungere la stessa riga alla fine del file. Io di solito modifico il mio file .bashrc per nessun altro motivo che questo è quello che ho sempre fatto. Al termine, salvare il file e quindi aggiornare il vostro ambiente digitando:

bash

al prompt shell. Questo farà sì che il .bashrc per ottenere rileggere.

In qualsiasi momento è possibile controllare il valore corrente di $PATH digitando

echo $PATH

al prompt shell.

Ecco un esempio di uno dei miei propri server, in cui il mio nome utente è "Chris" e il nome della macchina è "Chris-portatile":

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:~$ 

Il mio Gem non verrà caricato!

" gemme del rubino non verranno caricati anche se installato " evidenzia un problema comune con più versioni diverse di rubino; A volte l'ambiente Gem e il percorso Gem ottenere fuori sincrono:

rb(main):003:0> Gem.path

=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit

Qualsiasi processo di Ruby qui è alla ricerca solo in un unico luogo per le sue gemme.

:~/$ 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/

Guardate attentamente l'uscita di ambiente gemma:

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

Questo non è lo stesso percorso restituito da Gem.path:

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

E 'difficile dire che cosa esattamente ha causato lib/ruby cambiare per lib/ruby1.9 ma molto probabilmente lo sviluppatore è stato lavorare con più versioni di Ruby. Un mv veloce o ln risolveranno il problema.

Se si ha bisogno di lavorare con più versioni di Ruby, allora si dovrebbe essere utilizzando rvm .

Altri suggerimenti

Come notato da @ Chris è necessario aggiungere l'ambiente gemme per il vostro percorso. È possibile effettuare questa operazione:

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

La cartella in cui gemme sono memorizzati deve essere sul vostro cammino, per esempio il mio è:

  

/home/victor/.gem/ruby/1.8/bin

Controlla il tuo percorso digitando

echo $PATH

Si seens che durante l'installazione RubyGems, ora in ubuntu 9.04, ho questo problema. Ho notato che in "ambiente gioiello" la directory eseguibile è "/var/lib/gems/1.8/bin", invece di "/ usr / bin" ... Questo è un problema con rubygems o con Ubuntu 9.04 ??

La soluzione che ho incontrato è di aggiungere "/var/lib/gems/1.8/bin" al mio $ PATH fare questo: export PATH = $ PATH: /var/lib/gems/1.8/bin Ma non si è salvato ... come posso salvare il mio percorso?

Grazie ...

Resolvi: coloquei o export PATH = $ PATH: /var/lib/gems/1.8/bin no ~ / .bashrc! =]

mkmf è parte del pacchetto ruby1.9.1-dev. Questo pacchetto contiene i file header necessari per le librerie di estensione per Ruby 1.9.1. È necessario installare il pacchetto ruby1.9.1-dev facendo:

sudo apt-get install ruby1.9.1-dev

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top