0

我有一个打算安装在 Linux 和 Windows 机器上的程序。我可以很好地交叉编译(使用自动工具),但在某些时候我希望程序能够更新其二进制文件。我能想到的唯一方法是:

  • 授予用户对“C:\Program Files\Foo Program”或​​“/usr/bin/foo_program”的写入权限。

或者

  • 将程序安装到用户的配置文件/主目录。

这些似乎都不是一个好主意。你会怎么做?

4

2 回答 2

0

如果程序二进制文件是可写的,您可以将补丁或新位下载到 %TEMP% 或 /tmp,然后将它们应用到二进制文件。我认为您不需要能够在目录中创建新文件。但是,当您尝试修补它时,您将在 Windows 上遇到正在使用的文件的问题。

于 2009-06-12T17:02:13.943 回答
0

您需要向我们提供有关您正在尝试做什么的更多详细信息 - 我不了解跨平台、修补和您的问题之间的联系。

如果您需要能够自动更新程序,至少在 linux 上,最好的解决方案是提供一个二进制包(rpm、deb 等,取决于您的目标),它会定期更新 - 这样新版本就会由包管理器拾取。在 windows 和 mac os x 上,事情通常更加分散,每个程序都有自己的更新管理器。最好的技术解决方案取决于技术(C/C++/python/whatever)。在 Linux 上我能想到的一个例外是 vmplayer,它会在有新版本时告诉你——但你仍然必须安装新版本。

于 2009-06-12T14:48:43.610 回答