1

OSX に移植したアプリケーションのインストーラーに取り組んでいますが、この OS の経験があまりないので、自分のアプリケーションで使用されるデータベース ファイルをインストールするのに最適な場所を知りたいです。アプリ。

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

4

2 に答える 2

3

OS X には 2 つのアプローチがあります。

  1. OS X は、アプリケーションおよびユーザー レベルの「アプリケーション サポート」フォルダを定義します。これらは、/Library/Application Supportシステム全体および~/Library/Application Support/ユーザー レベルのサポート ファイル用です。アプリケーション サポート フォルダは、アプリケーションのバンドル識別子 (com.company.app など) によって名前が付けられることになっていますが、多くはアプリケーション名だけを使用しています。一般に、OS X はこのパターンを使用します (アプリケーションのサポート、設定、プラグインなどのためにシステムレベル/Libraryおよびユーザーレベルで)。デフォルトでは、管理者以外のユーザーは読み取り専用です。コマンド ライン ツールが root として (または 経由で) 実行されている場合、データベース ファイルを. もちろん、インストーラー スクリプトでこれを行う必要があるため (従来の UNIX スタイルまたは OS X インストール パッケージを介して)、db ファイルの読み取り/書き込み権限を変更できます。~/Library/Librarysudo/Library/Application Support/your-app

  2. 他の人が指摘したように、OS X は UNIX OS であるため/var/lib、好みに応じて任意のフォルダーを作成できます。多くの UNIX ポートは、サポートしている他の OS との一貫性を維持するため、これを行っています。これを行う場合は、追加したフォルダーを削除する unistaller スクリプトを必ず提供してください (他のアプリ/ユーザー/その他によって何も追加されていないと仮定します!)。Mac ユーザーは一般的に、クリーンアップする簡単な方法なしに、ファイル システム全体にがらくたを投げかけるインストーラーに眉をひそめます。また、MacPorts と Fink (OS X 用の 2 つの OSS パッケージ マネージャー) は/opt/sw木。これらのパッケージマネージャーのユーザーに問題を引き起こす可能性があるため、これらのツリーを台無しにしたくないでしょう。もちろん、UNIX-y を維持したい場合の最善の方法の 1 つは、アプリを MacPorts または Fink 用にパッケージ化することです。MacPorts は BSD ポート ツリー系統であり、Fink は debian 系統です。MacPorts は Apple が認可したパッケージ マネージャーですが、どちらも人気があるようです。

于 2009-08-16T19:42:44.393 に答える
3

Macintosh HD/Library/Application Support/Your App/data.db がおそらくその場所です。

于 2009-08-16T15:51:00.183 に答える