postrm is in snapd 2.32.5+18.04.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | #!/bin/sh
set -e
systemctl_stop() {
unit="$1"
echo "Stopping unit $unit"
systemctl stop -q "$unit" || true
for i in $(seq 20); do
echo "Waiting until unit $unit is stopped [attempt $i]"
if ! systemctl is-active -q "$unit"; then
echo "$unit is stopped."
return
fi
sleep .1
done
}
if [ "$1" = "purge" ]; then
# undo any bind mount to /snap that resulted from LP:#1668659
# (that bug can't happen in trusty -- and doing this would mess up snap.mount.service there)
if grep -q "/snap /snap" /proc/self/mountinfo; then
umount -l /snap || true
fi
units=$(systemctl list-unit-files --full | grep '^snap[-.]' | cut -f1 -d ' ' | grep -vF snap.mount.service || true)
mounts=$(echo "$units" | grep '^snap[-.].*\.mount$' || true)
services=$(echo "$units" | grep '^snap[-.].*\.service$' || true)
for unit in $services $mounts; do
# ensure its really a snap mount unit or systemd unit
if ! grep -q 'What=/var/lib/snapd/snaps/' "/etc/systemd/system/$unit" && ! grep -q 'X-Snappy=yes' "/etc/systemd/system/$unit"; then
echo "Skipping non-snapd systemd unit $unit"
continue
fi
echo "Stopping $unit"
systemctl_stop "$unit"
# if it is a mount unit, we can find the snap name in the mount
# unit (we just ignore unit files)
snap=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f3 -d/)
rev=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f4 -d/)
if [ -n "$snap" ]; then
echo "Removing snap $snap and revision $rev"
# aliases
if [ -d /snap/bin ]; then
find /snap/bin -maxdepth 1 -lname "$snap" -delete
find /snap/bin -maxdepth 1 -lname "$snap.*" -delete
fi
# generated binaries
rm -f "/snap/bin/$snap"
rm -f "/snap/bin/$snap".*
# snap mount dir
# we pass -d (clean up loopback devices) for trusty compatibility
umount -d -l "/snap/$snap/$rev" 2> /dev/null || true
rm -rf "/snap/$snap/$rev"
rm -f "/snap/$snap/current"
# snap data dir
rm -rf "/var/snap/$snap/$rev"
rm -rf "/var/snap/$snap/common"
rm -f "/var/snap/$snap/current"
# opportunistic remove (may fail if there are still revisions left
for d in "/snap/$snap" "/var/snap/$snap"; do
if [ -d "$d" ]; then
rmdir --ignore-fail-on-non-empty "$d" || true
fi
done
# udev rules
find /etc/udev/rules.d -name "*-snap.${snap}.rules" -execdir rm -f "{}" \;
# dbus policy files
find /etc/dbus-1/system.d -name "snap.${snap}.*.conf" -execdir rm -f "{}" \;
# timer files
find /etc/systemd/system -name "snap.${snap}.*.timer" | while read -r f; do
systemctl_stop "$(basename $f)"
rm -f "$f"
done
fi
echo "Removing $unit"
rm -f "/etc/systemd/system/$unit"
rm -f "/etc/systemd/system/multi-user.target.wants/$unit"
done
# generated readme files
rm -f "/snap/README"
echo "Final directory cleanup"
for d in "/snap/bin" "/snap" "/var/snap"; do
# Force remove due to directories for old revisions could still exist
rm -rf "$d"
if [ -d "$d" ]; then
echo "Cannot remove directory $d"
fi
done
echo "Discarding preserved snap namespaces"
# opportunistic as those might not be actually mounted
if [ -d /run/snapd/ns ]; then
if [ $(ls /run/snapd/ns/*.mnt | wc -l) -gt 0 ]; then
for mnt in /run/snapd/ns/*.mnt; do
umount -l "$mnt" || true
rm -f "$mnt"
done
fi
if [ $(ls /run/snapd/ns/*.fstab | wc -l) -gt 0 ]; then
for fstab in /run/snapd/ns/*.fstab; do
rm -f "$fstab"
done
fi
umount -l /run/snapd/ns/ || true
fi
echo "Removing extra snap-confine apparmor rules"
rm -f /etc/apparmor.d/snap.core.*.usr.lib.snapd.snap-confine
echo "Removing snapd cache"
rm -f /var/cache/snapd/*
echo "Removing snapd state"
rm -rf /var/lib/snapd
fi
# Automatically added by dh_installdeb/11.1.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/apparmor.d/usr.lib.snapd.snap-confine 2.23.6~ -- "$@"
# End automatically added section
# Automatically added by dh_installdeb/11.1.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/ld.so.conf.d/snappy.conf 2.0.7~ -- "$@"
# End automatically added section
# Automatically added by dh_installdeb/11.1.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/grub.d/09_snappy 1.7.3ubuntu1 -- "$@"
# End automatically added section
# Automatically added by dh_apparmor/2.12-4ubuntu4
if [ "$1" = "purge" ] && ! [ -e "/etc/apparmor.d/usr.lib.snapd.snap-confine.real" ] ; then
rm -f "/etc/apparmor.d/disable/usr.lib.snapd.snap-confine.real" || true
rm -f "/etc/apparmor.d/force-complain/usr.lib.snapd.snap-confine.real" || true
rm -f "/etc/apparmor.d/local/usr.lib.snapd.snap-confine.real" || true
rmdir /etc/apparmor.d/disable 2>/dev/null || true
rmdir /etc/apparmor.d/local 2>/dev/null || true
rmdir /etc/apparmor.d 2>/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_start/11.1.6ubuntu1
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_enable/11.1.6ubuntu1
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper mask 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper purge 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
deb-systemd-helper unmask 'snapd.autoimport.service' 'snapd.core-fixup.service' 'snapd.service' 'snapd.snap-repair.timer' 'snapd.socket' 'snapd.system-shutdown.service' >/dev/null || true
fi
fi
# End automatically added section
|