dpkg.postinst 1.9 KB

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