Qual é a maneira de esforço mínimo de empacotar uma extensão do PostgreSQL em um .deb
arquivo para o Ubuntu (a partir de 18.04)?
Eu fiz algumas pesquisas, mas encontrei muitas sugestões diferentes (algumas desatualizadas).
Suponha que eu queira empacotar uma extensão postgres simples, como a primeira e a última funções agregadas .
Esta resposta do StackOverflow sugere que se deve primeiro criar uma estrutura de diretórios manualmente da seguinte forma:
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
e dpkg -b /path/to/the/ProgramName-Version
depois de definir as permissões de arquivo corretas.
Outros sugerem usar dh-make , e o Ubuntu Packaging Guid sugere um fluxo de trabalho que usa alguma cadeia de ferramentas baseada em bzr
.
Mas acho que o PostgreSQL tem sua própria infraestrutura de compilação para extensões chamadas PGXS (a partir do PostgreSQL 12.x). Achei o PGXS muito fácil de usar, porque não preciso me preocupar com a estrutura de pastas e copiarei os make install
arquivos para os diretórios corretos do sistema, independentemente da versão do PostgreSQL.
Existe uma maneira de combinar a abordagem manual acima e a abordagem PGXS para criar automaticamente uma extensão do PostgreSQL como um .deb
arquivo?
Claro. Primeiro você precisa criar um
debian/
diretório com umcontrol
erules
arquivos copiados de outras extensões. Existem muitos exemplos no repositório PGDG Apt . Adicione a seguinte linha em suas fontes APT (bionic é o codinome do Ubuntu 18.04) se você ainda não o tiver:Para ver a lista de pacotes:
apt search 'postgresql-*'
Para baixar as fontes:
apt source name-of-package
Uma vez que seu diretório debian está bom e as dependências estão instaladas, basicamente você constrói o pacote para a extensão
dpkg-buildpackage -rfakeroot -b
como qualquer outro pacote Debian.