ruby - 构建 gem,找不到可执行文件

标签 ruby gem

我正在编写我的第一个 ruby​​ gem,我对设置 gem 的整个结构有点陌生。我的阅读理解this guide是为了为我的 gem 创建一个可执行文件,我需要执行以下操作:

  1. 在我的 gemspec 中添加一行,指定可执行文件的名称,如下所示:

    s.executables << 'gemname'

  2. 构建gem

    gem build gemname.gemspec

  3. 在本地安装 gem(如果您每次尝试通过推送到 ruby​​gems 来安装,最终您将不得不不断更改版本)

    gem install gemname-0.0.1.pre.gem

  4. 然后用

    测试一下

    gemname foo-arguments, --bar-options

如果我完成所有这些步骤,那么在 #4 上我会收到以下错误:

$ gemname
zsh: command not found: gemname

假设可执行文件是一个以 shebang 开头且位于 gemname/bin/gemname 的文件

如果我导航到 gem 文件夹的根目录并运行 bin/gemname 来测试可执行文件,一切正常。

Here是我当前的 gemspec 的要点,gem 源代码可在 github here 上找到.

最佳答案

您需要在 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/

相关文章:

ruby - 如何使用 Sinatra 中的 MongoMapper 访问 Mongo 数据库键以在 Haml View 中呈现值?

ruby - 我如何找出实际插入了多少 Mongo 文档?

ruby - 无法加载此类文件 -- 用于 Windows 的 libxml_ruby

ruby-on-rails - 在 rails 中使用 mustache View 模板的最简单方法是什么?

ruby-on-rails - 安装 mysql2 gem 时出错

ruby-on-rails - 意外标记附近的语法错误 `('

ruby - 警告——DICOM : Decompressing pixel values has failed

ruby - 如何指定要用于我的 Ruby 应用程序的瘦网络服务器的版本? - 辛纳屈

Ruby:gem 安装在错误的目录中

ruby - 如何在 heroku 中使用 haml?