Em relação à sua primeira pergunta:
XYZ package installs some python scripts which on execution creates .pyc file.Now On uninstallation I want to remove all the files.What would be the postrm script to cleanly remove package?
Em geral, um script postrm adequado é (acredito) gerado automaticamente por debhelper e amigos. Veja a man page para dh_python
.
Em particular, esta página man diz
If some modules need to be byte-compiled at install time, appropriate postinst and prerm scripts will be generated. If already byte-compiled modules are found, they are removed.
Com relação à sua segunda pergunta,
Also XYZ is configured using debconf file which on package installation prompts user to accepts EULA. How do I exit if user says no to the EULA?
Eu não sei a resposta de improviso, mas dê uma olhada nos templates debconf para alguns dos softwares proprietários incluídos no Debian. Sun Java é um exemplo que tem (tinha?) Um EULA que foi comprado pelo debconf.
ADENDO:
Como o OP parece não estar convencido, aqui está uma cópia exata do script prerm de um pacote chamado python-corrmodel
. Eu escrevi o software e também a embalagem do Debian. No entanto, não escrevi os scripts postinst e prerm e, de fato, não os havia observado até aquele momento. Observe que o script prerm chama o utilitário pyclean
, que faz parte do Python. A ajuda diz:
pyclean - removes .pyc and .pyo files
Observe também que o script diz que o código foi gerado por dh_python2
.
Uma observação final: recomendo usar dh
, que é relativamente novo em comparação com o debhelper da velha escola, mas está crescendo rapidamente em popularidade. Basicamente, dh
por padrão invoca todas as regras debhelper no modo padrão em alguma ordem específica. Se você quiser customizar o comportamento de um comando particular do debhelper, você pode sobrescrevê-lo. Aqui é uma descrição das substituições de dh por Joey Hess, o autor do debhelper. A grande vantagem é que o seu arquivo de regras é muito menos confuso, e você pode ter certeza de que todos os comandos são chamados na ordem correta.
Aqui está o script prerm.
#!/bin/sh
set -e
# Automatically added by dh_python2:
if which pyclean >/dev/null 2>&1; then
pyclean -p python-corrmodel
else
dpkg -L python-corrmodel | grep \.py$ | while read file
do
rm -f "${file}"[co] >/dev/null
done
fi
# End automatically added section
ADENDO 2:
Como eu anunciei dh
, adicionarei meu arquivo de regras abaixo. Este não é o arquivo de regras completo, mas essa linha contém a lógica principal. Isso basicamente tem debhelper
distribuindo a construção para um script setup.py
, que então faz o trabalho pesado.
%:
dh $@ --with python2 --buildsystem=python_distutils --install-layout=deb