Parece que você cria um pacote binário debian quase manualmente usando o comando dpkg-deb. Embora essa abordagem não seja tão ruim, você obterá um tratamento melhor de muitas coisas se tentar construir pacotes criando os pacotes de origem e, em seguida, criando pacotes binários a partir deles (mesmo que sejam arquivos independentes de arquitetura, como os PHP) . Isso requer uma configuração única de vários arquivos no diretório debian/
.
Existe um arquivo debian/rules
especial que decide o que rodar para construir pacotes Debian de diferentes tipos (isto é, fonte, binário, independente de binário) e para manter o próprio diretório de construção. Você pode considerar a execução de todas as suas ferramentas de compilação a partir desse arquivo, em vez de invocá-las uma a uma. Para consertar o problema de configurar proprietários / permissões durante a construção do usuário não privilegiado, você precisaria executar todo o processo de criação de pacotes Debian sob fakeroot
wrapper. Para pacotes debian oficiais, isso pode ser feito executando fakeroot debian/rules binary
. No entanto, isso é invocado a partir do dpkg-buildpackage
, então você acabou de executar fakeroot dpkg-buildpackage
.
O Debian é ótimo por suas ferramentas de desenvolvedor (veja os pacotes debhelper
, devscripts
e relacionados) e parece que você também não está usando (obviamente porque você constrói os pacotes sob outro sistema operacional). Eles vão lhe poupar muito tempo. Por exemplo, há dh_fixperms
, que corrigirá permissões e problemas de propriedade para você, dh_install
para colocar arquivos nos locais corretos, dh_link
para criar links simbólicos necessários e outros scripts dh_
. Você pode querer ver como isso funciona no mundo real, então aqui está um lista de software implementado em PHP e empacotado no Debian .
Outra boa ferramenta para você será o git-buildpackage , que é um wrapper para ferramentas de compilação do Debian desenvolvidas para construir pacotes mantidos sob o Git DVCS.
Você pode querer dar uma olhada nas informações gerais para construir com o Git na página wiki Debian .
Infelizmente não existe phing no Debian, então você pode querer pedir a alguém para empacotá-lo para o Debian (assim você teria sua pilha de compilação completa disponível no Debian) ou apenas cozinhar um chroot do Debian comdebootstrap
e instalar o phing manualmente nele.
Se você está aderindo aos pacotes Debian como um mecanismo primário de implementação junto com algum sistema de CI, aqui estão alguns pontos:
- Pegue toda a pilha de compilação no Debian, se possível. Isto lhe dará a possibilidade de construir seu software em um chroot Debian limpo, usando ferramentas como
pbuilder
oucowbuilder
. Caso contrário, cozinhe uma caixa Debian para construção. Você pode querer criar uma máquina virtual e fornecê-la a outros desenvolvedores. - Organize um repositório Debian restrito (a criação da chave GPG para assinatura automática para o repositório é suficiente para reduzir os avisos vindos do apt) e coloque os pacotes lá. Adicione-o ao arquivo de configuração
/etc/apt/sources.list.d/my-repository.list
das caixas de destino. Não esqueça de importar sua chave. Isso fornecerá informações sobre dependências que você não saberia se instalasse o pacote com apenasdpkg -i *.deb
até a fase de instalação em si. - Você pode querer instalar seus sites de pacotes regularmente (como releases / nightly / etc) em vez de instalá-los em todas as construções para economizar tempo e largura de banda. Estou usando principalmente o rsync e alguns Makefile para atualizar o banco de dados (ideia emprestada da migração de esquema do banco de dados Ruby).
- Você pode querer executar alguns comandos administrativos do agente do IC sem senha (por exemplo, recarregando a configuração do servidor da Web quando ela é atualizada com
sudo invoke-rc.d nginx reload
. Se estiver, restrinja-se a executar comandos exatos modificando/etc/sudoers
, respectivamente.