|
|
@ -293,83 +293,28 @@ main() {
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Ideally we want to use curl, but on some installs we
|
|
|
|
|
|
|
|
# only have wget. Detect and use what's available.
|
|
|
|
|
|
|
|
CURL=
|
|
|
|
|
|
|
|
if type curl >/dev/null; then
|
|
|
|
|
|
|
|
CURL="curl -fsSL"
|
|
|
|
|
|
|
|
elif type wget >/dev/null; then
|
|
|
|
|
|
|
|
CURL="wget -q -O-"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "$CURL" ]; then
|
|
|
|
|
|
|
|
echo "The installer needs either curl or wget to download files."
|
|
|
|
|
|
|
|
echo "Please install either curl or wget to proceed."
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Step 2: having detected an OS we support, is it one of the
|
|
|
|
# Step 2: having detected an OS we support, is it one of the
|
|
|
|
# versions we support?
|
|
|
|
# versions we support?
|
|
|
|
OS_UNSUPPORTED=
|
|
|
|
OS_UNSUPPORTED=
|
|
|
|
case "$OS" in
|
|
|
|
case "$OS" in
|
|
|
|
ubuntu)
|
|
|
|
ubuntu|debian|raspbian|centos|oracle|rhel|amazon-linux|opensuse)
|
|
|
|
if [ "$VERSION" != "xenial" ] && \
|
|
|
|
# Check with the package server whether a given version is supported.
|
|
|
|
[ "$VERSION" != "bionic" ] && \
|
|
|
|
URL="https://pkgs.tailscale.com/$TRACK/$OS/$VERSION/installer-supported"
|
|
|
|
[ "$VERSION" != "eoan" ] && \
|
|
|
|
$CURL "$URL" 2> /dev/null | grep -q OK || OS_UNSUPPORTED=1
|
|
|
|
[ "$VERSION" != "focal" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "groovy" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "hirsute" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "impish" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "jammy" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "kinetic" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "lunar" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
debian)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "stretch" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "buster" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "bullseye" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "bookworm" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "sid" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
raspbian)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "stretch" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "buster" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "bullseye" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
centos)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "7" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "8" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "9" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
oracle)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "7" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "8" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
rhel)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "7" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "8" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "9" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
amazon-linux)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "2" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "2022" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "2023" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
opensuse)
|
|
|
|
|
|
|
|
if [ "$VERSION" != "leap/15.1" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "leap/15.2" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "leap/15.3" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "leap/15.4" ] && \
|
|
|
|
|
|
|
|
[ "$VERSION" != "tumbleweed" ]
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
OS_UNSUPPORTED=1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
fedora)
|
|
|
|
fedora)
|
|
|
|
# All versions supported, no version checking required.
|
|
|
|
# All versions supported, no version checking required.
|
|
|
@ -474,19 +419,6 @@ main() {
|
|
|
|
echo "Installing Tailscale for $OS $VERSION, using method $PACKAGETYPE"
|
|
|
|
echo "Installing Tailscale for $OS $VERSION, using method $PACKAGETYPE"
|
|
|
|
case "$PACKAGETYPE" in
|
|
|
|
case "$PACKAGETYPE" in
|
|
|
|
apt)
|
|
|
|
apt)
|
|
|
|
# Ideally we want to use curl, but on some installs we
|
|
|
|
|
|
|
|
# only have wget. Detect and use what's available.
|
|
|
|
|
|
|
|
CURL=
|
|
|
|
|
|
|
|
if type curl >/dev/null; then
|
|
|
|
|
|
|
|
CURL="curl -fsSL"
|
|
|
|
|
|
|
|
elif type wget >/dev/null; then
|
|
|
|
|
|
|
|
CURL="wget -q -O-"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "$CURL" ]; then
|
|
|
|
|
|
|
|
echo "The installer needs either curl or wget to download files."
|
|
|
|
|
|
|
|
echo "Please install either curl or wget to proceed."
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
if [ "$APT_KEY_TYPE" = "legacy" ] && ! type gpg >/dev/null; then
|
|
|
|
if [ "$APT_KEY_TYPE" = "legacy" ] && ! type gpg >/dev/null; then
|
|
|
|
$SUDO apt-get update
|
|
|
|
$SUDO apt-get update
|
|
|
|