Кроссплатформенное исправление

У меня есть программа, которую я собираюсь установить на машины с Linux и Windows. У меня это хорошо кросс-компиляции (с автоинструментами), но в какой-то момент я хотел бы, чтобы программа могла обновлять свои двоичные файлы. Единственные способы, которыми я могу думать об этом:

  • Предоставьте пользователям доступ для записи в "C:\Program Files\Foo Program" или "/usr/bin/foo_program".

или же

  • Установите программу в профиль пользователя / домашний каталог.

Ничто из этого не кажется хорошей идеей. Чтобы ты делал?

2 ответа

Решение

Вы должны предоставить нам более подробную информацию о том, что вы пытаетесь сделать - я не понимаю и связь между кроссплатформенностью, исправлениями и вашим вопросом.

Если вам нужно иметь возможность автоматически обновлять программу, по крайней мере, в Linux, лучшим решением будет предоставить бинарный пакет (rpm, deb, что угодно, в зависимости от вашей цели), который регулярно обновляется, так что новые версии будут подобран менеджером пакетов. В Windows и Mac OS X, как правило, все более децентрализовано, каждая программа имеет свой собственный менеджер обновлений. Наилучшее техническое решение зависит от технологии (C/C++/python/ что угодно). Единственное исключение, которое я могу вспомнить в Linux, - это vmplayer, который сообщает вам, когда появляется новая версия, но вам все равно нужно установить новую версию.

Если двоичный файл программы доступен для записи, вы можете загрузить патч или новые биты в%TEMP% или /tmp, а затем применить их к двоичному файлу. Я не думаю, что вам нужно создавать новые файлы в каталоге. Но вы столкнетесь с проблемами в Windows, когда файл будет использоваться, пока вы пытаетесь его исправить.

Другие вопросы по тегам