私はいくつかのrpmパッケージを構築しrpmlint
、 。私たちのパッケージには、社内ソフトウェア、リポジトリのソフトウェアパッチバージョン、公式リポジトリで利用できないソフトウェアなど、さまざまなソフトウェアが含まれています。私たちは/usr/local
いくつかの理由でローカルパッケージをインストールします。
- 公式パッケージとの名前衝突防止
yum update
ローカルパッケージの損傷を防ぐ- ローカルパッケージを別々のパーティションまたはディスクに常駐させることも、NFS経由で共有することもでき、ホスト間でパッケージと構成を共有できます。
bin
標準インストールパス(、、lib
など)include
に従わない公式リポジトリ以外のソースからインストールされたパッケージをより効果的に制御できます。share
ただし、たとえば、GNU Hello Worldのカスタムビルドでは、次のようにrpmlint
言う必要があります。/usr/local
rpmlint -i
hello.x86_64: E: dir-or-file-in-usr-local /usr/local/hello-2.8/bin/hello
A file in the package is located in /usr/local. It's not permitted for
packages to install files in this directory.
わかりましたファイルシステム階層標準、これによると:
「/usr/local」の元のアイデアは、「/usr」に加えて、各システムに別々の(「ローカル」)「/usr」ディレクトリを置くことでした。このディレクトリは、他の場所からインストールする場合は読み取り専用にすることができます。 "/usr"の構造をコピーします。今日、「/usr/local」は、独自のコンパイルされたプログラムやサードパーティのプログラムを保管するのに最適な場所と広く考えられています。 /usr/local階層は、システム管理者がソフトウェアをローカルにインストールするときに使用します。システムソフトウェアが更新されたら上書きしないでください。ホストグループ間で共有できますが、/usrにはないプログラムやデータに使用できます。ローカルにインストールされているソフトウェアは、/usrのソフトウェアを交換またはアップグレードするためにインストールしない限り、/usrではなく/usr/localになければなりません。
実際には/usr/local
、これらの理由から、我々はこれらの規格に準拠し、ローカルソフトウェアをインストールするので、パッケージマネージャを使用して/usr/local
。 。ローカルパッケージ間の一貫性に加えて。それでは、rpmlint
ファイルにエラーが発生するのはなぜですか/usr/local
?これは包装業者で決めてはいけませんか?このエラーを無視するか、少なくともrpmlint
警告を印刷できますか?
ベストアンサー1
rpmlint
特定のパッケージング戦略に基づいてRPMを確認するためのツールです。その構成は通常ディストリビューションによって異なり、パッケージは特定のデプロイメントポリシーで検証されます。あなたが望むものなら、自分のバッグをチェックしてください。
ポリシーが展開ポリシーと異なる場合は、rpmlint
それに応じて構成、使用を避ける、または特定のエラーを無視する必要があります。
/etc/rpmlint/config
または(テストされていない)に追加されたら、~/.config/rpmlint
このトリックを実行する必要があります。
addFilter("E: dir-or-file-in-usr-local")
源泉: