ファイルシステム階層標準-ソース可能な関数をどこに置くか?


9

システムチェックを実行するbashスクリプトがいくつかあります。これらのスクリプトは、ファイル/ etc / healthchecks / configから構成オプションを取得します。

設定ファイルに加えて、共有関数ファイルがあります。スクリプトは、そのファイルを調達し、その中で関数を実行できる必要があります。

Filesystem Hierarchy Standardに基づいて、共有関数ファイルをどこに配置すればよいですか?これは構成ではないため、/ etcに属しているようには見えませんが、実行されていないため、/ usr / binは正しくないようです。多分/ usr / lib?

回答:


7

healthchecks実行可能ファイルを/ usr / local / binまたは/ opt / binに置く必要があります。フォルダー/ optが空である場合は、Linuxディストリビューションがそれを使用していないことを意味します。したがって、適切な場所は/ usr / localです。

/ usr / localおよび/ optは、すべての「手動」パッケージ/プログラムを配置する必要がある場所です。/ usrは、パッケージマネージャー(dpkgなど)によって管理されるパッケージ用です。/ optはFHSによる手動パッケージの「標準的な場所」ですが、Debianディストリビューションは代わりに/ usr / localを使用します。

/ etcは自動パッケージおよびその他のシステムプログラムの構成ファイル用であるため、構成ファイルは/ usr / local / etcに配置する必要があります。

共有機能の正しい場所は/ usr / local / shareです(/ usr / shareは自動パッケージの共有ファイル用です)。読み取り専用でアーキテクチャから独立しているように設計されたすべてのファイルは、/ usr / shareまたは/ usr / local / share(「自動」または「手動」パッケージによって所有されている場合)に属します。

/ usr / libは動的および静的バイナリライブラリ(.soまたは.a)用であり、「解釈された」ライブラリ/関数用ではありません。

通常、インタープリターは、バージョンごとに/ etc / share /に異なるサブフォルダーを持ち、各バージョンフォルダー内には、スクリプト、ロケール、テスト、サンプルなどの異なるフォルダーがあります。

いつかパッケージの公式リポジトリを作成する場合healthchecks、/ usr / local / healthchecksの内容を/ usr / healthchecksおよび/ etc / healthchecksに移行できます。


2
私は先に進み、私の回答を削除しました。1)あなたのトピックは十分にカバーしており、2)libexec技術的にはまだFHSの一部ではありません。それの中に存在3.0ドラフトFHSのRedHatの概要、まだ技術的にFHSの一部ではありません。(基本的に、必要に応じて使用してください)
Andrew B

1

私は通常、これらの予約されたシステム領域の外にサイト固有のものを保持しようとします。独自の最上位ディレクトリ階層を使用することを検討してください。システム領域を使用すると、特別なサイトファイルがシステムの進化中に簡単に失われたり忘れられたりする可能性があるためです。別の可能性としては、/ usr / local / etc ....などがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.