sincronizar o rpmdb do sistema com uma cópia local

sincronizar o rpmdb do sistema com uma cópia local

Em nossos servidores comerciais, por vários motivos, queremos usar pacotes rpm, mas não podemos instalar o pacote rpm no banco de dados do sistema (permissões, múltiplas instâncias, etc). Portanto, criamos nosso próprio rpmdb local e instalamos pacotes como não-root e com um argumento --dbpath. Portanto, atualmente nosso banco de dados local pode conter apenas 10 pacotes. Isso funciona bem, permite instalação não-root e permite múltiplas instâncias do mesmo pacote porque vários rpmdbs estão sendo usados. A desvantagem é que tudo deve ser instalado com --nodeps porque nossos bancos de dados locais não veem nenhum dos pacotes instalados no nível do sistema.

Na tentativa de resolver o problema --nodeps, existem várias maneiras de inicializar meus bancos de dados locais com o banco de dados do sistema atual (basta copiar /var/lib/rpm/Packages e reconstruir, por exemplo). Então, instalar nossos pacotes de aplicativos por cima deve nos permitir usar totalmente as dependências. Mas o problema é como manter os pacotes do sistema sincronizados após a primeira cópia. Se os administradores instalarem um patch do sistema, apenas o rpmdb do sistema será atualizado. Estou procurando algum método para escrever um trabalho em lote noturno que compare as atualizações e aplique as atualizações do banco de dados apenas às nossas cópias locais.

Alguma idéia de quais comandos podem ser usados ​​para fazer isso?

Obrigado por qualquer ajuda. Brian

Responder1

--nodeps, pacotes relocáveis ​​e o gerenciamento manual do Berkeley DB são dolorosos. E você quer fazer os três? Eu não recomendo isso, é um retrocesso de 20 anos no gerenciamento de pacotes.Muito poucos pacotes do Fedora ou EL são relocáveis, pois simplesmente não pode ser gerenciado pelo yum. Além disso, nodeps significa que você pode entrar em dependências que não podem ser facilmente corrigidas pelo yum.


Dê aos usuários um "host" para cada instância necessária. VMs, contêineres, chroots ( yum --installroot), qualquer um deles pode ser mais barato que o tempo de luta com RPM.

Automatize o provisionamento. Tenha procedimentos onde os usuários possam propor alterações no conjunto de pacotes que sejam revisados ​​em tempo hábil. Possivelmente dê a alguns usuários o privilégio de testar instâncias, para que possam tentar coisas sem quebrar nada importante.

Reempacote qualquer coisa para não exigir realocação ou rpmdb alternativo. Mude para caminhos não conflitantes, crie pacotes separados com números de versão em Nome. Em geral, siga as diretrizes de empacotamento do Fedora RPM. Então os pacotes podem ser gerenciados com o yum.

informação relacionada