我有一个打算安装在 Linux 和 Windows 机器上的程序。我可以很好地交叉编译(使用自动工具),但在某些时候我希望程序能够更新其二进制文件。我能想到的唯一方法是:
- 授予用户对“C:\Program Files\Foo Program”或“/usr/bin/foo_program”的写入权限。
或者
- 将程序安装到用户的配置文件/主目录。
这些似乎都不是一个好主意。你会怎么做?
我有一个打算安装在 Linux 和 Windows 机器上的程序。我可以很好地交叉编译(使用自动工具),但在某些时候我希望程序能够更新其二进制文件。我能想到的唯一方法是:
或者
这些似乎都不是一个好主意。你会怎么做?
如果程序二进制文件是可写的,您可以将补丁或新位下载到 %TEMP% 或 /tmp,然后将它们应用到二进制文件。我认为您不需要能够在目录中创建新文件。但是,当您尝试修补它时,您将在 Windows 上遇到正在使用的文件的问题。
您需要向我们提供有关您正在尝试做什么的更多详细信息 - 我不了解跨平台、修补和您的问题之间的联系。
如果您需要能够自动更新程序,至少在 linux 上,最好的解决方案是提供一个二进制包(rpm、deb 等,取决于您的目标),它会定期更新 - 这样新版本就会由包管理器拾取。在 windows 和 mac os x 上,事情通常更加分散,每个程序都有自己的更新管理器。最好的技术解决方案取决于技术(C/C++/python/whatever)。在 Linux 上我能想到的一个例外是 vmplayer,它会在有新版本时告诉你——但你仍然必须安装新版本。