เพิ่มขั้นตอนที่กำหนดเองไปยัง debian / package.postinst ของแพ็คเกจต้นทางหรือไม่


8

ฉันมีแพ็คเกจที่รวมdebian/package.postinst.debhelperไฟล์ที่สร้างขึ้นอัตโนมัติเป็นไบนารีที่สร้างขึ้น เมื่อฉันใส่รหัสของตัวเองลงในไฟล์ไฟล์ที่debian/package.postinstสร้างโดยอัตโนมัติจะไม่ถูกรวมเข้าไปในไบนารีผลลัพธ์

ฉันจะเพิ่มรหัสที่กำหนดเองลงในpostinstไฟล์ในแพ็คเกจที่สร้างขึ้นโดยไม่ปิดกั้นการใช้รหัสที่สร้างขึ้นอัตโนมัติได้อย่างไร

คำตอบ:


12

สคริปต์ postinst ของคุณควรมี#DEBHELPER#โทเค็นหากคุณใช้คำสั่ง debhelper ที่อาจแก้ไขได้ มันจะถูกแทนที่ในสคริปต์ผลลัพธ์โดยเนื้อหาที่สร้างขึ้นโดยอัตโนมัติ ดูmanpage สำหรับdh_installdebคำสั่งไอคอน Manpage

ตัวอย่างเช่น:

#!/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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.