Tambahkan langkah-langkah khusus ke debian / package.postinst paket sumber?

8

Saya memiliki paket yang menggabungkan debian/package.postinst.debhelperfile yang dibuat secara otomatis ke dalam biner yang dihasilkan. Ketika saya memasukkan kode saya sendiri ke dalam file debian/package.postinst, file yang dibuat secara otomatis tidak lagi dimasukkan ke dalam biner yang dihasilkan.

Bagaimana cara menambahkan kode khusus ke postinstfile dalam paket yang dibuat tanpa memblokir penggunaan kode yang dibuat secara otomatis?

Matt Joiner
sumber

Jawaban:

11

Skrip postinst Anda harus menyertakan #DEBHELPER#token jika Anda menggunakan perintah debhelper yang mungkin memodifikasinya. Ini akan diganti dalam skrip yang dihasilkan oleh konten yang dibuat secara otomatis. Lihat halaman manual untuk dh_installdebperintahnyaIkon halaman manual

Sebagai contoh:

#!/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
sumber