
Scripts para criar pacotes debian existem e funcionam. Eu tenho que modificá-los. Em novos casos específicos, pode haver alguns arquivos opcionais que desejo incluir no pacote.
Se eu adicioná-los ao package.install, falharei, pois apenas esses arquivos não existem. Se eu não adicioná-los ao package.install, eles nunca serão incluídos no pacote, mesmo que existam.
Para determinar o caso específico, tenho uma variável de ambiente especial:SPECIFIC_CASE=CASE
Como devo configurar scripts de criação de pacotes debian para procurar esses arquivos apenas em casos específicos?
No arquivo rules
(que é projetado como Makefile), tenho alvos:
copy_files:
override_dh_install:
override_dh_auto_install: (empty)
...list of other overrides...
install:
postbuild:
clean:
Responder1
Com a maioria das ferramentas de empacotamento no Debian, o conteúdo do pacote package
acaba sendo o que está presente debian/package
quando dpkg-deb
é executado. Você pode colocar os arquivos lá da maneira que quiser, não precisa depender dh_install
(que é a ferramenta que processa .install
os arquivos).
Por isso:
override_dh_install:
dh_install
install blah debian/package/wherever
e assim por diante. É aqui que você adicionaria o tratamento condicional de arquivos.
No entantoé importante perceber que uma especificação de pacote (e isso não é específico do Debian) deve ser consistente:ou sejaem uma determinada arquitetura, a construção de um pacote deve sempre resultar no mesmo conteúdo do pacote. Empacotar conteúdo opcional geralmente envolve construir o projeto para que todos os arquivos sejam gerados e, em seguida, despachá-los em pacotes diferentes, dos quais nem todos precisam ser instalados. (Essepodeenvolvem ir muito longe,por exemploa compilação do GCC que possui alguns truques para que o driver do compilador conheça todos os idiomas disponíveis, mas nem todos precisam ser instalados.)