listupgrade: old-kernel-removal version 21.10
This commit is contained in:
parent
646a7b1813
commit
dcfea674a4
|
@ -19,6 +19,7 @@ The **patch** part changes is incremented if multiple releases happen the same m
|
||||||
|
|
||||||
* evocheck: upstream release 21.10.4
|
* evocheck: upstream release 21.10.4
|
||||||
* evolinux-users + nagios-nrpe: Add support for php-fpm80 in lxc
|
* evolinux-users + nagios-nrpe: Add support for php-fpm80 in lxc
|
||||||
|
* listupgrade: old-kernel-removal version 21.10
|
||||||
* mongodb: Deny the install on Debian 11 « Bullseye » when the version is unsupported
|
* mongodb: Deny the install on Debian 11 « Bullseye » when the version is unsupported
|
||||||
* mongodb: Support version 5.0 (for buster)
|
* mongodb: Support version 5.0 (for buster)
|
||||||
* mongodb: Allow to specify a mongodb version for buster & bullseye
|
* mongodb: Allow to specify a mongodb version for buster & bullseye
|
||||||
|
|
|
@ -4,13 +4,36 @@
|
||||||
|
|
||||||
# fork by reg from /etc/kernel/postinst.d/apt-auto-removal script
|
# fork by reg from /etc/kernel/postinst.d/apt-auto-removal script
|
||||||
|
|
||||||
VERSION="21.06.3"
|
VERSION="21.10"
|
||||||
|
readonly VERSION
|
||||||
|
|
||||||
set -e
|
PROGNAME=$(basename "$0")
|
||||||
|
|
||||||
# shellcheck disable=SC2046
|
show_version() {
|
||||||
eval $(apt-config shell DPKG Dir::bin::dpkg/f)
|
cat <<END
|
||||||
DPKG="${DPKG:-/usr/bin/dpkg}"
|
${PROGNAME} version ${VERSION}
|
||||||
|
|
||||||
|
Copyright 2018-2021 Evolix <info@evolix.fr>,
|
||||||
|
Gregory Colpart <reg@evolix.fr>,
|
||||||
|
Romain Dessort <rdessort@evolix.fr>,
|
||||||
|
Ludovic Poujol <lpoujol@evolix.fr>,
|
||||||
|
Jérémy Lecour <jlecour@evolix.fr>
|
||||||
|
and others.
|
||||||
|
|
||||||
|
${PROGNAME} comes with ABSOLUTELY NO WARRANTY. This is free software,
|
||||||
|
and you are welcome to redistribute it under certain conditions.
|
||||||
|
See the GNU General Public Licence for details.
|
||||||
|
END
|
||||||
|
}
|
||||||
|
show_help() {
|
||||||
|
cat <<END
|
||||||
|
${PROGNAME} removes old kernels.
|
||||||
|
|
||||||
|
Options
|
||||||
|
-h, --help print this message and exit
|
||||||
|
--version print version and exit
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
# Detect which one of apt/aptitude we should use.
|
# Detect which one of apt/aptitude we should use.
|
||||||
# shellcheck disable=SC2120
|
# shellcheck disable=SC2120
|
||||||
|
@ -27,6 +50,13 @@ get_apt_binary() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
specifc_kernel="$1"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
eval $(apt-config shell DPKG Dir::bin::dpkg/f)
|
||||||
|
DPKG="${DPKG:-/usr/bin/dpkg}"
|
||||||
|
|
||||||
listupgrade_state_dir="${listupgrade_state_dir:-/var/lib/listupgrade}"
|
listupgrade_state_dir="${listupgrade_state_dir:-/var/lib/listupgrade}"
|
||||||
|
|
||||||
APT=$(get_apt_binary)
|
APT=$(get_apt_binary)
|
||||||
|
@ -35,8 +65,8 @@ list="$("${DPKG}" -l | awk '/^[ih][^nc][ ]+(linux|kfreebsd|gnumach)-image-[0-9]+
|
||||||
| sed -e 's#^\(linux\|kfreebsd\|gnumach\)-image-##' -e 's#:[^:]\+ # #')"
|
| sed -e 's#^\(linux\|kfreebsd\|gnumach\)-image-##' -e 's#:[^:]\+ # #')"
|
||||||
debverlist="$(echo "${list}" | cut -d' ' -f 2 | sort --unique --reverse --version-sort)"
|
debverlist="$(echo "${list}" | cut -d' ' -f 2 | sort --unique --reverse --version-sort)"
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
if [ -n "${specifc_kernel}" ]; then
|
||||||
installed_version="$(echo "$list" | awk "\$1 == \"$1\" { print \$2;exit; }")"
|
installed_version="$(echo "$list" | awk "\$1 == \"${specifc_kernel}\" { print \$2;exit; }")"
|
||||||
fi
|
fi
|
||||||
unamer="$(uname -r | tr '[:upper:]' '[:lower:]')"
|
unamer="$(uname -r | tr '[:upper:]' '[:lower:]')"
|
||||||
if [ -n "${unamer}" ]; then
|
if [ -n "${unamer}" ]; then
|
||||||
|
@ -53,7 +83,7 @@ previous_version="$(echo "${debverlist}" | sed -n 2p)"
|
||||||
debkernels="$(echo "${latest_version}
|
debkernels="$(echo "${latest_version}
|
||||||
${installed_version}
|
${installed_version}
|
||||||
${running_version}" | sort -u | sed -e '/^$/ d')"
|
${running_version}" | sort -u | sed -e '/^$/ d')"
|
||||||
kernels="$( (echo "$1
|
kernels="$( (echo "${specifc_kernel}
|
||||||
${unamer}"; for deb in ${debkernels}; do echo "${list}" | awk "\$2 == \"${deb}\" { print \$1; }"; done; ) \
|
${unamer}"; for deb in ${debkernels}; do echo "${list}" | awk "\$2 == \"${deb}\" { print \$1; }"; done; ) \
|
||||||
| sed -e 's#\([\.\+]\)#\\\1#g' -e '/^$/ d' | sort -u|tr '\n' '|' | sed -e 's/|$//')"
|
| sed -e 's#\([\.\+]\)#\\\1#g' -e '/^$/ d' | sort -u|tr '\n' '|' | sed -e 's/|$//')"
|
||||||
|
|
||||||
|
@ -81,3 +111,42 @@ echo "
|
||||||
AFTER"
|
AFTER"
|
||||||
dpkg -l | grep linux-image
|
dpkg -l | grep linux-image
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse options
|
||||||
|
# based on https://gist.github.com/deshion/10d3cb5f88a21671e17a
|
||||||
|
while :; do
|
||||||
|
case $1 in
|
||||||
|
-h|-\?|--help)
|
||||||
|
show_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-V|--version)
|
||||||
|
show_version
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
# End of all options.
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
-?*|[[:alnum:]]*)
|
||||||
|
# ignore unknown options
|
||||||
|
if [ "${QUIET}" != 1 ]; then
|
||||||
|
printf 'WARN: Unknown option (ignored): %s\n' "$1" >&2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Default case: If no more options then break out of the loop.
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
|
Loading…
Reference in a new issue