Qual é a diferença entre os parâmetros prefixo e destino para dh_auto_install?

1

Eu quero fazer meu próprio pacote Debian e quero instalá-lo em /opt/A/B/C .

Ao sobrescrever dh_auto_install , a documentação mostra que você pode usar params --destdir= e -- prefix= .

Se eu quiser instalar meu conteúdo debian em /opt/A/B/C , especifico isso via

override_dh_auto_install:
    dh_auto_install -- prefix=/opt/A/B/C

OR

override_dh_auto_install:
    dh_auto_install --destdir=/opt/A/B/C

Notas: Estou pensando em instalar o deb no sistema Ubuntu 14.04.

    
por Wimateeka 16.05.2018 / 19:31

2 respostas

2

dh_auto_install apenas reconhece --destdir como uma opção; quando você escreve -- prefix=... , essa não é uma opção dh_auto_install , é um argumento que é passado para qualquer programa que o dh_auto_install determine que precisa ser executado para realizar a instalação.

No entanto, dh_auto_install provavelmente não é a ferramenta adequada para o que você está tentando alcançar. O prefixo final da instalação é geralmente especificado no momento da configuração, não no momento da instalação; para isso, você substituiria dh_auto_configure :

override_dh_auto_configure:
        dh_auto_configure -- --prefix=/opt/A/B/C
    
por 16.05.2018 / 23:46
1

Você deve saber a diferença entre o prefixo e o diretório de destino (destdir) :

prefixo - é o caminho que precede o caminho dos seus binários.

destdir - é a localização dos seus binários.

Normalmente (a maneira mais popular) de fluxo de trabalho que produz binários a partir da fonte se parece com o seguinte (é apenas um exemplo):

  1. %código%.
  2. ./configure --prefix=/prepend/path ... .
  3. make ... .

Como você pode ver, o prefixo é definido durante a etapa de configuração.

Após a etapa 3, os arquivos criados serão instalados em make install DESTDIR=/path/for/binaries e estarão localizados em /path/for/binaries .

Quando você cria um pacote, você tem o diretório com as fontes e o diretório /path/for/binaries/prepend/path nele.

Se o seu programa deve estar localizado em debian você deve substituir /opt/A/B/C ( man 1 dh_auto_configure ) segmenta em dh_auto_configure da seguinte forma:

override_dh_auto_configure:
    dh_auto_configure -- --prefix=/opt/A/B/C 

Este passo corresponde ao passo 1 que foi mencionado no início da resposta.

Então, não há necessidade de substituir outra coisa no debian/rules .

@StephenKitt dê um bom esclarecimento sobre debian/rules nos comentários para esta questão.

    
por 16.05.2018 / 23:16

Tags