Come faccio a usare le gemme con Ubuntu?
-
05-09-2019 - |
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?
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