Andr
Andr

Reputation: 88

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

I'm running cmd command buildpack-packer --uncached (or any other option of buildpack-packer). I had many error messages prior that. They were caused by bad content of manifest.yml. I corrected them. So now I receive this error message: Zip is not installed (RuntimeError)

enter image description here

I used gem install to install zip gem and rubyzip gem (as first did not work, so I tried a second). So now both not helping to get rid of this error message.

Here is a part of the installed gem list:

enter image description here

And here is the code that drops this error (found it based on the error message in file: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/buildpack-packager-2.3.4/lib/buildpack/packager.rb):

enter image description here

I'm quite new in Ruby, so maybe I do some very basic mistake...

Thx in advance!!

Upvotes: 0

Views: 192

Answers (1)

tukan
tukan

Reputation: 17347

Please don't use pictures or screenshots in your post. Use plaintext only.

I think you are misunderstanding the code:

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

It checks if you have any zip program (executable) installed not a ruby gem (library). It actually executes which zip in your cmd shell.

For example on my system it found an oracle one:

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

Then if you test it in 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>]

You can see that the executable was found and success state is indicated by the 0. The variable status holds the return message - status => #<Process::Status: pid 10944 exit 0>

I have the which program from dev_kit:

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

Upvotes: 1

Related Questions