您可以通过直接编译源码的方式来安装阿里云CLI。

前提条件

在编译阿里云CLI源码之前,请确保您已满足以下条件:
  1. 已安装软件:
  2. 已配置GOPATH环境变量。

操作步骤

  1. 执行如下命令,下载aliyun-cli源码。
    go get -u github.com/aliyun/aliyun-cli
    说明 在下载源码时,将会使用go get工具。当使用该工具获取源码时,如果返回错误提示该包内没有GO文件,请忽略该错误。其返回形式类似如下:
    package github.com/aliyun/aliyun-openapi-meta: no Go files in $GOPATH/src/github.com/aliyun/aliyun-openapi-meta
  2. 执行如下命令,下载aliyun-openapi-meta源码。
    go get -u github.com/aliyun/aliyun-openapi-meta
  3. 执行如下命令,下载并安装go-bindata打包工具。
    go get -u github.com/jteeuwen/go-bindata/...
    说明 该命令将自动编译go-bindata工具,并将二进制文件置于$GOPATH/bin目录下。
  4. 执行如下命令,进入aliyun-cli项目目录。
    cd $GOPATH/src/github.com/aliyun/aliyun-cli
  5. 执行如下命令,打包aliyun-openapi-meta内的文件。
    go-bindata -o resource/metas.go -pkg resource -prefix ../aliyun-openapi-meta ../aliyun-openapi-meta/...
    说明 在运行之前,您需要将$GOPATH/bin目录添加到PATH环境变量中。
  6. 选择并执行您系统相应的命令,编译源码。
    • Linux或macOS系统:
      go build -o out/aliyun main/main.go
    • Windows系统:
      go build -o out/aliyun.exe main/main.go
    说明 生成的二进制文件保存在aliyun-cli/out目录下。
    编译时,默认版本号是0.0.1。若想指定版本号,请使用-ldflags选项。执行如下命令,指定版本号并进行编译。本示例使用3.0.16版本号。
    go build -ldflags "-X 'github.com/aliyun/aliyun-cli/cli.Version=3.0.16'" -o out/aliyun main/main.go
  7. 编译完成后,您需要将生成的二进制文件所在目录的路径添加到PATH环境变量中,或者将该文件移动到PATH环境变量目录中。
    说明 Linux或macOS系统一般是将aliyun文件移动到/usr/local/bin文件夹中。
  8. 运行aliyun命令,测试阿里云CLI是否安装成功。
    系统显示类似如下阿里云CLI工具的相关帮助信息(部分截取),表示安装成功。
    Alibaba Cloud Command Line Interface Version 3.0.16
    
    Usage:
      aliyun <product> <operation> [--parameter1 value1 --parameter2 value2 ...]
    
    Commands:
      configure       configure credential and settings
      oss             Object Storage Service
      auto-completion enable auto completion
    
    Flags:
      --mode              use `--mode {AK|StsToken|RamRoleArn|EcsRamRole|RsaKeyPair}` to assign authenticate mode
      --profile,-p        use `--profile <profileName>` to select profile
      --language          use `--language [en|zh]` to assign language
      --region            use `--region <regionId>` to assign region
      --config-path       use `--config-path` to specify the configuration file path
      --access-key-id     use `--access-key-id <AccessKeyId>` to assign AccessKeyId, required in AK/StsToken/RamRoleArn mode
      --access-key-secret use `--access-key-secret <AccessKeySecret>` to assign AccessKeySecret
      --sts-token         use `--sts-token <StsToken>` to assign StsToken
      --ram-role-name     use `--ram-role-name <RamRoleName>` to assign RamRoleName
      --ram-role-arn      use `--ram-role-arn <RamRoleArn>` to assign RamRoleAr
    ...