Jak mogę spakować mój skrypt Perla, aby działał na komputerze bez Perla?

Ludzie często pytają "Jak mogę skompilować Perla?"podczas gdy tak naprawdę chcą stworzyć program wykonywalny, który może działać na komputerach, nawet jeśli nie mają zainstalowanego Perla.

Jest kilka rozwiązań, o których wiem:

  1. perl2exe IndigoStar Jest komercyjny. Nigdy nie próbowałem. Jego strona internetowa mówi, że może krzyżować kompilację Win32, Linuksa i Solarisa.
  2. Perl Dev Kit z ActiveState. Jest komercyjny. Używałem go kilka lat temu na Windows i to zadziałało dobrze na moje potrzeby. Według jego strony internetowej działa na systemach Windows, Mac OS X, Linux, Solaris, AIX i HP-UX.
  3. PAR a raczej PAR:: Packer to wolny i otwarty kod źródłowy. Na podstawie raportów z testów działa na systemach Windows, Mac OS X, Linux, NetBSD i Solaris, ale teoretycznie powinien działać również na innych systemach uniksowych. Ostatnio zacząłem używać PAR do pakowania na Linuksie i będę go używać również na Windows.

Inne polecane rozwiązania?

Author: szabgab, 2008-09-17

4 answers

Oprócz trzech narzędzi wymienionych w pytaniu, jest jeszcze jeden o nazwie Cava Packager napisany przez Marka Dootsona, który również przyczynił się do PAR w przeszłości. Działa tylko pod Windows, ma ładny GUI WX i działa inaczej niż typowych trzech pretendentów, ponieważ montuje wszystkie zależności Perla w katalogu source / lib zamiast tworzyć pojedyncze archiwum zawierające wszystko. Jest darmowa wersja, ale nie jest Open Source. Nie używałem tego. poza testami.

Co do PAR, to naprawdę zestaw narzędzi. Jest wyposażony w narzędzie do pakowania, które wykonuje skanowanie zależności i montaż autonomicznych plików wykonywalnych, ale może być również używany do generowania i używania tzw.pliki par, analogicznie do jarów Javy. Jest również wyposażony w client i server do automatycznego ładowania brakujących pakietów przez sieć itp. W slajdy z mojej rozmowy PAR na YAPC::EU 2008 przejdź do więcej szczegółów na ten temat. Jest też aktywna lista dyskusyjna: par at perl dot org.

 12
Author: tsee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-03 13:32:52

Minęło trochę czasu od pierwszego zadania tego pytania, ale Cava Packager może obecnie produkować Pakiety wykonywalne Dla Windows, Linux i Mac OS X. nie jest to już tylko Windows.

Uwaga: jak wskazuje moje imię, jestem związany z Cava Packager.

 5
Author: cavapack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-22 01:22:21

Jestem nowicjuszem Perla i właśnie ściągnąłem Cava Packagera i tylko ten działa. Wypróbowałem ActiveState 5.10.1005 i truskawkowy Perl z PAR-Packagerem na Windows XP. pp po prostu wisi w połowie strumienia i nie tworzy żadnych plików wykonywalnych.

Cava zapewnia jedyne rozwiązanie do tworzenia exe w systemie Windows do tej pory. Thks.

 1
Author: mcwong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-14 07:39:36

Możesz użyć narzędzia perlcc dostarczanego z większością dystrybucji Perla. Znalazłem również zarówno perl2exe, Jak i Active State ' s Perl Dev kit przydatne do wysyłania aplikacji Perl.

 -3
Author: Bruce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 21:29:03