【发布时间】:2009-08-16 15:49:08
【问题描述】:
我正在为已移植到 OSX 的应用程序开发安装程序,但我对这个操作系统没有太多经验,所以我想知道最适合安装数据库文件的位置我的应用程序使用。
数据库文件相对较小,将由守护进程更新,但系统上的所有用户必须可以通过命令行工具访问。在 Linux 上,我使用了 /var/lib/myapp/mydata.db,OSX 的等效项是什么?
【问题讨论】:
标签: macos deployment packaging
我正在为已移植到 OSX 的应用程序开发安装程序,但我对这个操作系统没有太多经验,所以我想知道最适合安装数据库文件的位置我的应用程序使用。
数据库文件相对较小,将由守护进程更新,但系统上的所有用户必须可以通过命令行工具访问。在 Linux 上,我使用了 /var/lib/myapp/mydata.db,OSX 的等效项是什么?
【问题讨论】:
标签: macos deployment packaging
在 OS X 上有两种方法:
OS X 定义了应用程序和用户级别的“应用程序支持”文件夹。这些在/Library/Application Support 中用于系统范围,在~/Library/Application Support/ 中用于用户级支持文件。应用程序支持文件夹应该由应用程序的捆绑标识符命名(例如 com.company.app),但许多只使用应用程序名称。通常,OS X 使用这种模式(/Library 中的系统级和~/Library 中的用户级用于应用程序支持、首选项、插件等)。 /Library 对于非管理员用户默认是只读的。如果您的命令行工具以 root 身份运行(或通过sudo),那么您可以将数据库文件放在/Library/Application Support/your-app 中。当然,由于您需要在安装程序脚本中执行此操作(传统的 unix 样式或通过 OS X 安装包),您可以修改 db 文件的读写权限。
正如其他人所指出的,OS X 是一个 UNIX 操作系统,因此您可以根据自己的喜好创建 /var/lib 或任何其他文件夹。许多 UNIX 端口这样做是因为它使事情与它们支持的其他操作系统更加一致。如果您这样做,请确保提供一个卸载脚本来删除您添加的文件夹(假设其他应用程序/用户/等没有向它们添加任何其他内容!)。 Mac 用户通常不赞成安装程序在文件系统上乱扔垃圾,而没有简单的方法来清理它。此外,MacPorts 和 Fink(OS X 的两个 OSS 包管理器)分别使用 /opt 和 /sw 树。您可能不想弄乱这些树,因为它可能会给这些包管理器的用户带来问题。当然,如果你想保留 UNIX-y 的东西,最好的方法之一就是为 MacPorts 或 Fink 打包你的应用程序。 MacPorts 属于 BSD 端口树血统,而 Fink 属于 debian 血统。 MacPorts 是 Apple 认可的包管理器,但两者似乎都很受欢迎。
【讨论】:
Macintosh HD/Library/Application Support/Your App/data.db 可能就是这个地方。
【讨论】: