回答:
「Unixベースのシステム」は、すべての Unixベースのシステムに適用されるあらゆる種類の一般的に適用可能な決定を行うにはあまりにも一般的なカテゴリーです。問題は、ファイルシステムの構造(および物事を配置するための「適切な」/「従来の」場所)が「Unix」の異なるフレーバー間で非常に大きく異なるため(それを呼び出すことさえできる場合)、ほとんどそれを処理する必要があることです。ケースバイケースで。
いくつかの例:
答えは、Linux、BSD、Solaris、HP-UXなどのディストリビューションであるかどうかに関係なく、オペレーティングシステムの何をどこに格納するかについての標準的で社会的に受け入れられ、よく統合された規約は、正確な状況に依存するということです。具体的には:
apt-get
たりyum
、直接インストールしたりできるようにしますか?すべての要因を考慮しない限り、これに対する正解はありません。ただし、特にUbuntu 12.04の場合.deb
、PPAで配布するファイルにパッケージをビルドする場合、またはUbuntu独自のパッケージリポジトリ(main
またはuniverse
)に送信する場合は、キャッシュをに保存することをお勧めし/var/cache
ます。しかし、それはあるUbuntuのためにのみ、あなたは確かにはならないすべてのディストリビューションやUnixベースのOSは、この許容を検討するという仮定を適用します。
さらに、システムのブート全体でキャッシュデータを保存する利点がない場合は、/ tmpにも属していると思います。
プログラムが使用するすべての種類のファイル(共有データ、実行可能ファイル、ライブラリ、ヘルプファイル、画像、サウンド、Webページなど)について、これらのパス規則の問題が発生することに注意してください。したがって、キャッシュファイルについて質問している場合、他の種類のファイルをどのように処理することを計画しているのでしょうか。単純な仮定をして、誰もあなたに反対しないことを望んでいますか?どこに置くべきかを示唆するUbuntuのドキュメントや標準をまだ読んでいない場合は、何かを推測するのは悪い考えです。たとえば、/ usr / libにライブラリを常に貼り付けることは、他の場所に属している状況によっては、間違いである可能性があります。
さらに、ソフトウェア開発者として、最も責任のあることは、エンドユーザーがファイルを配置する場所を決定できるようにすることだと思います。デフォルトを設定できますが、ユーザー(およびディストリビューター)は、ディストリビューションに合わせてビルドをカスタマイズできます。
これを行う最も簡単な方法は、GNU Autoconfを使用してプログラムをビルドすることです。Autoconfは、ユーザーがコマンドライン引数をビルドスクリプトに渡して、さまざまな「ディレクトリタイプ」のパスをデフォルトから変更できるビルドシステムです。ほとんどすべてのディストリビューションには、Autoconfパッケージごとにビルドスクリプトがあり、タイプごとに適切な従来のディレクトリが設定されています。具体的には、キャッシュ用のディレクトリタイプsharedstatedirさえ持っています。
gem
ツールによってgemがインストールされる非常に特定のディレクトリがあることに注意してください。ただし、gemによってアプリケーションがダウンロードされるのと同じディレクトリ内に実行時にファイルを作成することはおそらく適切ではありません。一方、あなたはしているが、ユーザーとしてアプリケーションを実行している場合、あなたはのは、書き込みを読むことをディレクトリ必要があるユーザーのために、その手段は、このようなグループの作成などのインストール時にも、より多くのシステム統合作業を必要とする(アクセス権を変更するのいずれかをなど)、または/ tmpなどのグローバルな読み取り/書き込みディレクトリを使用します。
/usr
、/lib
または/bin
アプリケーションから。
/tmp
フォルダーになります。あなたの質問への答えは(ダウンロード、いいえ、いいえ、いいえ、いいえ、いいえ、いいえ、いいえ)でしょう。おそらくほとんどの人が結論を下すのは普通のようです/tmp
が、私はUNIXシステムに慣れていないので、ubuntu osベースの規則は私には馴染みのないものです。これにより、gemがディスクキャッシングを不可知的に許可するという興味深いアイデアが生まれます(ユーザーに依存しない)。ありがとう、+ 1してください。