我正在为我已移植到OSX的应用程序安装一个安装程序,但我对此操作系统没有太多经验,所以我想知道哪个是最适合安装数据库文件的位置我的应用程序使用。
数据库文件相对较小,将由守护程序进程更新,但必须可通过命令行工具访问系统上的所有用户。在Linux上我使用了/var/lib/myapp/mydata.db,OSX等价物是什么?
答案 0 :(得分:3)
Macintosh HD / Library / Application Support /您的App / data.db可能就是这个地方。
答案 1 :(得分:3)
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端口都这样做,因为它使得它们与其支持的其他操作系统保持更加一致。如果您这样做,请确保提供一个unistaller脚本,删除您添加的文件夹(假设其他应用程序/用户等没有添加任何其他内容!)。 Mac用户通常不喜欢安装程序在整个文件系统上扔垃圾而没有简单的方法来清理它。此外,MacPorts和Fink(OS X的两个OSS包管理器)分别使用/opt
和/sw
树。您可能不想弄乱这些树,因为它可能会给这些包管理器的用户带来问题。当然,如果你想保留UNIX-y,最好的方法之一就是将应用程序打包为MacPorts或Fink。 MacPorts属于BSD端口树谱系,而Fink属于debian谱系。 MacPorts是Apple认可的软件包管理器,但两者似乎都很受欢迎。