你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Linux 上安装 Azure CLI

本文介绍了如何在 Linux 上安装 Azure CLI。 从页面顶部的选项中,为分发版选择适当的包管理器。 建议使用 Linux 分发版的包管理器,但可以通过选择“安装脚本”选项在 Linux 上手动安装 Azure CLI。

Azure CLI 的当前版本为 2.58.0。 有关最新版本的信息,请参阅发行说明。 若要查找已安装的版本并查看是否需要更新,请运行 az 版本

开始之前

  • Azure CLI 2.38.1(发布于 2023 年 9 月 1 日)是 RHEL 7 和 Centos 7 支持的最新版本,在操作系统生命周期结束之前将继续接收安全修复。 Microsoft 不会为这些分发版提供其他更新或 bug 修复。

  • Microsoft 会继续开发和支持 Azure CLI 和 Linux 安装脚本

  • 如果正在使用的 Linux 系统不支持dnf包管理器,请使用yum包管理器。

安装 Azure CLI

若要安装 Azure CLI,请执行以下步骤:

  1. 导入 Microsoft 存储库密钥。

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  2. 对于 RHEL 9 或 CentOS Stream 9,请添加 packages-microsoft-com-prod 存储库:

    sudo dnf install -y https://packages.microsoft.com/config/rhel/9.0/packages-microsoft-prod.rpm
    

    对于 RHEL 8 或 CentOS Stream 8,请添加 packages-microsoft-com-prod 存储库:

    sudo dnf install -y https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
    

    对于 RHEL 7 或 CentOS 7,请添加 azure-cli 存储库:

    echo -e "[azure-cli]
    name=Azure CLI
    baseurl=https://packages.microsoft.com/yumrepos/azure-cli
    enabled=1
    gpgcheck=1
    gpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo
    
  3. 使用 dnf install 命令安装。

    sudo dnf install azure-cli
    

安装特定版本

必须先配置azure-cli存储库信息,如前面所示。 可在 Azure CLI 发行说明中找到可用版本。

  1. 使用以下命令查看可用版本:

    dnf list --showduplicates azure-cli
    
  2. 安装特定版本:

    sudo dnf install azure-cli-<version>-1.el7
    

更新 Azure CLI

自版本 2.11.0 起,Azure CLI 提供了用于更新到最新版本的工具内命令。

az upgrade

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面。 对于 2.11.0 之前的 Azure CLI 版本,请按照安装 Azure CLI 中的说明重新安装以进行更新。

还可使用 dnf update 命令更新 Azure CLI。

sudo dnf update azure-cli

卸载 Azure CLI

如果你决定卸载 Azure CLI,我们会很遗憾。 在卸载之前,请使用 az feedback 命令告诉我们在哪些方面需要改进或修复。 我们的目标是消除 Azure CLI 中的 bug 并使其变得用户友好。 如果你在发现 bug 后提出 GitHub 问题,我们将十分感激。

  1. 从系统中删除包。

    sudo dnf remove azure-cli
    
  2. 如果不打算重新安装 CLI,请删除存储库信息。

    sudo rm /etc/yum.repos.d/azure-cli.repo
    
  3. 如果不使用任何其他 Microsoft 包,请删除签名密钥。

    MSFT_KEY=`rpm -qa gpg-pubkey /* --qf "%{version}-%{release} %{summary}\n" | grep Microsoft | awk '{print $1}'`
    sudo rpm -e --allmatches gpg-pubkey-$MSFT_KEY
    

删除数据

如果不打算重新安装 Azure CLI,请删除其数据。

rm -rf ~/.azure

疑难解答

下面是使用 dnf 安装时出现的一些常见问题。 如果遇到的问题未在本文中列出,请在 GitHub 上提出问题

安装在 RHEL 7.6 或不带 Python 3 的其他系统上

如果可以,请将系统升级到带有对python 3.6+包的官方支持的版本。 否则,需要先安装python3包,然后在没有依赖项的情况下安装 Azure CLI。

可以使用以下命令下载并安装 Azure CLI 安装脚本,其中包含从源生成的 python 3.6

curl -sL https://azurecliprod.blob.core.windows.net/rhel7_6_install.sh | sudo bash

也可以逐步进行操作:

首先,Azure CLI 需要 SSL 1.1+,在生成 python3 之前,需要从源生成 openssl 1.1

sudo dnf install gcc gcc-c++ make ncurses patch wget tar zlib zlib-devel -y
# build openssl from source
cd ~
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -xzf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
make
sudo make install
# configure shared object lookup directory so that libssl.so.1.1 can be found
echo "/usr/local/ssl/lib" | sudo tee /etc/ld.so.conf.d/openssl-1.1.1d.conf
# reload config
sudo ldconfig -v

然后从源生成 Python 3:

PYTHON_VERSION="3.6.9"
PYTHON_SRC_DIR=$(mktemp -d)
wget -qO- https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz | tar -xz -C "$PYTHON_SRC_DIR"
cd $PYTHON_SRC_DIR/Python-$PYTHON_VERSION
./configure --prefix=/usr --with-openssl=/usr/local/ssl
make
sudo make install

最后,按照安装说明的步骤 1 和步骤 2,添加 Azure CLI 存储库。 现在即可下载包,并在没有依赖项的情况下安装它。

注意

如果尚未安装 dnf 下载插件,在执行以下代码时会遇到command not found错误。 使用 dnf install 'dnf-command(download)' 安装 dnf 下载插件。

sudo dnf download azure-cli
sudo rpm -ivh --nodeps azure-cli-*.rpm

作为替代方法,还可以使用其他存储库安装 Python 3。 如果已设置 python3,但仍收到错误 python3: command not found,请使用此方法。 确保已将其包含在路径中。

scl enable rh-python36 bash

代理阻止连接

如果由于代理而无法连接到外部资源,请确保已在 shell 中正确设置了 HTTP_PROXYHTTPS_PROXY 变量。 你需要与系统管理员联系以了解要对这些代理使用哪些主机和端口。

这些变量中的值由许多 Linux 程序使用,并在安装过程中使用。 若要设置这些值,请执行以下操作:

# No auth
export HTTP_PROXY=http://[proxy]:[port]
export HTTPS_PROXY=https://[proxy]:[port]

# Basic auth
export HTTP_PROXY=http://[username]:[password]@[proxy]:[port]
export HTTPS_PROXY=https://[username]:[password]@[proxy]:[port]

重要

如果你位于代理后面,则必须设置这些 shell 变量以通过 CLI 连接到 Azure 服务。 如果不使用基本身份验证,建议将这些变量导出到 .bashrc 文件中。 请始终遵循企业的安全策略和系统管理员的要求。

你可能还想要显式配置dnf以始终使用此代理。 请确保以下行显示在 /etc/dnf/dnf.conf[main] 部分下:

[main]
# ...
proxy=http://[proxy]:[port] # If your proxy requires https, change http->https
proxy_username=[username] # Only required for basic auth
proxy_password=[password] # Only required for basic auth

为了获取 Microsoft 签名密钥并从我们的存储库中获取包,代理必须允许与以下地址之间的 HTTPS 连接:

  • https://packages.microsoft.com

CLI 未能在适用于 Linux 的 Windows 子系统上安装或运行

由于适用于 Linux 的 Windows 子系统 (WSL) 是基于 Windows 平台的一个系统调用转换层,因此,在尝试安装或运行 Azure CLI 时可能会发生错误。 CLI 依赖于在 WSL 中可能具有 bug 的某些功能。 如果无论你以何方式安装 CLI 都会发生错误,则很可能是因为 WSL 有问题而不是 CLI 安装过程有问题。

若要对 WSL 安装进行故障排除并尽可能解决问题,请执行以下操作:

  • 如果可以,在 Linux 计算机或 VM 上运行相同的安装过程来看看它是否会成功。 如果成功,问题可能与 WSL 有关。 要启动 Azure 中的 Linux VM,请参阅在 Azure 门户中创建 Linux VM文档。
  • 确保运行的是最新版本的 WSL。 若要获取最新版本,请更新 Windows 10 安装
  • 检查 WSL 是否存在可能会解决你的问题的待解决问题。 那里通常会提供有关如何解决该问题的建议,或者提供有关修复该问题的发行版的信息。
  • 如果没有与你的问题对应的现有问题,请提交一个新的 WSL 问题并确保提供尽可能多的信息。

如果在 WSL 上安装或运行时继续出现问题,请考虑安装适用于 Windows 的 CLI

开始之前

  • Azure CLI 2.38.1(2023 年 9 月 1 日发布)是 SU标准版 Linux 企业服务器(SLES)和 OpenSU 支持的最新版本标准版,并且将继续在 2024 年 6 月底之前接收安全修补程序。 Microsoft 不会为这些分发版提供其他更新或 bug 修复。

  • Microsoft 会继续开发并支持 Azure CLI 和 Linux 安装脚本。 SUSE 会维护并支持 SUSE/OpenSUSE 存储库提供的包。

  • 在 Azure 中,基于 Azure 市场映像的 SUSE 和 OpenSUSE 虚拟机 (VM) 已安装 Azure CLI。

安装 Azure CLI

若要在 SUSE/OpenSUSE 上安装 Azure CLI,请选择以下方法之一:

  1. 在 SUSE/OpenSUSE 存储库中使用 SUSE 提供的企业包

  2. 使用“安装脚本(任何)”选项卡中所述的安装方法。

  3. 从 Microsoft 存储库进行安装

从 SUSE 或 OpenSUSE 存储库进行安装

Azure CLI 的 RPM 包依赖于 python3 包。

sudo zypper install -y azure-cli

使用安装脚本进行安装

可使用安装脚本选项在任何版本的 Linux 上手动安装 Azure CLI。

如果要使用此方法更新到最新版本,请务必先卸载之前的版本,以及可能为该版本添加过的任何存储库。

从 Microsoft 存储库进行安装

若要使用 Microsoft 存储库安装 Azure CLI 的最新历史版本,请执行以下步骤。

(此包已通过 SLES 15 和 OpenSUSE Leap 15.1 进行测试)

  1. 安装 curl

    sudo zypper install -y curl
    
  2. 导入 Microsoft 存储库密钥:

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  3. 创建本地 azure-cli 存储库信息:

    sudo zypper addrepo --name 'Azure CLI' --check https://packages.microsoft.com/yumrepos/azure-cli azure-cli
    
  4. 更新 zypper 包索引并安装:

    sudo zypper install --from azure-cli azure-cli
    

    输入 2 即可忽略某些依赖项,继续安装。

安装特定版本

必须先配置azure-cli存储库信息,如前面所示。 可在 Azure CLI 发行说明中找到可用版本。

  1. 使用以下命令查看可用版本:

    zypper search --details --match-exact azure-cli
    
  2. 安装特定版本:

    sudo zypper install --from azure-cli azure-cli=<version>-1.el7
    

更新 Azure CLI

自版本 2.11.0 起,Azure CLI 提供了用于更新到最新版本的工具内命令。

az upgrade

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面。 对于 2.11.0 之前的 Azure CLI 版本,请按照安装 Azure CLI 中的说明重新安装以进行更新。

还可使用 zypper update 命令来更新包。

sudo zypper refresh
sudo zypper update azure-cli

卸载 Azure CLI

如果你决定卸载 Azure CLI,我们会很遗憾。 在卸载之前,请使用 az feedback 命令告诉我们在哪些方面需要改进或修复。 我们的目标是消除 Azure CLI 中的 bug 并使其变得用户友好。 如果你在发现 bug 后提出 GitHub 问题,我们将十分感激。

  1. 从系统中删除包。

    sudo zypper remove -y azure-cli
    
  2. 如果不打算重新安装 CLI,请删除存储库信息。

    sudo zypper removerepo azure-cli
    
  3. 如果不使用其他 Microsoft 包,请删除 Microsoft 签名密钥。

    MSFT_KEY=`rpm -qa gpg-pubkey /* --qf "%{version}-%{release} %{summary}\n" | grep Microsoft | awk '{print $1}'`
    sudo rpm -e --allmatches gpg-pubkey-$MSFT_KEY
    

删除数据

如果不打算重新安装 Azure CLI,请删除其数据。

rm -rf ~/.azure

疑难解答

下面是使用 zypper 安装时出现的一些常见问题。 如果遇到的问题未在本文中列出,请在 GitHub 上提出问题

在没有 Python 3 的情况下安装

重要

Azure CLI 的 RPM 包依赖于 python3 包。 在你的系统上,这可能是早于所要求的 Python 3.6.x 的 Python 版本。 如果这对你有影响,请找一个替代 python3 包。

请注意,Python 2 已于 2020 年 1 月 1 日停用 (EOL),再也不会收到更新。 自版本 2.1.0 以来,Azure CLI 已放弃对 Python 2.7 的支持。 较新版本的 CLI 可能无法使用 Python 2.7 正确运行。

OpenSUSE 15 VM 上的 NotImplementedError

OpenSUSE 15 VM 预安装了 2.0.45 版本的 Azure CLI,该版本已过时,并且存在 az login 问题。 在按照安装说明添加最新的 Azure CLI 之前,请移除此版本及其依赖项:

sudo zypper rm -y --clean-deps azure-cli

如果已更新 Azure CLI,而没有移除版本 2.0.45 的依赖项,则其旧依赖项可能会影响最新版本的 Azure CLI。 需要添加回旧版本以链接到其依赖项,然后删除 azure-cli 及其依赖项:

# The package name may vary on different system version, run 'zypper --no-refresh info azure-cli' to check the source package format
sudo zypper install --oldpackage azure-cli-2.0.45-4.22.noarch

sudo zypper rm -y --clean-deps azure-cli

安装在 SLES 12 或不带 Python 3.6 的其他系统上

在 SLES 12 上,默认的 python3 包版本为 3.4,Azure CLI 不支持该版本。 首先,按照安装说明的步骤 1-3,添加 azure-cli 存储库。 然后,从源生成更高版本的 python3。 最后,下载 Azure CLI 包,并在没有依赖项的情况下安装它。

可使用以下命令,按照上述步骤安装或更新 Azure CLI。 该脚本将在 /usr/local/azcli 下安装 Python 3.8,并通过将 az 的别名设置为 PATH=/usr/local/azcli/bin:$PATH az,指示 Azure CLI 使用它。 你还可下载脚本并根据需要进行修改。 例如,你可更改 Python 版本或安装位置。

curl -sL https://azurecliprod.blob.core.windows.net/sles12_install_v2.sh | sudo bash

首次安装时,请记得运行以下命令来激活别名:

source ~/.bashrc

代理阻止连接

如果由于代理而无法连接到外部资源,请确保已在 shell 中正确设置了 HTTP_PROXYHTTPS_PROXY 变量。 你需要与系统管理员联系以了解要对这些代理使用哪些主机和端口。

这些变量中的值由许多 Linux 程序使用,并在安装过程中使用。 若要设置这些值,请执行以下操作:

# No auth
export HTTP_PROXY=http://[proxy]:[port]
export HTTPS_PROXY=https://[proxy]:[port]

# Basic auth
export HTTP_PROXY=http://[username]:[password]@[proxy]:[port]
export HTTPS_PROXY=https://[username]:[password]@[proxy]:[port]

重要

如果你位于代理后面,则必须设置这些 shell 变量以通过 CLI 连接到 Azure 服务。 如果不使用基本身份验证,建议将这些变量导出到 .bashrc 文件中。 请始终遵循企业的安全策略和系统管理员的要求。

你可能还想要显式配置 zypper(通过 yast2),以便始终使用此代理。 为此,请以超级用户身份运行 yast2 proxy 命令,并填充窗体中显示的信息。 如果系统上有可用的窗口管理器,还可以使用 YaST Control Center 中的 Network Services > Proxy 窗格。

有关高级配置或详细信息,请参阅 OpenSUSE 代理配置文档

为了获取 Microsoft 签名密钥并从我们的存储库中获取包,代理需要允许与以下地址之间进行 HTTPS 连接:

  • https://packages.microsoft.com
  • https://download.opensuse.org

CLI 未能在适用于 Linux 的 Windows 子系统上安装或运行

由于适用于 Linux 的 Windows 子系统 (WSL) 是基于 Windows 平台的一个系统调用转换层,因此,在尝试安装或运行 Azure CLI 时可能会发生错误。 CLI 依赖于在 WSL 中可能具有 bug 的某些功能。 如果无论你以何方式安装 CLI 都会发生错误,则很可能是因为 WSL 有问题而不是 CLI 安装过程有问题。

若要对 WSL 安装进行故障排除并尽可能解决问题,请执行以下操作:

  • 如果可以,在 Linux 计算机或 VM 上运行相同的安装过程来看看它是否会成功。 如果成功,问题可能与 WSL 有关。 要启动 Azure 中的 Linux VM,请参阅在 Azure 门户中创建 Linux VM文档。
  • 确保运行的是最新版本的 WSL。 若要获取最新版本,请更新 Windows 10 安装
  • 检查 WSL 是否存在可能会解决你的问题的待解决问题。 那里通常会提供有关如何解决该问题的建议,或者提供有关修复该问题的发行版的信息。
  • 如果没有与你的问题对应的现有问题,请提交一个新的 WSL 问题并确保提供尽可能多的信息。

如果在 WSL 上安装或运行时继续出现问题,请考虑安装适用于 Windows 的 CLI

SSL 证书问题

当计算机上的证书损坏或过期时,你可能会收到错误,指示 curl 未能验证服务器的合法性,因此无法建立安全连接。 更新证书以纠正问题。

sudo zypper update-ca-certificates

开始之前

  • apt 包管理器包含适用于 Azure CLI 的 x86_64 和 ARM64 包,该包已在以下分发版中进行测试。

    分发 版本
    Ubuntu 20.04 LTS (Focal Fossa)、22.04 (Jammy Jellyfish)
    Debian 10 (Buster)、11 (Bullseye)、12 (Bookworm)
  • Ubuntu 20.04 (Focal Fossa) 和 20.10 (Groovy Gorilla) 包含 universe 存储库提供的版本为 2.0.81azure-cli 包。 此包已过时,不建议使用。 如果安装了此包,请先运行 sudo apt remove azure-cli -y && sudo apt autoremove -y 命令删除此包,然后再继续操作。 有关 apt remove 的详细信息,请参阅 Ubuntu 包管理询问 ubuntu

安装 Azure CLI

有两个选项可用于在自己的系统上安装 Azure CLI。 你可以下载将为你运行安装命令的安装脚本,也可以在分步流程中自行执行安装命令。 下面展示了这两种方法:

选项 1:使用一条命令安装

安装 Azure CLI 的最简单方法是使用 Azure CLI 团队维护的脚本。 该脚本将一次性运行所有安装命令。 可通过 curl 下载此脚本并通过管道直接发送到 bash,用于安装 CLI。

如果希望在执行脚本之前亲自检查脚本的内容,请先使用 curl 下载脚本,然后在自己最常用的文本编辑器中进行检查。

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

选项 2:分步安装说明

如果想选择按步骤自行安装,请完成以下步骤来安装 Azure CLI。

  1. 获取安装过程所需的包:

    sudo apt-get update
    sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg
    
  2. 下载并安装 Microsoft 签名密钥:

    sudo mkdir -p /etc/apt/keyrings
    curl -sLS https://packages.microsoft.com/keys/microsoft.asc |
        gpg --dearmor |
        sudo tee /etc/apt/keyrings/microsoft.gpg > /dev/null
    sudo chmod go+r /etc/apt/keyrings/microsoft.gpg
    
  3. 添加 Azure CLI 软件存储库:
    AZ_DIST=$(lsb_release -cs)
    echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $AZ_DIST main" |
        sudo tee /etc/apt/sources.list.d/azure-cli.list
    
  4. 更新存储库信息并安装 azure-cli 包:

    sudo apt-get update
    sudo apt-get install azure-cli
    

安装特定版本

配置 azure-cli 存储库信息,如上所示。 可在 Azure CLI 发行说明中找到可用版本。

  1. 查看 Azure CLI 的可用版本。

    apt-cache policy azure-cli
    
  2. 安装特定版本。

    # Obtain the currently installed distribution
    AZ_DIST=$(lsb_release -cs)
    
    # Store an Azure CLI version of choice
    AZ_VER=2.51.0
    
    # Install a specific version
    sudo apt-get install azure-cli=$AZ_VER-1~$AZ_DIST
    

    若要安装不带变量的特定版本,请替换显示的 Azure CLI 版本和 Linux 发行版名称:

    sudo apt-get install azure-cli=2.51.0-1~bullseye
    

如果收到错误消息“无法找到包 azure-cli”,则表示未配置 azure-cli 存储库信息。 请按照选项 2:分步安装说明中给出的步骤进行操作。

如果收到错误消息“未找到 azure-cli 的版本 x.xx.x-1~distributionName”,请使用 lsb_release -cs 查找正在运行的发行版。

更新 Azure CLI

自版本 2.11.0 起,Azure CLI 提供了用于更新到最新版本的工具内命令。

az upgrade

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面。 对于 2.11.0 之前的 Azure CLI 版本,请按照安装 Azure CLI 中的说明重新安装以进行更新。

还可使用 apt-get upgrade 更新 CLI 包。 此命令将会升级系统上所有未发生依赖关系更改的已安装包。

sudo apt-get update && sudo apt-get upgrade

若只要升级 CLI,请使用 apt-get install

sudo apt-get update && sudo apt-get install --only-upgrade -y azure-cli

卸载 Azure CLI

如果你决定卸载 Azure CLI,我们会很遗憾。 在卸载之前,请使用 az feedback 命令告诉我们在哪些方面需要改进或修复。 我们的目标是消除 Azure CLI 中的 bug 并使其变得用户友好。 如果你在发现 bug 后提出 GitHub 问题,我们将十分感激。

  1. 使用 apt-get remove 进行卸载:

    sudo apt-get remove -y azure-cli
    
  2. 如果不打算重新安装 CLI,请删除 Azure CLI 存储库信息:

    sudo rm /etc/apt/sources.list.d/azure-cli.list
    
  3. 如果不使用 Microsoft 的其他包,请移除签名密钥:

    sudo rm /etc/apt/trusted.gpg.d/microsoft.gpg
    
  4. 删除任何不需要的包:

    sudo apt autoremove
    

删除数据

如果不打算重新安装 Azure CLI,请删除其数据。

rm -rf ~/.azure

疑难解答

下面是使用 apt 安装时出现的一些常见问题。 如果遇到的问题未在本文中列出,请在 GitHub 上提出问题

azure-cli 包支持 CLI 版本 2.46.0 中的 ARM64 体系结构。

Ubuntu 20.04 (Focal)/WSL 上没有模块问题

如果你已在 Focal 上安装 azure-cli,但没有在手动安装说明的步骤 3 中添加 Azure CLI 软件存储库,或者没有使用我们的脚本,那么你可能会遇到诸如没有模块名为“decorator”或“antlr4”之类的问题,这是因为你安装的包是来自 focal/universe 存储库的过时的 azure-cli 2.0.81。 首先运行 sudo apt remove azure-cli -y && sudo apt autoremove -y 来删除此包,然后按照上述说明安装最新的 azure-cli 包。

lsb_release 没有返回正确的基础分发版本

某些 Ubuntu 或其他 Debian 派生的版本(例如 Linux Mint)不会通过 lsb_release 返回正确的版本名称。 此值在安装过程中用于确定要安装的包。 如果知道自己的发行版派生自的 Ubuntu 或 Debian 版本的代码名称,则可在添加存储库时手动设置 AZ_REPO 值。 否则,请查看发行版的信息,了解如何确定基础发行版代码名称,然后将 AZ_REPO 设置为正确值。

没有适用于你的发行版的程序包

有时,在发布发行版后,不会立即提供更新的 Azure CLI 包。 Azure CLI 进行了相关设计,对未来版本的依赖项具有弹性,且会尽可能少地依赖它们。 如果没有适用于你的基础发行版的程序包,请尝试使用较早发行版的程序包。

若要尝试早期分发版本的包,请在添加存储库时手动设置 AZ_REPO 的值。 对于 Ubuntu 发行版,请使用最新的 jammy 存储库:

AZ_REPO="jammy"

对于 Debian 发行版,请使用最新的 bookworm 存储库:

AZ_REPO="bookworm"

重要

在 Bionic 和 Debian Buster 之前发布的发行版不受支持。

基本 OS (EOS) 无法安装 Azure CLI

EOS 无法安装 Azure CLI,因为 lsb_release 返回 HERA,这是 EOS 版本名称。 解决方案是修复文件 /etc/apt/sources.list.d/azure-cli.list 并将 hera main 更改为 bionic main

原始文件内容:

deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ hera main

修改的文件内容

deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ bionic main

代理阻止连接

如果由于代理而无法连接到外部资源,请确保已在 shell 中正确设置了 HTTP_PROXYHTTPS_PROXY 变量。 你需要与系统管理员联系以了解要对这些代理使用哪些主机和端口。

这些变量中的值由许多 Linux 程序使用,并在安装过程中使用。 若要设置这些值,请执行以下操作:

# No auth
export HTTP_PROXY=http://[proxy]:[port]
export HTTPS_PROXY=https://[proxy]:[port]

# Basic auth
export HTTP_PROXY=http://[username]:[password]@[proxy]:[port]
export HTTPS_PROXY=https://[username]:[password]@[proxy]:[port]

重要

如果你位于代理后面,则必须设置这些 shell 变量以通过 CLI 连接到 Azure 服务。 如果不使用基本身份验证,建议将这些变量导出到 .bashrc 文件中。 请始终遵循企业的安全策略和系统管理员的要求。

你可能还想要显式配置apt以始终使用此代理。 请确保以下行显示在 /etc/apt/apt.conf.d/ 下的 apt 配置文件中。 我们建议使用现有的全局配置文件(现有的代理配置文件 40proxies)或 99local,但要遵守系统管理要求。

Acquire {
    http::proxy "http://[username]:[password]@[proxy]:[port]";
    https::proxy "https://[username]:[password]@[proxy]:[port]";
}

如果代理不使用基本身份验证,请移除代理 URI 的 [username]:[password]@ 部分。 如果需要代理配置的详细信息,请参阅官方的 Ubuntu 文档:

为了获取 Microsoft 签名密钥并从我们的存储库中获取包,代理必须允许与以下地址之间的 HTTPS 连接:`https://packages.microsoft.com.

CLI 未能在适用于 Linux 的 Windows 子系统上安装或运行

由于适用于 Linux 的 Windows 子系统 (WSL) 是基于 Windows 平台的一个系统调用转换层,因此,在尝试安装或运行 Azure CLI 时可能会发生错误。 CLI 依赖于在 WSL 中可能具有 bug 的某些功能。 如果无论你以何方式安装 CLI 都会发生错误,则很可能是因为 WSL 有问题而不是 CLI 安装过程有问题。

若要对 WSL 安装进行故障排除并尽可能解决问题,请执行以下操作:

  • 如果可以,在 Linux 计算机或 VM 上运行相同的安装过程来看看它是否会成功。 如果成功,问题可能与 WSL 有关。 要启动 Azure 中的 Linux VM,请参阅在 Azure 门户中创建 Linux VM文档。
  • 确保运行的是最新版本的 WSL。 若要获取最新版本,请更新 Windows 10 安装
  • 检查 WSL 是否存在可能会解决你的问题的待解决问题。 那里通常会提供有关如何解决该问题的建议,或者提供有关修复该问题的发行版的信息。
  • 如果没有与你的问题对应的现有问题,请提交一个新的 WSL 问题并确保提供尽可能多的信息。

如果在 WSL 上安装或运行时继续出现问题,请考虑安装适用于 Windows 的 CLI

安装 Azure CLI

RPM 通过 CBL-Mariner 面向 Azure Linux 发布。 azure-cli 包支持 CLI 版本 2.46.0 中的 ARM64 体系结构。

若要安装 Azure CLI,请执行以下步骤:

  1. 安装官方 Microsoft 特选的受信任的根证书集:

    sudo tdnf install ca-certificates
    
  2. 安装 Azure CLI:

    sudo tdnf install azure-cli
    

安装特定版本

可在 Azure CLI 发行说明中找到可用版本。

使用以下命令查看可用版本:

tdnf list azure-cli

安装特定版本:

sudo tdnf install azure-cli-<version>-1

更新 Azure CLI

使用 tdnf update 命令更新 Azure CLI:

sudo tdnf update azure-cli

卸载 Azure CLI

如果你决定卸载 Azure CLI,我们会很遗憾。 在卸载之前,请使用 az feedback 命令告诉我们在哪些方面需要改进或修复。 我们的目标是消除 Azure CLI 中的 bug 并使其变得用户友好。 如果你在发现 bug 后提出 GitHub 问题,我们将十分感激。

从系统中删除包:

sudo tdnf remove azure-cli

删除数据

如果不打算重新安装 Azure CLI,请删除其数据。

rm -rf ~/.azure

开始之前

强烈建议使用包管理器安装 CLI。 使用包管理器可确保始终获得最新更新,并保证 CLI 组件的稳定性。 在手动安装之前,请检查分发版是否有对应的包。

CLI 需要以下软件:

安装或更新 Azure CLI

安装和更新 Azure CLI 都需要重新运行安装脚本。

curl -L https://aka.ms/InstallAzureCli | bash

也可以下载并在本地运行该脚本。 可能需要重启 shell 才能使更改生效。

卸载 Azure CLI

如果你决定卸载 Azure CLI,我们会很遗憾。 在卸载之前,请使用 az feedback 命令告诉我们在哪些方面需要改进或修复。 我们的目标是消除 Azure CLI 中的 bug 并使其变得用户友好。 如果你在发现 bug 后提出 GitHub 问题,我们将十分感激。

可以通过直接从安装时所选的位置删除文件来卸载 CLI。 默认安装位置是用户的主目录 ($HOME)。

  1. 删除安装的 CLI 文件。

    rm -r <install location>/lib/azure-cli
    rm <install location>/bin/az
    
  2. 修改 $HOME/.bash_profile 文件,删除以下行:

    <install location>/lib/azure-cli/az.completion
    
  3. 如果使用 bashzsh,请重新加载 shell 的命令缓存。

    hash -r
    

删除数据

如果不打算重新安装 Azure CLI,请删除其数据。

rm -rf ~/.azure

疑难解答

下面是手动安装过程中可能出现的一些常见问题。 如果遇到的问题未在本文中列出,请在 GitHub 上提出问题

在没有 Python 3 的情况下安装

自版本 2.1.0 以来,Azure CLI 已放弃对 Python 2.7 的支持。 在你的系统上,这可能是早于所要求的 Python 3.6.x 的 Python 版本。 查找替换 python3 包。

curl“对象已移动”错误

如果从有关 -L 参数的 curl 收到错误,或者收到包含“对象已移动”的错误消息,请尝试使用完整 URL 而不是 aka.ms 重定向:

curl https://azurecliprod.blob.core.windows.net/install | bash

找不到 az 命令

如果在安装后无法使用 bashzsh 运行该命令,请尝试清除 shell 的命令哈希缓存,并检查问题是否得到解决。

hash -r

如果在安装后没有重启 shell,也可能出现此错误。 确保 az 命令的位置在 $PATH 中。 az 命令的位置为

 <install path>/bin

代理阻止连接

如果由于代理而无法连接到外部资源,请确保已在 shell 中正确设置了 HTTP_PROXYHTTPS_PROXY 变量。 你需要与系统管理员联系以了解要对这些代理使用哪些主机和端口。

这些变量中的值由许多 Linux 程序使用,并在安装过程中使用。 若要设置这些值,请执行以下操作:

# No auth
export HTTP_PROXY=http://[proxy]:[port]
export HTTPS_PROXY=https://[proxy]:[port]

# Basic auth
export HTTP_PROXY=http://[username]:[password]@[proxy]:[port]
export HTTPS_PROXY=https://[username]:[password]@[proxy]:[port]

重要

如果你位于代理后面,则必须设置这些 shell 变量以通过 CLI 连接到 Azure 服务。 如果不使用基本身份验证,建议将这些变量导出到 .bashrc 文件中。 请始终遵循企业的安全策略和系统管理员的要求。

为了获取安装脚本,代理必须允许与以下地址之间的 HTTPS 连接:

  • https://aka.ms/
  • https://azurecliprod.blob.core.windows.net/
  • https://pypi.python.org
  • 分发版的包管理器(如果有)用于核心包的终结点

CLI 未能在适用于 Linux 的 Windows 子系统上安装或运行

由于适用于 Linux 的 Windows 子系统 (WSL) 是基于 Windows 平台的一个系统调用转换层,因此,在尝试安装或运行 Azure CLI 时可能会发生错误。 CLI 依赖于在 WSL 中可能具有 bug 的某些功能。 如果无论你以何方式安装 CLI 都会发生错误,则很可能是因为 WSL 有问题而不是 CLI 安装过程有问题。

若要对 WSL 安装进行故障排除并尽可能解决问题,请执行以下操作:

  • 如果可以,在 Linux 计算机或 VM 上运行相同的安装过程来看看它是否会成功。 如果成功,问题可能与 WSL 有关。 要启动 Azure 中的 Linux VM,请参阅在 Azure 门户中创建 Linux VM文档。
  • 确保运行的是最新版本的 WSL。 若要获取最新版本,请更新 Windows 10 安装
  • 检查 WSL 是否存在可能会解决你的问题的待解决问题。 那里通常会提供有关如何解决该问题的建议,或者提供有关修复该问题的发行版的信息。
  • 如果没有与你的问题对应的现有问题,请提交一个新的 WSL 问题并确保提供尽可能多的信息。

如果在 WSL 上安装或运行时继续出现问题,请考虑安装适用于 Windows 的 CLI

后续步骤

现在你已经安装了 Azure CLI,下面简要介绍其功能和常用命令。