При развертывании java-приложения на linux нам не нужно ничего устанавливать, все сторонние библиотеки - это jar файлы, и мы обновляем classpath только в файле script. Но java нуждается в jre, который довольно большой.
Итак, есть ли другой язык, поддерживаемый linux, может это сделать? По умолчанию наш сервер поддерживает только perl/python/tcl, не доступен gcc, вздох.
Perl 5 имеет PAR
и PAR::Packer
. PAR
концептуально похож на JAR файл (это zip файл из одного или нескольких модулей). PAR::Packer
делает еще один шаг: он объединяет все, что вам нужно, чтобы запустить программу в один исполняемый файл. PAR::Packer
для исполняемых файлов не требуется даже Perl 5, установленный в целевой системе.
perl, python и tcl могут запускать сторонние библиотеки без их установки, которые вам наиболее удобны с
tcl имеет starkits и starpacks
perl рассматривается в другом ответе
Приложения Tcl могут быть объединены в однофайльный исполняемый файл со всеми включенными зависимостями. Я использовал их для нескольких приложений. Вы можете создавать однофайловые исполняемые файлы для Linux, Windows и OSX.
От http://www.equi4.com/starkit/:
A Starkit - это механизм упаковки для предоставление приложения в автономный, без установки и очень портативный способ. Имя приходит от того, чтобы основываться на StandAlone Runtime, называемый Tclkit.
Старкит создает иллюзию "файловая система в файле" - на снаружи, это один файл, но код приложения продолжает видеть полный каталог скриптов, расширения, пакеты, изображения и любые другие файлы, в которых он нуждается. Starkits может быть мультиплатформенным. А также они могут быть записаны в силу лежащей в основе базы данных Metakit.
execve()
...
В Linux вы должны использовать формат дистрибутива (DEB, RPM,...) для развертывания приложений. Менеджеры пакетов, включенные в дистрибутивы, могут автоматически обрабатывать зависимости.
Кроме того, я думаю, что Perl - это единственный язык, доступный в большинстве Linux-систем из коробки. Python тоже очень популярен, но, вероятно, не так вездесущ.
Наткнулся на это вчера: http://code.activestate.com/recipes/497000-build-a-compressed-self-extracting-executable-scri/
На странице показано, как очень легко превратить zip файл, содержащий скрипты python, в исполняемый файл.