Benutzerdefinierte Schritte zum Debian / package.postinst des Quellpakets hinzufügen?

8

Ich habe ein Paket, das eine automatisch generierte debian/package.postinst.debhelperDatei in die generierte Binärdatei enthält. Wenn ich meinen eigenen Code in eine Datei bei debian/package.postinsteinfüge, wird die automatisch generierte Datei nicht mehr in die resultierende Binärdatei integriert.

Wie füge ich der postinstDatei im generierten Paket benutzerdefinierten Code hinzu, ohne die Verwendung des automatisch generierten Codes zu blockieren?

Matt Joiner
quelle

Antworten:

10

Ihr Postinst-Skript sollte ein #DEBHELPER#Token enthalten, wenn Sie Debhelper-Befehle verwenden, die es möglicherweise ändern. Es wird im resultierenden Skript durch den automatisch generierten Inhalt ersetzt. Siehe Manpage für den dh_installdebBefehlManpage-Symbol

Zum Beispiel:

#!/bin/sh
# postinst script for webpy-example
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

# source debconf library
. /usr/share/debconf/confmodule

# Source dbconfig-common functions
if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql  ]; then
  . /usr/share/dbconfig-common/dpkg/postinst.pgsql
fi

case "$1" in

  configure)
    # Set up our config for apache
    /bin/cp /usr/share/webpy-example/postinstall/webpy-config /etc/apache2/conf.d/
    /usr/sbin/a2enmod wsgi
    /usr/sbin/a2enmod rewrite
    /etc/init.d/apache2 reload

    # set up database
    dbc_pgsql_createdb_encoding="UTF8"
    dbc_generate_include=template:/usr/share/webpy-example/lib/credentials.py
    dbc_generate_include_args="-U -o template_infile='/usr/share/doc/webpy-example/credentials_template.py'"
    dbc_generate_include_owner="root:www-data"
    dbc_generate_include_perms="0660"
    dbc_go webpy-example $@ || true
  ;;

  abort-upgrade|abort-remove|abort-deconfigure)
    exit 0
  ;;

  *)
    echo "postinst called with unknown argument \`$1'" >&2
    exit 1
  ;;

esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

db_stop

exit 0
andrewsomething
quelle