Estou aprendendo como criar pacotes deb para um pequeno projeto meu. Consegui criar o pacote deb para o binário. Até agora tudo bem. Após a conclusão do processo, posso ver o seguinte:
$ dpkg -c gitmod_0.10-1_amd64.deb
drwxr-xr-x root/root 0 2024-06-01 13:57 ./
drwxr-xr-x root/root 0 2024-06-01 13:57 ./usr/
drwxr-xr-x root/root 0 2024-06-01 13:57 ./usr/bin/
-rwxr-xr-x root/root 31400 2024-06-01 13:57 ./usr/bin/gitmod
drwxr-xr-x root/root 0 2024-06-01 13:57 ./usr/share/
drwxr-xr-x root/root 0 2024-06-01 13:57 ./usr/share/doc/
drwxr-xr-x root/root 0 2024-06-01 13:57 ./usr/share/doc/gitmod/
-rw-r--r-- root/root 154 2024-06-01 13:57 ./usr/share/doc/gitmod/changelog.Debian.gz
-rw-r--r-- root/root 45 2024-06-01 13:57 ./usr/share/doc/gitmod/copyright
Quero poder gerar o pacote para diferentes versões do Debian (ou até mesmo outras distros), então gostaria de poder ter pacotes como:
gitmod_0.10-1_bullseye_amd64.deb
gitmod_0.10-1_bookworm_amd64.deb
Portanto, preciso fornecer um sufixo de forma parametrizada (mesmo que precise usar arquivos de modelo para gerar os arquivos usados por debuild
para gerar o pacote).
É possível conseguir isso de maneira padrão?
Os nomes dos pacotes são codificados : eles contêm o nome do pacote, versão (incluindo revisão Debian) e arquitetura. Portanto, a única maneira de adicionar um sufixo no estilo que você procura é adicioná-lo à revisão do Debian.
Por exemplo, você pode especificar
0.10-1+deb11u1
paradebian/changelog
seu pacote Bullseye e0.10-1+deb12u1
para seu pacote Bookworm. Isso produziria pacotes em arquivosgitmod_0.10-1+deb11u1_amd64.deb
egitmod_0.10-1+deb12u1_amd64.deb
.Para pacotes direcionados a diferentes versões de uma determinada distribuição, é melhor usar uma versão numérica para que as versões dos pacotes sejam classificadas de uma forma que faça sentido. Se você usar sufixos
bookworm
ebullseye
, e um usuário acabar com ambos disponíveis em seus repositórios ( por exemplo, durante uma atualização do Debian 11 para 12),apt
preferirá abullseye
versão porque é “superior” àbookworm
versão. Usandodeb11u1
edeb12u1
evita isso. Consulte O que significa a string de versão de dpkg/aptitude/apt-show-versions? Por exemplo.