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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top