RPMパッケージに加えて、udevルールをインストールする必要があるソフトウェアのDEBパッケージも用意しました。
私のRPMパッケージは/usr/lib/udev/rules.d
。/usr/lib/udev/rules.d
Fedora 35でRPMパッケージをテストしましたが、すべてが正常です。これらのルールは、関連するudevイベントがトリガーされたときに適用されます。
私のDEBパッケージには現在同じ場所に同じルールがインストールされていますが、Ubuntu 18.04を新しくインストールしてDEBパッケージをテストするときにインストールされたルールは適用されません(関連するudevイベントをトリガーするとき)。私はルールを/etc/udev/rules.d
。/usr/lib/udev/rules.d
いくつかの調査の終わりに私が見つけたすべての文書(DebianのRE udevルール)は、Debianはルールファイルが次の場所に配置されると予想していると主張しています/lib/udev/rules.d
。
ルールファイル(udevdの追加設定と同じ)は、/run/udev/rules.d、/etc/udev/rules.d、または/lib/udev/rules.dから取得されます。パッケージは/lib/udev/rules.dにルールをインストールし、/etcと/runの場所は管理者にパッケージが提供するルールの動作を上書きするツールを提供します。
私の考えでは、この/lib
ディレクトリはシステムにとって重要と見なされるパッケージを保存するために使用されるようです。 FHSから:
/ libディレクトリには、システムを起動し、ルートファイルシステム、つまり/ binと/ sbinのバイナリを介してコマンドを実行するために必要な共有ライブラリイメージが含まれています。
このudevルールはどこに入れるべきですか?私のパッケージは間違いなくシステムに必要とは見なされません。に入れると/lib
FHS違反ではないですか?最後に、ディストリビューションごとに場所が実際に異なる必要がありますか?すべてのLinuxディストリビューションで1つの場所に配置できないのはなぜですか?
編集する:
/lib
私はUbuntu 20.04から、udevルールへのシンボリックリンクの場所が/usr/lib
そのシステムで問題にならない可能性があることに気づきましたが、まだUbuntu 18.04システムでそのルールをどこに置くべきか疑問に思いました。
答え1
はい、Debian派生システムのudevファイルの正式な場所はです/lib/udev
。しかし、少なくともソースパッケージからビルドする場合、パッケージビルドはそれを気にする必要はありません。dh_installudev
正しい場所にインストールされます。
あなたがしなければならないのは、ルールファイルがで最終的に利用可能であることを確認し、必要に応じて変更するdebian/package.udev
ことpackage
です。シンボリックリンクは大丈夫です。solaar
例については、私のパッケージを参照してください。。
合併後のこれらの区別は疑問の余地がありますが、/usr
udevファイルが存在する理由/lib
は、その多くがシステムの起動に重要であるためです。必要なudevファイルと必須ではないudevファイルを区別することはあまり意味がないので、すべて/lib/udev
。
答え2
/usr
一般的にディストリビューションで提供文書。外部/サードパーティの構成設定はにインストールする必要があります/etc
。たとえば、VirtualBoxは正確に次のことを行います/etc/udev/rules.d/60-vboxdrv.rules
。
あなたが言うのはあなた自身の仕事です。第三者パッケージなので、構成設定は次のとおりです。いいえにインストールするには/usr
。
man udev
説明する:
udevルールは、システムルールディレクトリ
/usr/lib/udev/rules.d
、/usr/local/lib/udev/rules.d
揮発性ランタイムディレクトリ/run/udev/rules.d
、およびローカル管理ディレクトリ/etc/udev/rules.d
。
これを見る別の方法があります。具体的にウデブ:
# dnf whatprovides '/etc/udev/rules.d/*'
Last metadata expiration check: 1:27:10 ago on Thu 19 Jan 2023 02:17:46 PM +05.
garmintools-0.10-23.fc37.i686 : Tools for Garmin GPS-devices
Repo : fedora
Matched from:
Filename : /etc/udev/rules.d/51-garmin.rules
icaro-2.0-11.fc37.noarch : Robotic Educational Project
Repo : fedora
Matched from:
Filename : /etc/udev/rules.d/icaro.rules
mISDN-2.0.22-9.fc37.i686 : Userspace part of Modular ISDN stack
Repo : fedora
Matched from:
Filename : /etc/udev/rules.d/mISDN.rules
ntp-refclock-0.5-4.fc37.x86_64 : Drivers for hardware reference clocks
Repo : fedora
Matched from:
Filename : /etc/udev/rules.d/80-ntp-refclock.rules
... many more packages ...
私はDebian / Ubuntuがこれに従うと確信しています。