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
약간의 조사 끝에 내가 찾은 모든 문서(데비안의 RE udev 규칙)에서는 데비안이 규칙 파일이 다음 위치에 배치될 것으로 예상한다고 주장합니다 /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 배포판에서 한 곳에 배치할 수 없는 이유는 무엇입니까?
편집하다:
/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
.
당신이 말하는 것은 당신 자신의 일입니다.제3자패키지이므로 구성 설정은 다음과 같습니다.아니요에 설치하려면 /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 ...
나는 데비안/우분투가 이것을 따른다고 확신합니다.