2009-08-16 14 views
1

私はOSXに移植したアプリケーションのインストーラを開発していますが、このOSにはあまり経験がありませんので、どこに最適な場所があるか知りたい私のアプリケーションで使用されるデータベースファイルをインストールする。Mac OSXのデータベースファイルの最適な場所

データベースファイルは比較的小さく、デーモンプロセスによって更新されますが、コマンドラインツールを使用してシステム上のすべてのユーザーがアクセスできる必要があります。 Linuxでは私は/var/lib/myapp/mydata.dbを使用しましたが、OSXと同等のものは何ですか?

答えて

3

そこには、OS X上の2つのアプローチがある:

  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 OSなので、/var/libなどの任意のフォルダを好きなように作成できます。多くのUNIXポートは、サポートしている他のOSとの一貫性を保つため、これを行います。これを行う場合は、追加したフォルダを削除する一貫性のないスクリプトを用意してください(他のアプリケーション/ユーザー/などによって他に何も追加されていないものと仮定します)。 Macユーザーは、一般的に、ファイルシステムのいたって簡単な方法でそれを掃除することなく、インストール担当者に迷惑をかけている。また、MacPortsとFink(OS Xの2つのOSSパッケージマネージャー)はそれぞれ/opt/swツリーを使用します。おそらく、これらのツリーを混乱させたくないので、これらのパッケージマネージャーのユーザーにとって問題を引き起こす可能性があります。もちろん、UNIX-yを維持したい場合は、MacPortsまたはFinkのためにアプリケーションをパッケージ化するのが最善の方法の1つです。 MacPortsはBSD portsツリー系統であり、Finkはdebian系統です。 MacPortsはアップルが認可したパッケージマネージャですが、どちらも人気があるようです。

3

Macintosh HD /ライブラリ/アプリケーションのサポート/ App/data.dbがおそらく場所になります。

+0

/Library/Application Supportは、主にユーザーインタラクティブアプリの場合はおそらく最適です。システムインフラストラクチャのようなものなら、/ var/db /がより適切かもしれません。 –

+1

これはUNIXだから、パスが必ず「Macintosh HD」で始まるとは限りません。/Library/Application Support/...はあなたが意味するものです。 –

+0

実際、パスは「Macintosh HD」で始まることはありません(おそらくMac OS 9以前を考えているでしょう)。 UnixとMac OS Xの絶対パスは常に/で始まります。 – titaniumdecoy

関連する問題