您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

在 Linux 上安装 Azure CLI

Azure CLI 是一种跨平台命令行工具,可在 Linux 计算机上本地安装。 你可以在 Linux 上使用 Azure CLI 连接到 Azure 并对 Azure 资源执行管理命令。 Linux 上的 CLI 允许使用交互式命令行提示符或脚本通过终端执行各种命令。 准备好在 Linux 上安装 Azure CLI 时,建议使用 Linux 分发版的包管理器。 从上述选项中为你的分发版选择相应的包管理器。 如果不具有列出的包管理器,可以通过选择“安装脚本”选项,手动在 Linux 上安装 Azure CLI。

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

概述

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

分发 版本
Ubuntu 14.04 LTS (Trusty Tahir)、16.04 LTS (Xenial Xerus)、18.04 LTS (Bionic Beaver)、20.04 LTS (Focal Fossa)、20.10 (Groovy Gorilla)
Debian Debian 8 (Jessie)、Debian 9 (Stretch)、Debian 10 (Buster)

警告

Ubuntu 20.04 (Focal Fossa) 和 20.10 (Groovy Gorilla) 包含 universe 存储库提供的版本为 2.0.81azure-cli 包。 此包已过时,不建议使用。 如果安装了此包,请先运行 sudo apt remove azure-cli -y && sudo apt autoremove -y 命令删除此包,然后再继续操作。

azure-cli deb 包不支持 ARM64 体系结构。

安装选项

有两个选项可用于在自己的系统上安装 Azure CLI。 可以执行单个命令,下载安装脚本并自动运行安装命令。 如果愿意,也可以选择通过一系列步骤自行执行安装命令。 下面展示了这两种方法。

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

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 签名密钥:

    curl -sL https://packages.microsoft.com/keys/microsoft.asc |
        gpg --dearmor |
        sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
    
  3. 添加 Azure CLI 软件存储库:
    AZ_REPO=$(lsb_release -cs)
    echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO 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

使用 az 命令运行 Azure CLI。 若要登录,请使用 az login 命令。

  1. 运行 login 命令。

    az login
    

    如果 CLI 可以打开默认浏览器,它将这样做并加载 Azure 登录页。

    否则,请在 https://aka.ms/devicelogin 处打开浏览器页,然后输入终端中显示的授权代码。

    如果没有可用的 Web 浏览器或 Web 浏览器无法打开,请通过 az login --use-device-code 使用设备代码流。

  2. 在浏览器中使用帐户凭据登录。

若要详细了解不同的身份验证方法,请参阅使用 Azure CLI 登录

故障排除

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

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 发行版,请使用 bionic 存储库,对于 Debian 发行版,请使用 stretch。 在 Ubuntu Trusty 和 Debian Wheezy 之前发布的发行版不受支持。

基本 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

更新

CLI 提供了一个工具内的命令用于更新到最新版本:

az upgrade

备注

az upgrade 命令是在 2.11.0 版本中添加的,不能在 2.11.0 之前的版本中使用。 可以按照安装 Azure CLI 中重新安装以更新旧版本。

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面

还可使用 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,我们会很遗憾。 在卸载之前,请使用 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
    

概述

对于附带 dnf 的 Linux 分发版(例如 RHEL、Fedora 或 CentOS),可以安装适用于 Azure CLI 的包。 此包已在 RHEL 7.7、RHEL 8、Fedora 24 和更高版本、CentOS 7 和 CentOS 8 中测试。

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

重要

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

请注意,Python 2 已于 2020 年 1 月 1 日停用,再也不会收到更新。 自版本 2.1.0 发布以来,Azure CLI 已放弃对 Python 2.7 的支持。 新版本不再保证在 Python 2.7 环境中正常运行。

备注

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

安装

  1. 导入 Microsoft 存储库密钥。

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  2. 创建本地 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
    

使用 az 命令运行 Azure CLI。 若要登录,请使用 az login 命令。

  1. 运行 login 命令。

    az login
    

    如果 CLI 可以打开默认浏览器,它将这样做并加载 Azure 登录页。

    否则,请在 https://aka.ms/devicelogin 处打开浏览器页,然后输入终端中显示的授权代码。

    如果没有可用的 Web 浏览器或 Web 浏览器无法打开,请通过 az login --use-device-code 使用设备代码流。

  2. 在浏览器中使用帐户凭据登录。

若要详细了解不同的身份验证方法,请参阅使用 Azure CLI 登录

故障排除

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

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

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

可以使用以下命令,通过从源构建的 python 3.6 安装 Azure CLI:

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 下载插件,你会在执行以下代码时遇到“找不到命令”错误。 使用 dnf install 'dnf-command(download)' 安装 dnf 下载插件。

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

作为替代方法,还可以通过一些额外的存储库安装 Python 3。 按照这种方法,如果已设置 python3,但是在尝试运行 cli 时仍然发生 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

更新

CLI 提供了一个工具内的命令用于更新到最新版本:

az upgrade

备注

az upgrade 命令是在 2.11.0 版本中添加的,不能在 2.11.0 之前的版本中使用。 可以按照安装 Azure CLI 中重新安装以更新旧版本。

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面

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

sudo dnf update 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
    

概述

对于附带 zypper 的 Linux 分发版(例如 openSUSE 或 SLES),可以安装适用于 Azure CLI 的包。 此包已在 openSUSE Leap 15.1 和 SLES 15 中测试。

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

重要

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

请注意,Python 2 已于 2020 年 1 月 1 日停用,再也不会收到更新。 自版本 2.1.0 发布以来,Azure CLI 已放弃对 Python 2.7 的支持。 新版本不再保证在 Python 2.7 环境中正常运行。

安装

  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 即可忽略某些依赖项,继续安装。

然后即可使用 az 命令来运行 Azure CLI。 若要登录,请使用 az login 命令。

  1. 运行 login 命令。

    az login
    

    如果 CLI 可以打开默认浏览器,它将这样做并加载 Azure 登录页。

    否则,请在 https://aka.ms/devicelogin 处打开浏览器页,然后输入终端中显示的授权代码。

    如果没有可用的 Web 浏览器或 Web 浏览器无法打开,请通过 az login --use-device-code 使用设备代码流。

  2. 在浏览器中使用帐户凭据登录。

若要详细了解不同的身份验证方法,请参阅使用 Azure CLI 登录

故障排除

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

OpenSUSE 15 VM 上的 NotImplementedError

OpenSUSE 15 VM 有一个预安装的 Azure CLI,其版本为 2.0.45,该版本已过时,并且与 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

更新

CLI 提供了一个工具内的命令用于更新到最新版本:

az upgrade

备注

az upgrade 命令是在 2.11.0 版本中添加的,不能在 2.11.0 之前的版本中使用。 可以按照安装 Azure CLI 中重新安装以更新旧版本。

默认情况下,此命令还将更新所有已安装的扩展。 有关更多 az upgrade 选项,请参阅命令参考页面

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

sudo zypper refresh
sudo zypper update 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
    

概述

备注

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

CLI 需要以下软件:

重要

自版本 2.1.0 发布以来,CLI 已放弃对 Python 2.7 的支持。 新版本不再保证在 Python 2.7 环境中正常运行。

安装或更新

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

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

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

然后即可使用 az 命令来运行 Azure CLI。 若要登录,请使用 az login 命令。

  1. 运行 login 命令。

    az login
    

    如果 CLI 可以打开默认浏览器,它将这样做并加载 Azure 登录页。

    否则,请在 https://aka.ms/devicelogin 处打开浏览器页,然后输入终端中显示的授权代码。

    如果没有可用的 Web 浏览器或 Web 浏览器无法打开,请通过 az login --use-device-code 使用设备代码流。

  2. 在浏览器中使用帐户凭据登录。

若要详细了解不同的身份验证方法,请参阅使用 Azure CLI 登录

故障排除

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

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,我们会很遗憾。 在卸载之前,请使用 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

后续步骤

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