compila o pacote .rpm com todas as suas dependências

3

Não tenho certeza se é a abordagem recomendada ou não, caso o usuário não tenha acesso à web e meu software exija, digamos: libgcc-4.3.0.0.rpm (por exemplo), eu gostaria para agrupar isso para o sistema operacional específico suportado (por exemplo: RHEL 5.10) e todas as suas dependências em uma única .rpm.

qual é a melhor abordagem para isso?

obrigado,

    
por soulSurfer2010 09.08.2014 / 23:05

3 respostas

3

Seria complicado agrupar todas as dependências em um único RPM, até porque o sistema em que você constrói pode ter uma composição de pacote diferente do seu destino (por exemplo, seu destino tem pacotes mais novos ou conflitantes já instalados, o que você pode involuntariamente sobrescrever).

No entanto, você pode obter uma lista de todos os pacotes de pré-requisitos all e instalá-los todos ao mesmo tempo.

Supondo que você tenha dois sistemas (compilação e destino) com o mesmo sabor e lançamento (por exemplo, criando uma lista de pacotes no CentOS 6, para o CentOS 6), tente algo assim:

$ sudo yum install yum-utils # not necessary on the target
$ mkdir package-bundle
$ yumdownloader --destdir package-bundle 'repoquery --resolve --requires $PACKAGE_NAME'
$ tar -czvf package-bundle.tar.gz package-bundle

No sistema de destino:

$ tar -xzvf package-bundle.tar.gz
$ sudo yum install package-bundle/*.rpm

O acima usa repoquery em vez de confiar em yumdownloader para resolver as dependências, já que yumdownloader não parece resolver recursivamente quando o --resolve flag está definido.

    
por 10.08.2014 / 01:15
2

Acho que o que você está procurando deve ser o de compilar estaticamente o aplicativo. Isso tornará muito improvável que o usuário receba todas as dependências que já não estão disponíveis para eles.

    
por 09.08.2014 / 23:10
2

Você não precisa agrupar dependências. Se o usuário final não tiver acesso à Internet, isso é problema deles. Esses locais têm uma variedade de métodos para lidar com isso, como usar a mídia de instalação para instalar e atualizar pacotes, mantendo um espelho local da distribuição, etc.

    
por 09.08.2014 / 23:09