|
|
|
@ -2,6 +2,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
attempt=0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_or_fail()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
attempt=$((attempt + 1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ $attempt -gt 5 ]; then
|
|
|
|
|
|
|
|
echo "Failed to install packages. Giving up."
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
remove_externally_managed_marker()
|
|
|
|
remove_externally_managed_marker()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"${python_interpreter}" -c '
|
|
|
|
"${python_interpreter}" -c '
|
|
|
|
@ -64,13 +82,13 @@ install_pip() {
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
curl --silent --show-error "${pip_bootstrap_url}" -o /tmp/get-pip.py && \
|
|
|
|
curl --silent --show-error "${pip_bootstrap_url}" -o /tmp/get-pip.py && \
|
|
|
|
"${python_interpreter}" /tmp/get-pip.py --disable-pip-version-check --quiet && \
|
|
|
|
"${python_interpreter}" /tmp/get-pip.py --disable-pip-version-check --quiet && \
|
|
|
|
rm /tmp/get-pip.py \
|
|
|
|
rm /tmp/get-pip.py \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -99,21 +117,21 @@ bootstrap_remote_alpine()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
apk add -q ${packages} \
|
|
|
|
apk add -q ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
# Upgrade the `libexpat` package to ensure that an upgraded Python (`pyexpat`) continues to work.
|
|
|
|
# Upgrade the `libexpat` package to ensure that an upgraded Python (`pyexpat`) continues to work.
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
apk upgrade -q libexpat \
|
|
|
|
apk upgrade -q libexpat \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to upgrade libexpat. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -138,12 +156,12 @@ bootstrap_remote_fedora()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -194,13 +212,13 @@ bootstrap_remote_freebsd()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
env ASSUME_ALWAYS_YES=YES pkg bootstrap && \
|
|
|
|
env ASSUME_ALWAYS_YES=YES pkg bootstrap && \
|
|
|
|
pkg install -q -y ${packages} \
|
|
|
|
pkg install -q -y ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
install_pip
|
|
|
|
install_pip
|
|
|
|
@ -275,12 +293,12 @@ bootstrap_remote_rhel_9()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -305,12 +323,12 @@ bootstrap_remote_rhel_10()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
dnf install -q -y ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -357,13 +375,13 @@ bootstrap_remote_ubuntu()
|
|
|
|
"
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry_init
|
|
|
|
while true; do
|
|
|
|
while true; do
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
apt-get update -qq -y && \
|
|
|
|
apt-get update -qq -y && \
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends ${packages} \
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends ${packages} \
|
|
|
|
&& break
|
|
|
|
&& break
|
|
|
|
echo "Failed to install packages. Sleeping before trying again..."
|
|
|
|
retry_or_fail
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|