从来源安装¶
已发布的包¶
本页面介绍如何使用官方发布的包下载和验证 Airflow® 版本 3.0.0
。您也可以像大多数 Python 包一样,通过 PyPI 安装 Apache Airflow
。您可以通过页面左上角的下拉菜单选择不同版本的 Airflow。
发布的 source
、sdist
和 whl
包是“官方”安装来源,如果您想验证包的来源并验证包的 checksum 和签名,可以使用这些包。这些包可通过 Apache Software Foundation 官方下载 获取。
从版本 2.8 开始,Airflow 遵循 PEP 517/518 并使用 pyproject.toml
文件定义构建依赖和构建过程,它需要相对较新的打包工具版本才能从本地源码或 sdist
包构建 Airflow,因为使用了遵循 PEP 517 的构建钩子来确定动态构建依赖。对于 pip
来说,这意味着至少需要 22.1.0 版本(于 2022 年初发布)才能从源码构建或安装 Airflow。这不会影响从已发布的 wheel 包安装 Airflow 的能力。
Airflow® 3.0.0 版本的下载链接如下:
airflow 源码包 (asc, sha512)
如果您想从源代码安装,可以从上面的源代码链接下载,其中包含一个 INSTALL
文件,详细说明了如何构建和安装 Airflow。
版本完整性¶
您必须使用 PGP 或 SHA 签名来验证下载文件的完整性。PGP 签名可以使用 GPG 或 PGP 进行验证。请下载 KEYS 文件以及相关分发版本的 asc 签名文件。建议从主分发目录而不是镜像站点获取这些文件。
gpg -i KEYS
或者
pgpk -a KEYS
或者
pgp -ka KEYS
要验证二进制文件/源码,您可以从主分发目录下载相应的 asc 文件并按照以下指南操作。
gpg --verify apache-airflow-********.asc apache-airflow-*********
或者
pgpv apache-airflow-********.asc
或者
pgp apache-airflow-********.asc
示例
$ gpg --verify apache-airflow-3.0.0-source.tar.gz.asc apache-airflow-3.0.0-source.tar.gz
gpg: Signature made Sat 11 Sep 12:49:54 2021 BST
gpg: using RSA key CDE15C6E4D3A8EC4ECF4BA4B6674E08AD7DE406F
gpg: issuer "kaxilnaik@apache.org"
gpg: Good signature from "Kaxil Naik <kaxilnaik@apache.org>" [unknown]
gpg: aka "Kaxil Naik <kaxilnaik@gmail.com>" [unknown]
gpg: WARNING: The key's User ID is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: CDE1 5C6E 4D3A 8EC4 ECF4 BA4B 6674 E08A D7DE 406F
“Good signature from …” 表示签名正确。无需担心“not certified with a trusted signature”警告。大多数发布经理使用的证书都是自签名的,因此您会收到此警告。通过在上一步导入服务器并通过 KEYS
页面上的 ID 导入它,您就知道这是一个有效的密钥。
对于 SHA512 和校验,下载相应的 sha512
文件并运行以下命令:
shasum -a 512 apache-airflow--******** | diff - apache-airflow--********.sha512
文件的 SHASUM
应与 .sha512
文件中提供的一致。
示例
shasum -a 512 apache-airflow-3.0.0-source.tar.gz | diff - apache-airflow-3.0.0-source.tar.gz.sha512
验证 PyPI 版本¶
您可以通过使用以下脚本在本地下载包、签名和 SHA 和校验文件来验证来自 PyPI 的 Airflow .whl
包:
#!/bin/bash
AIRFLOW_VERSION="3.0.0"
airflow_download_dir="$(mktemp -d)"
pip download --no-deps "apache-airflow==${AIRFLOW_VERSION}" --dest "${airflow_download_dir}"
curl "https://downloads.apache.org/airflow/${AIRFLOW_VERSION}/apache_airflow-${AIRFLOW_VERSION}-py3-none-any.whl.asc" \
-L -o "${airflow_download_dir}/apache_airflow-${AIRFLOW_VERSION}-py3-none-any.whl.asc"
curl "https://downloads.apache.org/airflow/${AIRFLOW_VERSION}/apache_airflow-${AIRFLOW_VERSION}-py3-none-any.whl.sha512" \
-L -o "${airflow_download_dir}/apache_airflow-${AIRFLOW_VERSION}-py3-none-any.whl.sha512"
echo
echo "Please verify files downloaded to ${airflow_download_dir}"
ls -la "${airflow_download_dir}"
echo
按照上一节的说明验证文件后,您可以移除创建的临时文件夹。