Je peux trouver les gemmes installées à l'aide gem list
, mais cela ne me montre pas où les gemmes sont installées.
Comment puis-je trouver où se trouvent les gemmes et comment savoir avant d'installer une gemme où elle sera installée?
Utilisez gem environment
pour découvrir votre environnement de gemmes:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-darwin12.4.0]
- INSTALLATION DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /Users/ttm/.rbenv/versions/2.0.0-p247/bin/ruby
- EXECUTABLE DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- SPEC CACHE DIRECTORY: /Users/ttm/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- /Users/ttm/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- /Users/ttm/.rbenv/libexec
- /Users/ttm/.rbenv/plugins/ruby-build/bin
- /Users/ttm/perl5/perlbrew/bin
- /Users/ttm/perl5/perlbrew/perls/perl-5.18.1/bin
- /Users/ttm/.pyenv/shims
- /Users/ttm/.pyenv/bin
- /Users/ttm/.rbenv/shims
- /Users/ttm/.rbenv/bin
- /Users/ttm/bin
- /usr/local/mysql-5.6.12-osx10.7-x86_64/bin
- /Users/ttm/libsmi/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
Notez les deux sections pour:
INSTALLATION DIRECTORY
GEM PATHS
GEM PATHS
soient utilisés qu'en premier. Est-ce correct?gem env
pour courtEXECUTABLE DIRECTORY
.EXECUTABLE DIRECTORY
contient les versions exécutables CLI installées par les gemmes, mais ce ne sont pas les gemmes elles-mêmes.J'ai trouvé utile d'obtenir un emplacement du fichier de bibliothèque avec:
la source
gem which 'logstash/inputs/tcp.rb'
Après avoir installé les gemmes, si vous voulez savoir où se trouve une gemme particulière. Essayez de taper:
Vous pourrez voir la liste des gemmes que vous avez installées. Maintenant, utilisez
bundle show
et nommez la gemme pour laquelle vous voulez connaître le chemin, comme ceci:la source
Could not locate Gemfile or .bundle/ directory
.gem env
) ne montre que le dossier parent dugems
dossier:/home/test/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
. Il y a un certain nombre de dossiers à l'intérieur et votre gemme peut être située dans presque n'importe lequel d'entre eux - c'est ce quibundle show <gemName>
s'affiche exactement (etgem env
) ne l'est pas.Pour compléter d'autres réponses, la gemme gem-path peut trouver le chemin d'installation d'une gemme particulière.
Installation:
Usage:
C'est vraiment pratique car vous pouvez l'utiliser pour grep ou éditer des fichiers:
la source
Vous pouvez le vérifier à partir de votre invite de commande en exécutant
gem help commands
puis en sélectionnant la commande appropriée:À partir de ce qui précède, je peux voir que la commande
environment
est utile. Je ferais donc:Enfin pour vous montrer ce que vous avez demandé, je ferais:
la source
gem help commands
. Et j'aurais dû écrire que j'utilise rbenv.Vous pouvez tromper
gem open
en affichant le chemin de la gemme:Exemple:
Cela fonctionne, et aucun bijou tiers n'est nécessaire.
la source
-e
option (-e echo
), si c'est plus facile que de définir une variable d'environnement.gem env
fonctionne commegem environment
. Économise de la frappe.la source
gem help commands
renvoie "Les commandes peuvent être abrégées, tant qu'elles ne sont pas ambiguës. Par exemple," gem i rake "est l'abréviation de" gem install rake ". " En d'autres termesgem environment
,gem env
etgem e
tout fonctionne maisgem environment
est auto-documenté pour ceux qui ne savent pas ce qu'il fait, nous devons donc l'utiliser pour les débutants.Les
gem env
listes où les gemmes peuvent être installées, mais cela peut être 10 emplacements ou plus. Si vous voulez savoir où une gemme particulière est installée, vous pouvez exécuter:Exemple de sortie:
la source
si vous utilisez l'outil rvm, vous pouvez exécuter cette commande pour imprimer le chemin de la gemme:
OU
la source
Cela fonctionne et vous donne le chemin installé à chaque gemme. Cela est très utile lorsque vous essayez de faire des builds de docker en plusieurs étapes. Vous pouvez copier dans le répertoire spécifique après l'installation du bundle.
bash-4.4# gem list -d
Production::
la source