Como depurar (Debian) o Apache sem executar uma limpeza

1

Eu estou tentando editar um módulo do Apache no Debian (estritamente, estou fazendo isso no Raspbian Jessie-Lite), e estou seguindo amplamente o Instruções de compilação do Debian :

$ mkdir -p ~/src/debian; cd ~/src/debian
$ apt-get source apache2-bin
$ cd apache2-2.4.10
$ debuild -b -uc -us

E o processo de construção leva cerca de uma hora e meia em um pi original original. Que está bem. Uma vez! Mas acredito que o processo de compilação está executando um make clean e assim, depois de uma pequena edição de um único arquivo mod _ *. C, ele quer reconstruir a coisa toda, o que está atrasando meu desenvolvimento!

Eu tentei adicionar -dc ao comando debuild , mas ele não criou nada. Eu até tentei apagar o mod de destino _ *. Então arquivo para "encorajá-lo" a reconstruí-lo, mas ainda não!

UPDATE 2016-08-21: Adicionar -nc ao comando debuild não faz com que os módulos sejam recompilados. Aqui está a saída desse comando:

$ debuild -b -uc -us -nc
 dpkg-buildpackage -rfakeroot -D -us -uc -b -nc
dpkg-buildpackage: source package apache2
dpkg-buildpackage: source version 2.4.10-10+deb8u5
dpkg-buildpackage: source distribution jessie-security
dpkg-buildpackage: source changed by Salvatore Bonaccorso <[email protected]>
 dpkg-source --before-build apache2-2.4.10
dpkg-buildpackage: host architecture armhf
 debian/rules build
dh build --parallel --with autotools_dev
 fakeroot debian/rules binary
dh binary --parallel --with autotools_dev
 dpkg-genchanges -b >../apache2_2.4.10-10+deb8u5_armhf.changes
dpkg-genchanges: binary-only upload (no source code included)
 dpkg-source --after-build apache2-2.4.10
dpkg-buildpackage: binary-only upload (no source included)
Now running lintian...
N: 16 tags overridden (1 error, 4 warnings, 11 info)
Finished running lintian.
    
por Peter Ryan 20.08.2016 / 03:22

2 respostas

5

Adicione a opção -nc à sua linha de comando debuild . Isso pode expor problemas no sistema de compilação ou na embalagem, portanto, esteja preparado. Mas para pequenas correções, normalmente funciona bem.

No entanto, como o pacote de código apache2 usa o debhelper (como muitos outros pacotes), isso por si só não é suficiente, pois o debhelper também mantém seu próprio diário de etapas concluídas em arquivos de log separados para cada pacote binário. Estes podem ser removidos inteiramente por dh_clean . Mas para fazer o debhelper refazer não mais que o trabalho necessário, trunque somente o relevante por

sed -i '/^dh_auto_build$/Q' debian/apache2-bin.debhelper.log

antes de executar debuild -nc .

    
por 21.08.2016 / 20:51
3

Dentro do diretório debian, há um arquivo de regras. É essencialmente um arquivo de criação. Se você remover todas as diretivas sobre limpeza e adicionar

override_dh_clean:

E não coloque nada nele, nenhuma limpeza acontecerá (de jeito nenhum). Tenha cuidado, pois isso pode causar problemas de construção, não é provável, mas pode. Outra alternativa é não alterar nada e usar a opção -j para fazer uma construção paralela. Não tenho certeza da vantagem que daria em um pi de framboesa.

O arquivo de regras deve ter esta aparência: link

    
por 20.08.2016 / 20:58