DEB: multi-package, ignora a instalação de alguns arquivos durante a construção de pacotes

1

Eu substituí o dh_auto_install: target no arquivo debian/rule . Agora, todos os meus componentes construídos estão instalados em debian/tmp .

Eu preparei package.install para cada pacote do meu conjunto, mas tenho esse problema:

O pacote A deve conter scripts com dois arquivos.

O pacote B deve conter scripts dir também, mas sem dois arquivos que estarão no pacote A .

Por causa da possibilidade de definir arquivos em scripts dir no arquivo debian/B.install . Mas scripts dir contém uma enorme contagem de arquivos e coloca cada um deles por mais tempo.

É possível excluir alguns arquivos específicos em package.install file?

    
por Yurij Goncharuk 24.05.2018 / 17:09

1 resposta

1

Is it possible to exclude some particular files in package.install file?

Não diretamente, mas existem pelo menos três maneiras de alcançar o que você procura. (Como você mencionou a substituição de dh_install , suponho que esteja usando dh style rules .)

  1. dh_install copia arquivos de debian/tmp para o destino deles. Seu antecessor, dh_movefiles , move-os; é obsoleto, mas ainda pode ser usado nesse tipo de situação. A maneira de fazer isso é listar o pacote A antes do pacote B in debian/control (para que seja processado primeiro, assumindo que ambos tenham a mesma arquitetura), renomeie A.install para A.files e substitua dh_install que ele executa dh_movefiles primeiro:

    override_dh_install:
            dh_movefiles
            dh_install
    

    Isso moverá os arquivos para A de debian/tmp , portanto, o arquivo B.install poderá listar scripts e B terá todos os arquivos restantes em scripts .

    As sequências dh ignoram dh_movefiles , por isso não há nada de especial a fazer para evitar a sua execução duas vezes.

  2. debhelper arquivos de configuração podem ser executáveis, portanto você pode substituir B.install por um script que lista scripts ’conteúdo e filtra qualquer coisa que esteja em A.install .

  3. Outra abordagem seria adicionar uma etapa após dh_install , o que remove qualquer coisa em A de B ; algo como

    override_dh_install:
            dh_install
            cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;
    

    (não testado).

por 24.05.2018 / 17:53

Tags