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

标签 linux windows macos plugins

我管理一个开源项目,目前我们将其作为压缩文件包分发。我们提供了适用于 Windows 和 Mac 的 bundle - 目前我们希望 Linux 用户自行编译它。

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

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

我希望支持在多用户环境中进行安装,在该环境中,用户无权干扰程序安装。该程序还将包括一个 API(共享库和 header )和一个 Python 包装器。如果能够自动提供这些内容那就太好了。

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

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

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

除了压缩文件之外,我们还有什么更好的事情可以做吗?

最佳答案

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

关于linux - 跨平台安装约定和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019029/

相关文章:

c++ - 即使 QCloseEvent 被忽略,窗口也被隐藏

c# - 在 Centos (Linux) 上执行 C# 代码?

c++ - 对于不同的操作系统,如何获取每个磁盘的回收站路径?

windows - 在 Windows 7 中使用 .NET Windows 服务显示消息框

macos - 如何设置intellij idea终端的字符集?

python - pyusb 无法访问 OUT 端点

linux - 如何让 docker 在 Ubuntu 16 上运行并删除旧安装?

c - 如何使用popen同时输入和输出?

linux - 使用 CatchAll 过滤 Postfix 电子邮件帐户

windows - Windows 上的 SIGWINCH 等效项?