blob: 7e041c5a93d3af372f2b8ebd644184cb58945ea4 (
plain)
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
|
#!/bin/sh
# Tell apt which PostgreSQL versions have clusters present
set -eu
APTCONFDIR="/etc/apt/apt.conf.d"
[ -d "$APTCONFDIR" ] || exit 0 # skip generation on RPM systems
APTCONF="$APTCONFDIR/02autoremove-postgresql"
TMPCONF="$(mktemp --tmpdir pg_updateaptconfig.XXXXXX)"
trap "rm -f $TMPCONF" EXIT
cat > $TMPCONF <<EOF
// DO NOT EDIT!
// File maintained by /usr/share/postgresql-common/pg_updateaptconfig.
//
// Mark all PostgreSQL packages as NeverAutoRemove for which PostgreSQL
// clusters exist. This is especially important when the "postgresql" meta
// package changes its dependencies to a new version, which might otherwise
// trigger the old postgresql-NN package to be automatically removed, rendering
// the old database cluster inaccessible.
APT
{
NeverAutoRemove
{
EOF
pg_lsclusters -h | cut -d ' ' -f 1 | uniq | while read version; do
echo " \"^postgresql.*-$version\";" >> $TMPCONF
done
cat >> $TMPCONF <<EOF
};
};
EOF
if ! cmp --silent $TMPCONF $APTCONF; then
cp $TMPCONF $APTCONF
chmod 444 $APTCONF
fi
|