
次のディレクトリをどのディレクトリに入れるべきですか?
私は少数の.netアセンブリ、基本データベース(デフォルトのアプリケーション設定を含む)、100の画像ディレクトリ、サウンドディレクトリ(mp3など)を含むアプリケーションを持っています。
例えば
somedir/myapp.exe
somedir/myassembly1.dll
somedir/myassembly2.dll
somedir/images/1/image1.png
somedir/images/1/image2.png
somedir/images/2/image1.png
somedir/sounds/1/sound1.mp3
somedir/sounds/1/sound2.mp3
somedir/sounds/2/sound1.mp3
1つの要件は、ユーザーが適切であると思うようにサウンドと画像を変更できるようにすることです。したがって、デフォルトでは、パス(/var
または/usr
)には一般ユーザーへの書き込みアクセス権が必要です。
答え1
ユーザーがアプリケーションを変更する必要がある場合は、システムにインストールするのではなく、ユーザーのホームフォルダにある種のローカルインストールを実行する必要があります。$HOME/yourapp/{bin,images,sounds}
など。
ほとんどのシステムパス(例:/ var、/ usr)は、ユーザーが書き込みアクセスできないため、許可しないでください。
もう1つのアプローチは、アプリを正常にインストールしますが、システムのデフォルトと他のユーザーが変更したすべての内容を含む$ HOME / .yourappにオーバーレイを作成することです。
答え2
あなたは従うことができますXDGの基本ディレクトリ仕様ユーザーが置き換えることができるコンテンツをディレクトリに保存$XDG_DATA_HOME
し、すべてのユーザープロファイルをディレクトリに保存します$XDG_CONFIG_HOME
(デフォルトはそれぞれ$HOME/.local/share/
およびです$HOME/.config/
)。
これが標準と言えるかどうかはわかりませんが、間違いなく人気があり、ユーザーが慣れているかもしれません。