2016-08-29 3 views
11

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

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

ответ

4

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

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

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

Если этот сценарий был тривиальный

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, вот что вы делаете, чтобы исправить это:

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