Search code examples
linuxinstallationrsyslog

How to install rsyslog-pgsql via preseed file wile install linux with default answers


I have a postinstall script:

unset DEBIAN_HAS_FRONTEND DEBIAN_FRONTEND DEBCONF_REDIR DEBCONF_OLD_FD_BASE
export DEBIAN_FRONTEND=noninteractive
aptitude -y install rsyslog-pgsql > /var/tmp/log 2>&1

While install (ps ax):

17547 tty1     S+     0:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/rsyslog-pgsql.postinst configure
17587 tty1     S+     0:00 /bin/sh /var/lib/dpkg/info/rsyslog-pgsql.postinst configure
17828 tty1     S+     0:00 whiptail --backtitle Package configuration --title Configuring rsyslog-pgsql --output-fd 11 --nocancel --msgbox An error occurred while installing the database:  Password: su: System error  If at this point you choose "retry", you will be prompted with all the  configuration questions once more and another attempt will be made at  performing the operation. "retry (skip questions)" will immediately  attempt the operation again, skipping all questions.  If you choose  "abort", the operation will fail and you will need to downgrade,  reinstall, reconfigure this package, or otherwise manually intervene to  continue using it.  If you choose "ignore", the operation will continue, ignoring further errors from dbconfig-common. 18 77

And waiting for user choice. How to skip all questions and set them in default?


Solution

    1. install package

      $ sudo apt -q -y install pkg
      
    2. install debconf utils

      # if you don't know the question
      $ sudo apt install debconf-utils
      
    3. find the question ('what is the matrix?')

      # find the question you need answered (use less instead)
      $ sudo debconf-get-selections | grep pkg
      
    4. uninstall package (purge)

      $ sudo apt-get purge pkg
      
    5. set the selection you need answered

      echo 'pkg       thequestionname      type value' | sudo debconf-set-selections;
      
    6. install package

      sudo apt-get install pkg
      

    If you upgrade packages that have new questions you can run the upgrade on vagrant, find the questions then preseed before a automated upgrade in a production environment.

        man debconf-set-selections
    

    Follow the black rabbit.