Ruby: сообщение об ошибке «Zip не установлен» при запуске на Win CMD: buildpack-packager --uncached - PullRequest
0 голосов
/ 27 июня 2018

Я запускаю команду cmd buildpack-packer --uncached (или любой другой вариант buildpack-packer). До этого у меня было много сообщений об ошибках. Они были вызваны плохим содержанием manifest.yml. Я исправил их. Так что теперь я получаю это сообщение об ошибке: Zip is not installed (RuntimeError)

enter image description here

Я использовал gem install для установки zip gem и rubyzip gem (так как первый не работал, поэтому я попробовал второй). Так что теперь оба не помогают избавиться от этого сообщения об ошибке.

Вот часть списка установленных камней:

enter image description here

А вот код, который сбрасывает эту ошибку (нашел ее на основании сообщения об ошибке в файле: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/buildpack-packager-2.3.4/lib/buildpack/packager.rb):

enter image description here

Я совсем новичок в Ruby, так что, возможно, я совершил очень простую ошибку ...

Спасибо заранее !!

1 Ответ

0 голосов
/ 27 июня 2018

Пожалуйста, не используйте картинки или скриншоты в своем посте. Используйте только открытый текст.

Я думаю, вы неправильно понимаете код:

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

Он проверяет, установлена ​​ли у вас какая-либо zip-программа (исполняемая программа), а не рубиновый гем (библиотека). На самом деле он выполняет which zip в вашей командной оболочке.

Например, в моей системе он нашел оракула:

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 содержит ответное сообщение - status => #<Process::Status: pid 10944 exit 0>

У меня есть программа which от dev_kit:

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