RPM에서 데비안 패키지의 "replace:" 기능을 어떻게 에뮬레이트할 수 있나요?

RPM에서 데비안 패키지의 "replace:" 기능을 어떻게 에뮬레이트할 수 있나요?

SLES10 시스템에서 LDAP 서버의 로드를 줄이려면 NSCD(Name Service Cache Daemon)를 사용해야 합니다. 내 경험에 따르면 GNU LibC의 일부로 제공되는 기본 nscd는 쓰레기이며 몇 시간마다 심하게 충돌합니다. 따라서 unscd 또는 gnscd와 같은 대안을 사용해야 합니다.

SLES10에는 이 두 가지 패키지가 없으므로 하나를 컴파일해야 합니다. 그러나 AppArmor에는 문제가 있습니다. SLE10에서는 각 애플리케이션이 각 패키지가 자체 프로필을 제공하는 대신 AppArmor 프로필을 하나의 큰 "apparmor-profiles" 패키지로 병합합니다. 그리고 unscd/gnscd는 apparmor-profiles에서 프로필을 사용할 수 없습니다. .

데비안 패키지를 만들 때 대체라는 관계를 지정할 수 있습니다. 이는 "다른 패키지와 동일한 파일을 포함한다는 것을 알고 있지만 해당 버전이 이 검사와 일치하는 한 해당 파일을 덮어쓸 수 있습니다"라고 말합니다. 그래서 spec 파일에 "Replace: apparmor-profiles (<= 2.0.1-20.20.16)" 같은 말을 하면 apparmor-profiles 패키지에 있는 모든 파일을 깔끔하게 교체할 수 있습니다.

내 apparmor-profiles 패키지를 다시 컴파일하고 파일을 제거하거나 rpm 명령을 통해 패키지를 강제 실행하지 않고(향후 문제가 발생할 수 있음) RPM으로 동일한 작업을 수행하려면 어떻게 해야 합니까?

답변1

RPM에는 에뮬레이션 기능이 없다고 생각합니다. RPM에는 "노후화" 기능이 있지만 이는 하나의 패키지를 다른 이름의 다른 패키지로 대체하는 것입니다. 여러 RPM이 하나의 객체를 소유하도록 할 수 있지만 이는 사용하는 배포판에 따라 주로 /etc/bash_completion.d와 같은 디렉터리에서 작동합니다. 모두 약간 다른 패키징 지침이 있습니다.

관련 정보