draft
This commit is contained in:
parent
a9a7a25d60
commit
2707c3a4f5
1 changed files with 78 additions and 0 deletions
|
@ -274,6 +274,84 @@ install_from_source() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_from_build() {
|
||||||
|
PYTHON_VERSION=$1
|
||||||
|
echo "(*) Installing Python ${PYTHON_VERSION} from prebuilt binaries..."
|
||||||
|
# # Install prereqs if missing
|
||||||
|
# check_packages curl ca-certificates gnupg2 tar make gcc libssl-dev zlib1g-dev libncurses5-dev \
|
||||||
|
# libbz2-dev libreadline-dev libxml2-dev xz-utils libgdbm-dev tk-dev dirmngr \
|
||||||
|
# libxmlsec1-dev libsqlite3-dev libffi-dev liblzma-dev uuid-dev
|
||||||
|
|
||||||
|
|
||||||
|
check_packages curl ca-certificates tar
|
||||||
|
|
||||||
|
if ! type git > /dev/null 2>&1; then
|
||||||
|
check_packages git
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find version using soft match
|
||||||
|
find_version_from_git_tags PYTHON_VERSION "https://github.com/python/cpython"
|
||||||
|
|
||||||
|
INSTALL_PATH="${PYTHON_INSTALL_PATH}/${PYTHON_VERSION}"
|
||||||
|
|
||||||
|
if [ -d "${INSTALL_PATH}" ]; then
|
||||||
|
echo "(!) Python version ${PYTHON_VERSION} already exists."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
. /etc/os-release
|
||||||
|
echo $(curl -sSL https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json) >> /tmp/versions-manifest.json
|
||||||
|
jq '.[] | select(.version=="3.8.11")' /tmp/versions-manifest.json
|
||||||
|
|
||||||
|
BINARY_URL=$(jq -r '.[] | select(.version=="3.8.11") | .files[] | select(.filename=="python-3.8.11-linux-18.04-x64.tar.gz") | .download_url' versions-manifest.json)
|
||||||
|
curl -sSL $BINARY_URL | tar -xzC /tmp 2>&1
|
||||||
|
# Download tgz of source
|
||||||
|
mkdir -p /tmp/python-binary ${INSTALL_PATH}
|
||||||
|
cd /tmp/python-binary
|
||||||
|
|
||||||
|
# TODO read URL from https://github.com/actions/python-versions/blob/main/versions-manifest.json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
local filename="python-${PYTHON_VERSION}-linux-${$VERSION_ID}-x64.tar.gz"
|
||||||
|
echo $(curl -sSL https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json) >> versions-manifest.json
|
||||||
|
# local tgz_url="https://www.python.org/ftp/python/${PYTHON_VERSION}/${tgz_filename}"
|
||||||
|
# echo "Downloading ${tgz_filename}..."
|
||||||
|
# curl -sSL -o "/tmp/python-src/${tgz_filename}" "${tgz_url}"
|
||||||
|
curl -sSL https://github.com/actions/python-versions/releases/download/3.11.0-3730290910/python-3.11.0-linux-20.04-x64.tar.gz | tar -xzC /tmp 2>&1
|
||||||
|
# # Verify signature
|
||||||
|
# receive_gpg_keys PYTHON_SOURCE_GPG_KEYS
|
||||||
|
# echo "Downloading ${tgz_filename}.asc..."
|
||||||
|
# curl -sSL -o "/tmp/python-src/${tgz_filename}.asc" "${tgz_url}.asc"
|
||||||
|
# gpg --verify "${tgz_filename}.asc"
|
||||||
|
|
||||||
|
# # Update min protocol for testing only - https://bugs.python.org/issue41561
|
||||||
|
# cp /etc/ssl/openssl.cnf /tmp/python-src/
|
||||||
|
# sed -i -E 's/MinProtocol[=\ ]+.*/MinProtocol = TLSv1.0/g' /tmp/python-src/openssl.cnf
|
||||||
|
# export OPENSSL_CONF=/tmp/python-src/openssl.cnf
|
||||||
|
|
||||||
|
# # Untar and build
|
||||||
|
# tar -xzf "/tmp/python-src/${tgz_filename}" -C "/tmp/python-src" --strip-components=1
|
||||||
|
# local config_args=""
|
||||||
|
# if [ "${OPTIMIZE_BUILD_FROM_SOURCE}" = "true" ]; then
|
||||||
|
# config_args="--enable-optimizations"
|
||||||
|
# fi
|
||||||
|
# ./configure --prefix="${INSTALL_PATH}" --with-ensurepip=install ${config_args}
|
||||||
|
# make -j 8
|
||||||
|
# make install
|
||||||
|
# cd /tmp
|
||||||
|
# rm -rf /tmp/python-src ${GNUPGHOME} /tmp/vscdc-settings.env
|
||||||
|
|
||||||
|
# ln -s "${INSTALL_PATH}/bin/python3" "${INSTALL_PATH}/bin/python"
|
||||||
|
# ln -s "${INSTALL_PATH}/bin/pip3" "${INSTALL_PATH}/bin/pip"
|
||||||
|
# ln -s "${INSTALL_PATH}/bin/idle3" "${INSTALL_PATH}/bin/idle"
|
||||||
|
# ln -s "${INSTALL_PATH}/bin/pydoc3" "${INSTALL_PATH}/bin/pydoc"
|
||||||
|
# ln -s "${INSTALL_PATH}/bin/python3-config" "${INSTALL_PATH}/bin/python-config"
|
||||||
|
|
||||||
|
add_symlink
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
install_using_oryx() {
|
install_using_oryx() {
|
||||||
VERSION=$1
|
VERSION=$1
|
||||||
INSTALL_PATH="${PYTHON_INSTALL_PATH}/${VERSION}"
|
INSTALL_PATH="${PYTHON_INSTALL_PATH}/${VERSION}"
|
||||||
|
|
Loading…
Reference in a new issue