76 votes

Comment utiliser des gemmes avec Ubuntu ?

J'ai récemment mis à niveau vers Ubuntu 9.04 et j'ai des problèmes à l'aide de pierres précieuses. J'ai installé Ruby, Rubygems et les Rails à l'aide de apt-get. L' rails commande fonctionne.

J'ai ensuite installé capistrano et d'autres pierres précieuses, telles que heroku. Pour ce faire, j'ai utilisé la commande:

sudo gem install XXX

Lorsque je veux utiliser l' cap commande ne fonctionne pas:

bash: cap: command not found

C'est la même chose avec l'autre gemme de commandes.

Puis-je avoir quelque chose de particulier à faire pour que le gem commandes de travail?

138voto

Chris McCauley Points 9764

Où sont mes Joyaux?

Vous pouvez trouver où vos pierres sont stockées à l'aide de l' gem environment commande. 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 la "GEMME CHEMINS:" section, vous pouvez voir que les gemmes peuvent être stockées à deux endroits sur mon portable: /usr/lib/ruby/gems/1.8 ou dans l' .gem répertoire dans mon répertoire home.

Vous pouvez également voir que les exécutables sont stockés dans le RÉPERTOIRE EXÉCUTABLE qui dans ce cas est - /usr/bin.

Parce qu' /usr/bin est dans mon chemin, cela me permet d'exécuter cap, merb, rails etc.

Mise à jour de votre CHEMIN

Si, pour quelque raison que votre RÉPERTOIRE EXÉCUTABLE n'est pas sur votre chemin (par exemple si elle est /var/lib/gems/1.8/bin) puis vous devez mettre à jour votre variable d'environnement PATH.

En supposant que vous utilisez le shell bash. Vous pouvez le faire rapidement pour la session en cours en tapant le texte suivant à l'invite du shell; imaginons que vous souhaitez ajouter /var/lib/gems/1.8/bin le chemin:

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

et appuyez sur la touche retour. Qui ajoute le nouveau répertoire à la fin du chemin d'accès actuel. Notez la virgule entre $PATH et /var/lib/gems/1.8/bin

Pour définir la valeur pour toutes les séances, vous aurez besoin de modifier votre .profile ou .bashrc le fichier et ajouter la même ligne à la fin du fichier. J'ai l'habitude de modifier mon .bashrc le fichier pour aucune autre raison que c'est ce que j'ai toujours fait. Lorsque vous avez terminé, enregistrez le fichier, puis actualisez votre environnement en tapant:

bash

à l'invite du shell. Qui sera la cause de la .bashrc pour obtenir relire.

Vous pouvez à tout moment vérifier la valeur actuelle de l' $PATH en tapant

echo $PATH

à l'invite du shell.

Voici un exemple de l'un de mes propres serveurs, où mon nom d'utilisateur est "chris" et le nom de la machine est "chris-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 Bijou ne se charge pas!

"Les gems Ruby ne se charge pas, même si installé", souligne un problème commun à l'aide de plusieurs différentes versions de Ruby; Parfois, le Joyau de l'environnement et de Gem chemin sortir de la synchronisation:

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

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

Toute Ruby processus ici est à la recherche à 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 la gemme de l'environnement:

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

Ce n'est pas le même chemin que celui retourné par le Gem.chemin d'accès:

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

Il est difficile de dire ce qu'est exactement causé lib/ruby de changement lib/ruby1.9 , mais plus probablement le développeur a été de travailler avec de multiples versions Rubis. Un rapide mv ou ln permettra de résoudre le problème.

Si vous avez besoin de travailler avec de multiples versions Rubis alors vous devez vraiment être à l'aide de rvm.

5voto

Adam Greenhall Points 738

Comme l’a souligné @Chris vous devrez ajouter l’environnement gems à votre path. Vous pouvez le faire :

3voto

victor hugo Points 16700

Le dossier dans lequel les pierres précieuses sont stockées doit être sur votre chemin, par exemple, le mien est :

/Home/Victor/.gem/Ruby/1.8/bin

Vérifiez votre chemin en tapant

0voto

Sohan Points 161

mkmf appartient le 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 :

sudo apt-get install ruby1.9.1-dev

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X