dpkg.postinst 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/bin/sh
  2. # This script can be called in the following ways:
  3. #
  4. # After the package was installed:
  5. # <postinst> configure <old-version>
  6. #
  7. # After the package was triggered:
  8. # <postinst> triggered <trigger-name>…
  9. #
  10. #
  11. # If prerm fails during upgrade or fails on failed upgrade:
  12. # <old-postinst> abort-upgrade <new-version>
  13. #
  14. # If prerm fails during removal:
  15. # <old-postinst> abort-remove
  16. #
  17. # If prerm fails during deconfiguration of a package:
  18. # <postinst> abort-deconfigure in-favour <new-package> <version>
  19. # removing <old-package> <version>
  20. #
  21. # If prerm fails during replacement due to conflict:
  22. # <postinst> abort-remove in-favour <new-package> <version>
  23. set -e
  24. # Create the database files if they don't already exist
  25. create_database() {
  26. admindir=${DPKG_ADMINDIR:-/var/lib/dpkg}
  27. for file in diversions statoverride status; do
  28. if [ ! -f "$admindir/$file" ]; then
  29. touch "$admindir/$file"
  30. fi
  31. done
  32. }
  33. # Move the info directory from /usr/info to /usr/share/info
  34. move_info_directory() {
  35. if [ -d /usr/info ] && [ ! -L /usr/info ] \
  36. && [ -f /usr/info/dir ] && [ ! -L /usr/info/dir ]
  37. then
  38. echo "Moving /usr/info/dir to /usr/share/info/dir ..."
  39. mv /usr/info/dir /usr/share/info/dir
  40. if [ -f /usr/info/dir.old ]; then
  41. mv /usr/info/dir.old /usr/share/info/dir.old
  42. fi
  43. fi
  44. }
  45. # Remove the /usr/info symlinks we used to generate
  46. remove_info_symlink() {
  47. if [ -L /usr/info ]; then
  48. echo "Removing /usr/info symlink ..."
  49. rm /usr/info
  50. elif [ -L /usr/info/dir ]; then
  51. echo "Removing /usr/info/dir symlink ..."
  52. rm /usr/info/dir
  53. fi
  54. }
  55. # Create log file and set default permissions if possible
  56. create_logfile() {
  57. logfile=/var/log/dpkg.log
  58. touch $logfile
  59. chmod 644 $logfile
  60. chown root:root $logfile 2>/dev/null || chown 0:0 $logfile
  61. }
  62. case "$1" in
  63. configure)
  64. create_database
  65. create_logfile
  66. move_info_directory
  67. remove_info_symlink
  68. ;;
  69. abort-upgrade|abort-deconfigure|abort-remove)
  70. ;;
  71. *)
  72. echo "$0 called with unknown argument '$1'" 1>&2
  73. exit 1
  74. ;;
  75. esac
  76. #DEBHELPER#
  77. exit 0