RedHat: é possível instalar pacotes em uma espécie de ambiente simulado para construir RPMs

10

Existe uma ferramenta que permite instalar as dependências de um RPM .spec em um ambiente isolado? Não instalarei tais dependências globalmente no sistema e não posso fazê-lo, pois não tenho privilégios de root.

O motivo

Eu quero criar um pacote A que dependa de uma versão mais nova de B (que não pode ser instalada globalmente no sistema).

Eu gosto de construir a versão mais nova de B e deixar a ferramenta de compilação instalar B ' -devel ' em um ambiente isolado para fornecer todos os arquivos necessários para o construção de A .

Soluções

  • Existem ferramentas para fazer isso?
  • Se não, o que devo fazer ao tentar fazer isso com chroot ?
  • Isso seria uma prática ruim?
por try-catch-finally 04.01.2013 / 21:16

3 respostas

8

Sim, a ferramenta é chamada de mock e está na EPEL.

Uso típico:

rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm

Esta é realmente a maneira preferida de construir RPMs, precisamente porque isola o processo do sistema para que não dependam de dependências inesperadas.

Você pode modificar os arquivos em /etc/mock para obter seus próprios pacotes, repo particular etc., ou verificar os documentos para obter informações sobre como adicionar pacotes ao ambiente mock chroot manualmente.

Observe que os usuários devem ser adicionados ao grupo mock para poder usar mock .

Não coincidentemente, o servidor koji build que a Red Hat usa chama mock para construir cada pacote individual. Se você tiver que construir um lote de pacotes o tempo todo, pode valer a pena pesquisar a configuração de um servidor koji build.

    
por 04.01.2013 / 21:19
3

Eu acho que tentar criar pacotes em hosts de produção é uma má prática e tentar fazê-lo sem privilégios de root é mais complicado do que criar suas próprias máquinas de compilação. O que eu normalmente faço é o seguinte.

  1. Instale o VirtualBox ou uma ferramenta semelhante em sua área de trabalho / laptop
  2. Crie 32/64 VMs do SO que você usa na produção
  3. Instale as ferramentas geralmente mock, rpmbuild, etc
  4. Crie os RPMs para o pacote e quaisquer deps adicionais para ambos os arcos em suas VMs
  5. Após o teste, envie os RPMs para o repositório interno para distribuição aos seus servidores
  6. Teste novamente para certificar-se de que as dependências apropriadas estejam sendo obtidas
  7. Lançamento via seu gerenciamento de configuração.
por 04.01.2013 / 21:24
0

Você quer usar o mock. Ele permite que você crie rpms em um chroot

link

    
por 04.01.2013 / 21:20