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 和 rubyzip 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_kit
的 which
程序:
c:\>which which
/c/prg_sdk/ruby/dev_kit/bin/which
我是 运行 cmd 命令 buildpack-packer --uncached
(或 buildpack-packer 的任何其他选项)。在那之前我有很多错误信息。它们是由 manifest.yml 的不良内容引起的。我纠正了他们。所以现在我收到此错误消息:Zip is not installed (RuntimeError)
我使用 gem install
安装了 zip gem 和 rubyzip 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_kit
的 which
程序:
c:\>which which
/c/prg_sdk/ruby/dev_kit/bin/which