跨平台安装约定和最佳实践

Posted

技术标签:

【中文标题】跨平台安装约定和最佳实践【英文标题】:Cross platform installation conventions & best practices 【发布时间】:2014-06-03 15:25:06 【问题描述】:

我管理一个开源项目,我们目前以压缩文件包的形式分发该项目。我们为 Windows 和 Mac 提供了一个捆绑包——我们目前希望 Linux 用户自己编译它。

这个程序带有一堆用户需要访问的辅助文件。其中包括用户需要能够轻松找到的示例文件和示例/默认脚本(如插件)(最好不要在 /usr/local/foo/examples/scripts 的迷宫中搜索)。

用户也将拥有自己的文件(他们可能希望将其存储在随机位置),但他们也将拥有自己的脚本集合(他们可能希望集中,以便始终可用)。

我想支持在用户无权干扰程序安装的多用户环境中安装。该程序将包括一个 API(共享库和标头)和一个 Python 包装器。最好能自动提供这些。

我们使用 CMake 构建项目 - 目前使用 CPack 捆绑 zip 文件。 CPack 的功能比我们目前使用的要多得多。这不是如何构建包/安装文件的机械问题,而是将所有东西放在哪里的约定问题?

我们希望在 MacOS 上有一个应用程序、一个适用于 Windows 的安装程序以及适用于 Linux 的软件包。 Mac 应用程序很好地封装了图标、字体、图像等,但它们似乎不能很好地支持用户可见的文件。

我希望有一种跨平台的标准方法来处理这种情况,但是我很难在各个平台上找到合适的示例。

除了压缩文件之外,我们还有什么更好的办法吗?

【问题讨论】:

【参考方案1】:

提供这些额外文件的存档可能是最好的解决方案之一。您可以鼓励用户在第一次启动程序时下载它们 - 让用户自己决定他们想要它们的位置。

【讨论】:

以上是关于跨平台安装约定和最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

C# GUI 命名约定的最佳实践? [关闭]

Perl 中带有输出参数的子例程的最佳实践命名约定

Maven安装最佳实践(Windows平台)

基于属性的路由 VS 基于约定的路由 - ASP.net Core RESTful API 的最佳实践 [关闭]

链接到 Microsoft 编码标准/最佳实践文档?

JS最佳实践