2009-06-12 2 views
0

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

  • Дайте пользователям возможность записи на "C: \ Program Files \ Foo Program" или "/ usr/bin/foo_program".

или

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

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

+0

Похоже, у Дэвида есть правильная идея. Я буду делать deb/rpms для Linux и MSI для Windows. Спасибо. – Tim

ответ

0

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

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

+0

Я хочу, чтобы программа могла исправлять себя. Программа работает в Windows и Linux. Таким образом, кросс-платформенное исправление. – Tim

+0

Ah ok - меня смутило кросс-платформенная и кросс-компиляция. Для управления обновлениями требуется структура (кросс-платформенная). Я думаю, что у msi есть что-то для этого, если вы используете установочный экран: http://community.installshield.com/showthread.php?p=296750 (я его никогда не использовал) –

+0

И я не думаю, что вы найдут кросс-платформенные решения, которые очень хорошо работают на каждой платформе. Автообновление в Linux вообще неодобрительно, в то время как оно желательно в Linux. –

0

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