Com um arquivo debian/preinst
, você pode executar ações na instalação, mas não na atualização.
#!/bin/sh
set -e
case "" in
install)
# do some magic
;;
upgrade|abort-upgrade)
;;
*)
echo "postinst called with unknown argument \''" >&2
exit 0
;;
esac
#DEBHELPER#
exit 0
Embora, como o nome indica, isso é executado antes que o pacote seja instalado. Então você pode não ser capaz de fazer o que precisa aqui. A maioria dos pacotes simplesmente testa no estágio de configuração do postinst
se o usuário já tiver sido criado. Aqui está colord
$ cat /var/lib/dpkg/info/colord.postinst
#!/bin/sh
set -e
case "" in
configure)
# create colord group if it isn't already there
if ! getent group colord >/dev/null; then
addgroup --quiet --system colord
fi
# create the scanner group if it isn't already there
if ! getent group scanner >/dev/null; then
addgroup --quiet --system scanner
fi
# create colord user if it isn't already there
if ! getent passwd colord >/dev/null; then
adduser --system --ingroup colord --home /var/lib/colord colord \
--gecos "colord colour management daemon"
# Add colord user to scanner group
adduser --quiet colord scanner
fi
# ensure /var/lib/colord has appropriate permissions
chown -R colord:colord /var/lib/colord
;;
esac
exit 0