summaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
authorAndrew Dunham <andrew@du.nham.ca>2024-10-17 14:12:31 -0400
committerAndrew Dunham <andrew@du.nham.ca>2024-10-17 20:28:41 -0400
commitc0a9895748a7d7f39577ca56b2dd25b9c0d4678e (patch)
treea6801b561cbafd3d94c9d914fd4b2ef9bb6a8f2e /scripts
parentfa95318a47a96acd9dafd9829bd0c8c5332ad4c4 (diff)
downloadtailscale-c0a9895748a7d7f39577ca56b2dd25b9c0d4678e.tar.xz
tailscale-c0a9895748a7d7f39577ca56b2dd25b9c0d4678e.zip
scripts/installer.sh: support DNF5
This fixes the installation on newer Fedora versions that use dnf5 as the 'dnf' binary. Updates #13828 Signed-off-by: Andrew Dunham <andrew@du.nham.ca> Change-Id: I39513243c81640fab244a32b7dbb3f32071e9fce
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/installer.sh36
1 files changed, 34 insertions, 2 deletions
diff --git a/scripts/installer.sh b/scripts/installer.sh
index 19911ee23..55315c0ce 100755
--- a/scripts/installer.sh
+++ b/scripts/installer.sh
@@ -488,9 +488,41 @@ main() {
set +x
;;
dnf)
+ # DNF 5 has a different argument format; determine which one we have.
+ DNF_VERSION="3"
+ if dnf --version | grep -q '^dnf5 version'; then
+ DNF_VERSION="5"
+ fi
+
+ # The 'config-manager' plugin wasn't implemented when
+ # DNF5 was released; detect that and use the old
+ # version if necessary.
+ if [ "$DNF_VERSION" = "5" ]; then
+ set -x
+ $SUDO dnf install -y 'dnf-command(config-manager)' && DNF_HAVE_CONFIG_MANAGER=1 || DNF_HAVE_CONFIG_MANAGER=0
+ set +x
+
+ if [ "$DNF_HAVE_CONFIG_MANAGER" != "1" ]; then
+ if type dnf-3 >/dev/null; then
+ DNF_VERSION="3"
+ else
+ echo "dnf 5 detected, but 'dnf-command(config-manager)' not available and dnf-3 not found"
+ exit 1
+ fi
+ fi
+ fi
+
set -x
- $SUDO dnf install -y 'dnf-command(config-manager)'
- $SUDO dnf config-manager --add-repo "https://pkgs.tailscale.com/$TRACK/$OS/$VERSION/tailscale.repo"
+ if [ "$DNF_VERSION" = "3" ]; then
+ $SUDO dnf install -y 'dnf-command(config-manager)'
+ $SUDO dnf config-manager --add-repo "https://pkgs.tailscale.com/$TRACK/$OS/$VERSION/tailscale.repo"
+ elif [ "$DNF_VERSION" = "5" ]; then
+ # Already installed config-manager, above.
+ $SUDO dnf config-manager addrepo --from-repofile="https://pkgs.tailscale.com/$TRACK/$OS/$VERSION/tailscale.repo"
+ else
+ echo "unexpected: unknown dnf version $DNF_VERSION"
+ exit 1
+ fi
$SUDO dnf install -y tailscale
$SUDO systemctl enable --now tailscaled
set +x