我可以找到宝石安装使用宝石列表,但它不告诉我宝石安装在哪里。
我如何才能找到宝石的位置,我如何才能在安装宝石之前知道它将被安装在哪里?
我可以找到宝石安装使用宝石列表,但它不告诉我宝石安装在哪里。
我如何才能找到宝石的位置,我如何才能在安装宝石之前知道它将被安装在哪里?
当前回答
gem env列出了可以安装宝石的位置,但可以是10个或更多的位置。如果你想知道一个特定的gem被安装在哪里,你可以执行:
gem list -d <gemname>
示例输出:
tilt (2.0.9)
Author: Ryan Tomayko
Homepage: http://github.com/rtomayko/tilt/
License: MIT
Installed at: /opt/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0
Generic interface to multiple Ruby template engines
其他回答
你可以欺骗gem open显示gem路径:
VISUAL=echo gem open gem-name
例子:
VISUAL=echo gem open rails
=> /usr/local/opt/asdf/installs/ruby/2.4.3/lib/ruby/gems/2.4.0/gems/rails-5.1.4
它只是工作,没有第三方宝石是必要的。
这可以为你提供每个宝石的安装路径。这在尝试进行多级docker构建时非常有用。你可以拷贝到特定的目录后bundle安装。
Bash-4.4 # gem list -d
输出:
aasm (5.0.6)
Authors: Thorsten Boettger, Anil Maurya
Homepage: https://github.com/aasm/aasm
License: MIT
Installed at: /usr/local/bundle
State machine mixin for Ruby objects
安装宝石后,如果你想知道一个特定的宝石在哪里。试着打字:
gem list
您将能够看到您已安装的宝石列表。现在使用bundle show并命名你想知道路径的宝石,如下所示:
bundle show <gemName>
或者(bundler的年轻版本):
bundle info <gemName>
宝石环境工作就像宝石环境。节省一些输入。
# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [i686-linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.0.0
- /root/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
要完成其他答案,gem-path gem可以找到特定gem的安装路径。
安装:
gem install gem-path
用法:
gem path rails
=> /home/cbliard/.rvm/gems/ruby-2.1.5/gems/rails-4.0.13
gem path rails '< 4'
=> /home/cbliard/.rvm/gems/ruby-2.1.5/gems/rails-3.2.21
这真的很方便,因为你可以用它来grep或编辑文件:
grep -R 'Internal server error' "$(gem path thin)"
subl "$(gem path thin)"