我正在编写我的第一个 ruby gem,我对设置 gem 的整个结构有点陌生。我的阅读理解this guide是为了为我的 gem 创建一个可执行文件,我需要执行以下操作:
在我的 gemspec 中添加一行,指定可执行文件的名称,如下所示:
s.executables << 'gemname'
用
构建gemgem build gemname.gemspec
在本地安装 gem(如果您每次尝试通过推送到 rubygems 来安装,最终您将不得不不断更改版本)
gem install gemname-0.0.1.pre.gem
然后用
测试一下gemname foo-arguments, --bar-options
如果我完成所有这些步骤,那么在 #4 上我会收到以下错误:
$ gemname
zsh: command not found: gemname
假设可执行文件是一个以 shebang 开头且位于 gemname/bin/gemname 的文件
如果我导航到 gem 文件夹的根目录并运行 bin/gemname 来测试可执行文件,一切正常。
最佳答案
您需要在 spec.files
中添加所有需要包含在 gem 中的文件。您错过了添加 bin
目录中的文件。
例如,我有以下来自one of my gems的配置:
Gem::Specification.new do |spec|
spec.files = Dir["{bin,lib}/**/*", "LICENSE", "README.md"]
spec.test_files = Dir["spec/**/*"]
spec.require_paths = ["lib"]
spec.executables = ["yarr"]
end
关于ruby - 构建 gem,找不到可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219169/