Como emular a função "Replaces:" de um pacote Debian em um RPM?

Como emular a função "Replaces:" de um pacote Debian em um RPM?

Preciso usar NSCD, o Name Service Caching Daemon, para diminuir a carga em nosso servidor LDAP, em meus sistemas SLES10. Na minha experiência, o nscd padrão, fornecido como parte do GNU LibC, é lixo e irá quebrar horrivelmente a cada poucas horas. Como resultado, é obrigatório usar um substituto, como unscd ou gnscd.

Não há pacotes para nenhum deles no SLES10, portanto, é necessário compilar um pacote. No entanto, há um problema com o AppArmor - no SLE10, cada aplicativo teve seu perfil AppArmor mesclado em um grande pacote "apparmor-profiles", em vez de permitir que cada pacote forneça seu próprio perfil - e unscd/gnscd não funcionam com os perfis em apparmor-profiles.

Ao criar um pacote Debian, é possível especificar um relacionamento chamado Substitui:, que diz "Eu sei que incluo o mesmo arquivo que este outro pacote, mas posso sobrescrever o arquivo deles, desde que sua versão corresponda a esta verificação". Como resultado, eu poderia dizer algo como "Substitui: apparmor-profiles (<= 2.0.1-20.20.16)" em meu arquivo de especificações e poderia substituir de forma limpa qualquer arquivo do pacote apparmor-profiles.

Como eu faria o mesmo com o RPM, sem recompilar meu próprio pacote apparmor-profiles com o arquivo removido ou forçar o pacote através do comando rpm (que está causando problemas no futuro)?

Responder1

Não acho que o RPM tenha um recurso analógico. O RPM possui recursos "Obsoletos", mas serve para substituir um pacote por outro pacote com um nome diferente. Você pode ter vários RPMs em um único objeto, mas isso é usado principalmente para diretórios, como /etc/bash_completion.d, dependendo da distribuição que você usa: todos eles têm diretrizes de empacotamento ligeiramente diferentes.

informação relacionada