我可以找到宝石安装使用宝石列表,但它不告诉我宝石安装在哪里。

我如何才能找到宝石的位置,我如何才能在安装宝石之前知道它将被安装在哪里?


当前回答

这可以为你提供每个宝石的安装路径。这在尝试进行多级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 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

你可以去rails控制台做

Gem.bin_path('<gem-name>', '<gem-executable-name>')

它返回gem文件可执行文件的确切路径。

裁判:https://www.rubydoc.info/github/rubygems/rubygems/Gem.bin_path

要完成其他答案,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)"

安装宝石后,如果你想知道一个特定的宝石在哪里。试着打字:

 gem list

您将能够看到您已安装的宝石列表。现在使用bundle show并命名你想知道路径的宝石,如下所示:

 bundle show <gemName>

或者(bundler的年轻版本):

 bundle info <gemName>