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

7

Eu preciso usar o NSCD, o Daemon de armazenamento em cache do serviço de nomes, 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 vai quebrar horrivelmente a cada poucas horas. Como resultado, o uso de um substituto, como unscd ou gnscd, é obrigatório.

Não há pacotes para nenhum deles no SLES10, então é necessário compilar um pacote. No entanto, há um problema com o AppArmor - no SLE10, cada aplicativo teve seu perfil do 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 funciona os perfis em apparmor-profiles.

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

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

    
por directhex 10.08.2010 / 22:44

1 resposta

2

Eu não acho que o RPM tenha um recurso analógico. O RPM tem um recurso "Obsoletes", mas isso é para substituir um pacote por outro com um nome diferente. Você pode ter vários RPMs com um único objeto, mas isso é usado principalmente para diretórios, como /etc/bash_completion.d, dependendo de qual distro você usa: todos eles têm diretrizes de empacotamento ligeiramente diferentes.

    
por 11.08.2010 / 10:25