1

我正在为我已经移植到 OSX 的应用程序开发安装程序,但我对这个操作系统没有太多经验,所以我想知道安装数据库文件的最合适位置是我的应用程序。

数据库文件相对较小,将由守护进程更新,但系统上的所有用户必须可以通过命令行工具访问。在 Linux 上,我使用了 /var/lib/myapp/mydata.db,OSX 等价物是什么?

4

2 回答 2

3

Macintosh HD/Library/Application Support/Your App/data.db 可能就是这个地方。

于 2009-08-16T15:51:00.183 回答
3

在 OS X 上有两种方法:

  1. 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 文件的读写权限。

  2. 正如其他人指出的那样,OS X 是一个 UNIX 操作系统,因此您可以/var/lib根据自己的喜好创建或任何其他文件夹。许多 UNIX 端口这样做是因为它使事情与它们支持的其他操作系统更加一致。如果您这样做,请确保提供一个卸载脚本来删除您添加的文件夹(假设其他应用程序/用户/等没有向它们添加任何其他内容!)。Mac 用户通常不赞成安装程序在文件系统上乱扔垃圾,而没有简单的方法来清理它。此外,MacPorts 和 Fink(OS X 的两个 OSS 包管理器)使用/opt/sw树分别。您可能不想弄乱这些树,因为它可能会给这些包管理器的用户带来问题。当然,如果你想保留 UNIX-y 的东西,最好的方法之一就是为 MacPorts 或 Fink 打包你的应用程序。MacPorts 属于 BSD 端口树血统,而 Fink 属于 debian 血统。MacPorts 是 Apple 认可的包管理器,但两者似乎都很受欢迎。

于 2009-08-16T19:42:44.393 回答