Remove obsolete iproute APT package check

The installer contains a check whether the "iproute2" package is available or "iproute", which was required until Debian Wheezy. Since Debian Jessie, the package is named "iproute2", which is true as well for all supported Ubuntu versions, down to Xenial at least:
- https://packages.debian.org/search?keywords=iproute2
- https://packages.ubuntu.com/search?suite=all&keywords=iproute2

Aside of removing obsolete code, this additionally solves an actual error that can happen when the APT lists/cache update failed with DNS resolving and any package, e.g. from a 3rd party repo, contains the "iproute" name as conflict, "replaces", "provides", alias or similar, which is not uncommon as that name existed. In this case, the installer continues, as "apt-get" does not return an error code when failing at DNS resolving, and without "iproute2" installed or in present APT lists "iproute" could then falsely be selected for install.

Additionally the code comment about apt-get calls with minimal output was moved to the actual apt-get install call section, as if refers to issues with package installs that require interactive action and hence output about it to the console. The package cache update as well requires an interactive confirmation when the underlying suite code name changes, e.g. when "buster" becomes "oldstable" and "bullseye" becomes "stable". But that is not what the referred issue was about.

Signed-off-by: MichaIng <micha@dietpi.com>
This commit is contained in:
MichaIng
2021-04-13 21:13:37 +02:00
parent b0a1d6f08a
commit 34f464bd6f

View File

@@ -299,23 +299,12 @@ if is_command apt-get ; then
printf " %b Enabled %s\\n" "${TICK}" "'universe' repository"
fi
fi
# Update package cache. This is required already here to assure apt-cache calls have package lists available.
# Update package cache
update_package_cache || exit 1
# Debian 7 doesn't have iproute2 so check if it's available first
if apt-cache show iproute2 > /dev/null 2>&1; then
iproute_pkg="iproute2"
# Otherwise, check if iproute is available
elif apt-cache show iproute > /dev/null 2>&1; then
iproute_pkg="iproute"
# Else print error and exit
else
printf " %b Aborting installation: iproute2 and iproute packages were not found in APT repository.\\n" "${CROSS}"
exit 1
fi
# Since our install script is so large, we need several other programs to successfully get a machine provisioned
# These programs are stored in an array so they can be looped through later
INSTALLER_DEPS=(dhcpcd5 git "${iproute_pkg}" whiptail dnsutils)
INSTALLER_DEPS=(dhcpcd5 git iproute2 whiptail dnsutils)
# Pi-hole itself has several dependencies that also need to be installed
PIHOLE_DEPS=(cron curl iputils-ping lsof netcat psmisc sudo unzip wget idn2 sqlite3 libcap2-bin dns-root-data libcap2)
@@ -1485,9 +1474,6 @@ disable_resolved_stublistener() {
}
update_package_cache() {
# Running apt-get update/upgrade with minimal output can cause some issues with
# requiring user input (e.g password for phpmyadmin see #218)
# Update package cache on apt based OSes. Do this every time since
# it's quick and packages can be updated at any time.
@@ -1565,6 +1551,8 @@ install_dependent_packages() {
# If there's anything to install, install everything in the list.
if [[ "${#installArray[@]}" -gt 0 ]]; then
test_dpkg_lock
# Running apt-get install with minimal output can cause some issues with
# requiring user input (e.g password for phpmyadmin see #218)
printf " %b Processing %s install(s) for: %s, please wait...\\n" "${INFO}" "${PKG_MANAGER}" "${installArray[*]}"
printf '%*s\n' "$columns" '' | tr " " -;
"${PKG_INSTALL[@]}" "${installArray[@]}"