使用 zypper 安装 Azure CLI

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

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

Important

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 处打开浏览器页,然后输入终端中显示的授权代码。

    Note

    在 Azure China 中使用 Azure CLI 2.0 之前,请首先运行 az cloud set -n AzureChinaCloud 更改云环境。 如果要切换回全局 Azure,请再次运行 az cloud set -n AzureCloud

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

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

疑难解答

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

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

在 SLES 12 上,默认的 python3 包为 3.4,不受 Azure CLI 的支持。 可以先从源构建较高版本的 python3, 然后下载 Azure CLI 包,并在没有依赖项的情况下安装它。

$ sudo zypper install -y gcc gcc-c++ make ncurses patch wget tar zlib-devel zlib openssl-devel
# Download Python source code
$ 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"
# Build Python
$ $PYTHON_SRC_DIR/*/configure
$ make
$ sudo make install
#Download azure-cli package 
$ AZ_VERSION=$(zypper --no-refresh info azure-cli |grep Version | awk -F': ' '{print $2}' | awk '{$1=$1;print}')
$ wget https://packages.microsoft.com/yumrepos/azure-cli/azure-cli-$AZ_VERSION.x86_64.rpm
#Install without dependency
$ sudo rpm -ivh --nodeps azure-cli-$AZ_VERSION.x86_64.rpm

代理阻止连接

如果由于代理而无法连接到外部资源,请确保已在 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]

Important

如果你位于代理后面,则必须设置这些 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

更新

可以使用 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
    

后续步骤

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