Hello,
Lately we have encountered problems when upgrading the postgresql-9.4
package from apt.postgresql.org under Debian Jessie:
Preparing to unpack .../postgresql-9.4_9.4.12-1.pgdg80+1_i386.deb ...
dpkg: warning: subprocess old pre-removal script returned error exit
status 102
dpkg: trying script from the new package instead ...
dpkg: error processing archive
/var/cache/apt/archives/postgresql-9.4_9.4.12-1.pgdg80+1_i386.deb
(--unpack):
subprocess new pre-removal script returned error exit status 102
Errors were encountered while processing:
/var/cache/apt/archives/postgresql-9.4_9.4.12-1.pgdg80+1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
---
I suspect that the problem is probably related to these changes:
postgresql-common updated to version 183.pgdg+1:
* debian/maintscripts-functions: Unconditionally call invoke-rc.d,
and drop
path names from program invocations (Standards-Version 4.0.0).
* debian/maintscripts-functions: Use 'invoke-rc.d
"postgresql(at)$ver-*" stop'
to prevent upgrading/removing server packages from stopping other major
version clusters when running systemd. (Closes: #809811)
---
Under Debian Jessie these cause the following test at line 467 of
/usr/sbin/invoke-rc.d to fail:
if [ -n "$is_upstart" ] || testexec
"${INITDPREFIX}${INITSCRIPTID}" ; then
This line effectively checks if we're running upstart (no, we're using
systemd) or if there is an executable in /etc/init.d. Adding a 'set -x'
to the script shows us it checks:
testexec /etc/init.d/postgresql@9.4-*
Which doesn't exist and this the program exists with code 102, causing
the prerm scrip to fail in turn.
---
Running:
touch '/etc/init.d/postgresql@9.4-*'
chmod +X '/etc/init.d/postgresql@9.4-*'
Causes the upgrade to succeed.
Regards,
Justin Ossevoort