如何确定哪个宝石拥有文件?

时间:2018-05-11 22:10:52

标签: ruby rubygems

假设我的GEM_HOME的bin目录中有一个文件,如~/.gem/ruby/2.4.0/bin/foo或其他内容。如何确定哪个宝石拥有该文件?

以下是其他包管理员的类似问题;我正在寻找专门针对Ruby gems的答案:

1 个答案:

答案 0 :(得分:1)

打开bin文件并查看其内容。它应该只是一个普通的Ruby文件。在某个地方,你通常会看到这样的东西:

load Gem.bin_path('gemname', 'gemname', version)

其中gemname将是文件所属的gem的名称。

如果没有这样的行,你将不得不做一些侦探工作,但通常你可以从bin名称或文件本身的代码中找出它。

您还可以快速验证此类特定宝石的bin内容,这有助于追踪候选人:

gem contents gemname | grep bin

或者,如果您只想扫描所有内容:

gem contents --all | grep file_you_want_to_find