Может ли веб-сервер динамически генерировать исполняемый файл на лету?

Ninite.com, кажется, делает это в настоящее время. Интересно, как.

Хотя они могут заранее сгенерировать любую комбинацию приложений, это кажется маловероятным/хакерским.

[РЕДАКТИРОВАТЬ]

Является ли компиляция исполняемого файла Windows с использованием этого метода ресурсоемким? Можно ли это делать ~100 тысяч раз в день без непомерных затрат? Я спрашиваю, потому что Ninite объявили, что они будут платными... неужели это им так дорого обходится?

[EDIT2]

Загрузки невелики, это всего лишь небольшое веб-приложение для загрузки и установки размером в сотни КБ, которое знает, какие приложения устанавливать.

^^ В связи с этим EXE-файл, обслуживаемый веб-приложением, называется Ninite AIMP Audacity Chrome Digsby FastStone Installer.exe, если для установки установлено более 20 приложений. Вероятно, сервер обслуживает один и тот же файл под разными именами файлов, а затем приложение настраивает себя на основе имени файла, не так ли?


person tunack    schedule 19.08.2010    source источник


Ответы (3)


Сайт, похоже, не создает исполняемый файл, а просто предоставляет его для загрузки.

[EDIT] Создание таких огромных загрузок на лету создало бы огромную нагрузку на сервер. Кроме того, это может создавать ошибочное программное обеспечение. Итак, я предполагаю, что если эти люди знают, что они делают, у них есть сервер, который предварительно упаковывает все, тестирует его, а затем выгружает в каталог загрузки веб-сервера.

Но, конечно, ничто не мешает серверу вызывать любую программу (за исключением, может быть, терпения серфера). Так что они могут запускать компиляторы, архиваторы, что угодно.

person Aaron Digulla    schedule 19.08.2010
comment
Загрузки невелики, это всего лишь небольшое веб-приложение для загрузки и установки размером в сотни КБ, которое знает, какие приложения устанавливать. - person tunack; 19.08.2010
comment
В этом случае установщик, вероятно, представляет собой фиксированный двоичный файл с файлом конфигурации. У серверов нет проблем с созданием текста из какого-то описания (HTML — это текст, так что то, что вы видите на экране, происходит точно так же), а затем сервер просто должен добавить выбранные конфиги в бинарник. Это гораздо проще (и быстрее), чем компилировать новый бинарник. - person Aaron Digulla; 19.08.2010

Почему веб-сервер не может динамически генерировать исполняемый файл?

person Richard H    schedule 19.08.2010

Конечно, просто запустите компилятор на сервере с exec().

Я делаю что-то подобное с созданием файлов PDF из источников LaTeX, поскольку это также компилируется...

person polemon    schedule 19.08.2010
comment
Это было быстро - спасибо! Является ли компиляция исполняемого файла Windows с использованием этого метода ресурсоемким? Можно ли это делать ~100 тысяч раз в день без непомерных затрат? Я спрашиваю, потому что Ninite объявили, что они будут платными... неужели это им так дорого обходится? - person tunack; 19.08.2010
comment
В конечном итоге все сводится к вопросу, как долго компилируется ваш код. если это всего лишь секунда или даже меньше, то это не должно быть большой проблемой. Но если это займет более десяти секунд, я бы попробовал другой подход. - person polemon; 19.08.2010
comment
@tunack: Нет. Компиляция одного исполняемого файла Windows занимает от нескольких секунд до многих минут (в зависимости от размера). Скорее всего, они имеют существующий бинарник и просто заменяют в нем ресурс. - person Aaron Digulla; 19.08.2010