Ruby: 在 Win CMD 上 运行 时出现 'Zip is not installed' 错误消息:buildpack-packager --uncached

Ruby: 'Zip is not installed' error message when running on Win CMD this: buildpack-packager --uncached

我是 运行 cmd 命令 buildpack-packer --uncached(或 buildpack-packer 的任何其他选项)。在那之前我有很多错误信息。它们是由 manifest.yml 的不良内容引起的。我纠正了他们。所以现在我收到此错误消息:Zip is not installed (RuntimeError)

我使用 gem install 安装了 zip gem 和 ruby​​zip gem(因为第一个没有用,所以我尝试了第二个)。所以现在两者都没有帮助摆脱这个错误信息。

这是已安装的 gem 列表的一部分:

这是删除此错误的代码(根据文件中的错误消息找到它:C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/buildpack-packager-2.3.4/lib/buildpack/packager.rb):

我是 Ruby 的新手,所以也许我犯了一些非常基本的错误...

提前致谢!!

请不要在您的 post 中使用图片或屏幕截图。仅使用明文。

我认为你误解了代码:

_, _, status = Open3.capture3('which zip')

它会检查您是否安装了任何 zip 程序(可执行文件)而不是 ruby gem(库)。它实际上在你的 cmd shell.

中执行 which zip

例如在我的系统上它找到了一个 oracle:

c:\> which zip
/c/app/oracle/client11g/product/11.2.0/client/bin/zip

那么如果你在irb中测试它:

irb(main):004:0> _, _, status = Open3.capture3('which zip')
=> ["/c/app/oracle/client11g/product/11.2.0/client/bin/zip\n", "", #<Process::Status: pid 10944 exit 0>]

您可以看到已找到可执行文件,成功状态由 0 指示。变量 status 保存 return 消息 - status => #<Process::Status: pid 10944 exit 0>

我有来自 dev_kitwhich 程序:

 c:\>which which
/c/prg_sdk/ruby/dev_kit/bin/which