
Se estou escrevendo um script mantenedor de pacote Debian (como um script de pré-instalação) para um pacote que crio, como posso fazer com que o script determine se ele deve estar rodando em modo não interativo (por exemplo, se apt-get install
foi invocado com -y
, e coisas assim)?
Responder1
Se os scripts do seu mantenedor precisarem interagir com o usuário que está executando a instalação, a maneira recomendada de proceder é usar debconf
; verInstalação condicional de arquivos e diretórios em pacotes Debianpara ponteiros. Isso pode parecer complicado, mas traz uma série de benefícios — não apenas lida debconf
com configurações não interativas (com uma DEBIAN_FRONTEND=noninteractive
invocação explícita ou porque não há como interagir com um usuário), mas também oferece suporte a vários frontends e configurações gerenciadas por debconf
pode ser definido antes da instalação (usando “pré-propagação”). Isso pode não ser relevante no seu caso, mas debconf
também oferece suporte a prompts em vários idiomas.
Observe que apt-get
os sinalizadores são separados da interatividade do script do mantenedor; verDEBIAN_FRONTEND=noninteractive é redundante com apt-get -yqq?