Развертывание автономного Perl 6 script

Какова наилучшая стратегия для развертывания Perl 6 script, в которой используются внешние модули типа LWP::Simple?

Например, в Perl мы имеем PAR. Есть ли опция в Perl 6 для развертывания автономного script, который пользователю нужно только запустить, не беспокоясь о том, чтобы установить Rakudo и внешние модули Perl 6?

Ответ 1

Вы можете создать файл .jar, а затем использовать java для выполнения кода. Оттуда существует множество инструментов для преобразования .jar в двоичный файл (или .exe в Windows).

Синтаксис для этого:

perl6 --target=jvm  --output=your_file.jar your_file.pl6

Если бы script были тривиальными

say "this is running as a .jar file"

Вы можете запустить java -jar your_file.jar и получить

this is running as a .jar file

В macOS существует немного морщин, так как для этой функции вам требуется построить perl6 (Rakudo Star) с Java 1.7+ вместо системы Java Mac. По этой причине версия вашей системы может не поставляться с поддержкой JVM.

Если вы используете homebrew, вот что вы делаете, чтобы исправить это:

  • brew uninstall perl6
  • brew tap homebrew/versions (чтобы вы могли установить Java 1.7)
  • brew install Caskroom/versions/java7 (установите Java 1.7)
  • необязательно: откройте новую вкладку в терминале (вам нужно сделать это только в том случае, если по какой-то причине вы получаете сообщение об ошибке, что Java 1.6 все еще используется.)
  • brew install perl6 --with-jvm (build perl6 с поддержкой виртуальной машины Java)