You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定哪个Ruby gem拥有指定文件?

如何确定Ruby GEM_HOME下的bin文件所属的gem

我来给你分享几个实用的方法,轻松找出GEM_HOME的bin目录里的文件属于哪个Ruby gem:

  • 查看脚本头部注释
    很多Ruby gem生成的可执行脚本,顶部会带有自动生成的注释信息,直接告诉你它属于哪个gem。比如打开~/.gem/ruby/2.4.0/bin/foo看看开头,大概率能看到类似这样的内容:

    #!/usr/bin/env ruby

    This file was generated by RubyGems.
    The application 'foo' is installed as part of the gem 'foo_cli'.
    The executable 'foo' is located at ~/.gem/ruby/2.4.0/gems/foo_cli-0.3.2/bin/foo

    一眼就能看到所属的gem名称和版本。

  • 用readlink查看符号链接目标
    大多数情况下,GEM_HOME/bin目录里的文件其实是符号链接,指向对应gem安装目录里的真实脚本。直接用readlink命令就能看到目标路径:

    readlink ~/.gem/ruby/2.4.0/bin/foo
    

    输出会像..//gems/foo_cli-0.3.2/bin/foo,其中foo_cli就是gem名称,0.3.2是版本号。

  • 用gem contents全局搜索
    如果上面两种方法都不管用,就用gem contents命令遍历所有已安装gem的文件列表,再用grep定位目标文件:

    gem contents --all | grep -F "/bin/foo"
    

    命令执行后会输出包含该bin文件的gem路径,比如foo_cli-0.3.2/bin/foo,前面的部分就是对应的gem信息。

内容的提问来源于stack exchange,提问作者jayhendren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:22:59