Comment puis-je utiliser des gemmes avec Ubuntu?
-
05-09-2019 - |
Question
J'ai récemment mis à niveau vers Ubuntu 9.04 et j'avoir des problèmes à l'aide de pierres précieuses.
J'ai installé Ruby, Rails Rubygems et en utilisant apt-get.
La commande rails
fonctionne.
J'ai ensuite installé Capistrano et d'autres pierres précieuses, comme Heroku. Pour ce faire, je la commande:
sudo gem install XXX
Quand je veux utiliser la commande cap
il ne fonctionne pas:
bash: cap: command not found
Il est le même avec les autres commandes de pierres précieuses.
Dois-je quelque chose de particulier à faire pour que la gemme commandes travail?
La solution
Où sont mes gemmes?
Vous pouvez trouver où vos gemmes sont stockées à l'aide de la commande gem environment
. Par exemple:
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:
Si vous regardez les « GEM CHEMINS: » section, vous pouvez voir que les pierres précieuses peuvent être stockées dans deux endroits sur mon ordinateur portable. /usr/lib/ruby/gems/1.8
ou dans le répertoire .gem
dans mon répertoire personnel
Vous pouvez également voir que les exécutables sont stockés dans le répertoire qui EXÉCUTABLE dans ce cas est /usr/bin
.
Parce que /usr/bin
est dans mon chemin ce qui me permet d'exécuter cap
, merb
, rails
etc.
Mise à jour de votre PATH
Si pour une raison quelconque de votre répertoire est EXÉCUTABLE pas sur votre chemin (par exemple si elle est /var/lib/gems/1.8/bin) alors vous devez mettre à jour votre variable PATH.
En supposant que vous utilisez le shell bash. Vous pouvez le faire rapidement pour la session en cours en tapant ce qui suit à l'invite du shell; feignons que vous voulez ajouter /var/lib/gems/1.8/bin
au chemin:
export PATH=$PATH:/var/lib/gems/1.8/bin
et le retour de la presse. Ce nouveau répertoire Ajoute le à la fin du chemin courant. Notez les deux points entre $PATH
et /var/lib/gems/1.8/bin
Pour définir la valeur pour toutes les sessions, vous devrez modifier soit votre fichier .profile
ou .bashrc
et ajoutez la même ligne à la fin du fichier. J'édite habituellement mon fichier .bashrc
pour aucune autre raison que c'est ce que je l'ai toujours fait. Lorsque vous avez terminé, enregistrez le fichier, puis rafraîchir votre environnement en tapant:
bash
à l'invite du shell. Cela va provoquer le .bashrc
de se relire.
A tout moment, vous pouvez vérifier la valeur actuelle de $PATH
en tapant
echo $PATH
à l'invite du shell.
Voici un exemple d'un de mes propres serveurs, où mon nom d'utilisateur est « Chris » et le nom de la machine est « chris-ordinateur portable »:
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:~$
Mon Gem ne se charge pas!
" gemmes Ruby ne se charge pas, même si installé » met en évidence un problème commun en utilisant plusieurs versions différentes de Ruby; Parfois, l'environnement Gem et le chemin Gem désynchronisés:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
Tout processus Ruby ici est à la recherche que dans un seul endroit pour ses pierres précieuses.
:~/$ 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/
Regardez attentivement la sortie de l'environnement gemme:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Ce n'est pas le même chemin que retourné par Gem.path:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
Il est difficile de dire exactement ce que fait lib/ruby
changer à lib/ruby1.9
mais très probablement le développeur a travaillé avec plusieurs versions Ruby. Un mv
rapide ou ln
va résoudre le problème.
Si vous avez besoin de travailler avec plusieurs versions Ruby alors vous devriez vraiment être en utilisant RVM .
Autres conseils
Comme l'a noté @ Chris, vous devez ajouter l'environnement de pierres précieuses sur votre chemin. Vous pouvez le faire par:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
Le dossier dans lequel les pierres précieuses sont stockés doit être sur votre chemin, par exemple le mien est:
/home/victor/.gem/ruby/1.8/bin
Vérifiez votre chemin en tapant
echo $PATH
Il Seens que lors de l'installation rubygems, maintenant ubuntu 9.04, j'ai ce problème. J'ai remarqué que dans « l'environnement gem » le répertoire de l'exécutable est « /var/lib/gems/1.8/bin », au lieu de « / usr / bin » ... Ceci est un problème avec rubygems ou avec ubuntu 9.04 ??
La solution que je rencontrais est d'ajouter « /var/lib/gems/1.8/bin » à mon PATH faire cette $: export PATH = $ PATH: /var/lib/gems/1.8/bin Mais il ne le font pas est sauvé ... Comment puis-je sauver mon chemin?
Merci ...
Resolvi: o coloquei export PATH = $ PATH: /var/lib/gems/1.8/bin pas ~ / .bashrc! =]
mkmf fait partie du paquet ruby1.9.1-dev. Ce paquet contient les fichiers d'en-tête nécessaires pour les bibliothèques d'extension pour Ruby 1.9.1. Vous devez installer le paquet ruby1.9.1-dev en faisant:
ruby1.9.1-dev sudo apt-get install