commit 766b70c5be quoted these values to
prevent globbing, but used single quotes. However, these commands are
executed with `sh -c` using single quotes, which makes the output hard
to read because of the embedded quotes being escaped.
This patch changes to use double-quotes, which should still prevent
globbing to happen, but make the output more readable.
Before:
CHANNEL=test ./install.sh
...
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
+ '[' test '!=' stable ']'
+ sh -c 'dnf config-manager --set-disabled '\''docker-ce-*'\'''
+ sh -c 'dnf config-manager --set-enabled '\''docker-ce-test'\'''
+ sh -c 'dnf makecache'
After:
CHANNEL=test ./install.sh
...
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
+ '[' test '!=' stable ']'
+ sh -c 'dnf config-manager --set-disabled "docker-ce-*"'
+ sh -c 'dnf config-manager --set-enabled "docker-ce-test"'
+ sh -c 'dnf makecache'
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The addrepo command has a bug that causes it to fail if the `.repo` file
contains empty lines, causing it to fail;
dnf config-manager addrepo --from-repofile="https://download.docker.com/linux/fedora/docker-ce.repo"
Error in added repository configuration file. Cannot set repository option "#1=
": Option "#1" not found
Use a temporary file and strip empty lines as a workaround until the bug
is fixed.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
We only need the config-manager, but it comes with a large number of weak
dependencies;
dnf -q install dnf-plugins-core
Transaction Summary:
Installing: 78 packages
Disable weak dependencies to skip those, as they're not essential for this
script;
dnf -q --setopt=install_weak_deps=False install dnf-plugins-core
Transaction Summary:
Installing: 32 packages
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Fedora 41 and up use the new dnf5 as default, which is a rewrite of
the dnf commands with different options;
+ dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Unknown argument "--add-repo" for command "config-manager". Add "--help" for more information about the arguments.
make: *** [Makefile:95: verify] Error 2
script returned exit code 2
This patch:
- adds a check for dnf5
- removes some indirection through env-vars, and instead inlines the code
Note that with CentOS 7 being EOL, we can probably remove the `yum` variant
from the script, but I left those in place for now.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The `-y` and `-q` options are global options, and can be set before the
command that's run;
apt-get --help
...
Usage: apt-get [options] command
apt-get [options] install|remove pkg1 [pkg2 ...]
apt-get [options] source pkg1 [pkg2 ...]
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The `-y` and `-q` options are global options, and can be set before the
command that's run. There's some ambiguity in the USAGE output of different
versions (`yum`, `dnf`, `dnf5`)
yum always outputs the same usage, but shows that options go _before_
the command;
yum --help
Usage: yum [options] COMMAND
yum install --help
Usage: yum [options] COMMAND
dnf (dnf4) is ambiguous; when showing usage for `install` it shows the
options to be set _after_ the command;
dnf install --help
usage: dnf install [-c [config file]] [-q] [-v] [--version] ....
but the global `--help` shows them to be before the command;
dnf --help
usage: dnf [options] COMMAND
General DNF options:
...
-q, --quiet quiet operation
-v, --verbose verbose operation
,,,
--setopt SETOPTS set arbitrary config and repo options
dnf5 is more explicit about global vs per-command options;
dnf --help
Usage:
dnf5 [GLOBAL OPTIONS] <COMMAND> ...
dnf install --help
Usage:
dnf5 [GLOBAL OPTIONS] install [OPTIONS] [ARGUMENTS]
Testing shows that older versions (`dnf4` and `yum`) handle both fine,
and because `dnf5` (per the above) prefers global options to go before
the command, we can use that convention in this script.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This check was added in 63fb2060c9, at which
time we did not provide packages fro RHEL on architectures other than s390x.
We now provide packages for RHEL 8 and 9 for amd64 (x86), arm64, and s390x,
so we can remove this check.
Note that we do not (yet?) provide packages for ppc64le, but this is more
of a niche use-case, so not adding a special condition for that, as we
don't provide that check for other distros.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This package is no longer needed on all current distro versions we support. From
the package description (https://packages.debian.org/buster/apt-transport-https);
> This is a dummy transitional package - https support has been moved into the
> apt package in 1.5. It can be safely removed.
Verifying the version of apt that's available in Ubuntu and Debian:
Ubuntu:
docker run --rm ubuntu:xenial apt --version
apt 1.2.35 (amd64)
docker run --rm ubuntu:17.04 apt --version
apt 1.4.6 (amd64)
docker run --rm ubuntu:17.10 apt --version
apt 1.5.2 (amd64)
docker run --rm ubuntu:18.04 apt --version
apt 1.6.14 (amd64)
docker run --rm ubuntu:20.04 apt --version
apt 2.0.6 (amd64)
Debian:
docker run --rm debian:stretch apt --version
apt 1.4.11 (amd64)
docker run --rm debian:buster apt --version
apt 1.8.2.3 (amd64)
docker run --rm debian:bullseye apt --version
apt 2.2.4 (amd64)
From the above; all currently supported versions of Ubuntu (18.04 and up), and
Debian (old-stable and stable) have apt > 1.5, so we can remove this dependency
from the installation instructions.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
With this patch:
sh -c install.sh
# Executing docker install script, commit:
DEPRECATION WARNING
This Linux distribution (centos 7) reached end-of-life and is no longer supported by this script.
No updates or security fixes will be released for this distribution, and users are recommended
to upgrade to a currently maintained version of centos.
Press Ctrl+C now to abort this script, or wait for the installation to continue.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Thse channels have been deprecated for quite a while, and the script
has produced an error for them for a long time, so nobody using this
script can depend on it being there.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>