须藤:aws:找不到命令

时间:2021-02-23 15:45:03

标签: linux amazon-web-services aws-cli

在我的 Centos 机器上安装了 aws cli 2。已添加

<块引用>

PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin"

/etc/environment。大多数情况下 aws 命令可以成功调用。但是,当使用 sudo aws 时,它显示未找到命令。以下是所有场景。有什么想法吗?

[centos@ip-172-20-x-x ~]$ aws --version
aws-cli/2.1.28 Python/3.8.8 Linux/3.10.0-1160.11.1.el7.x86_64 exe/x86_64.centos.7 prompt/off
[centos@ip-172-20-x-x ~]$ sudo su
[root@ip-172-20-x-x centos]# aws --version
aws-cli/2.1.28 Python/3.8.8 Linux/3.10.0-1160.11.1.el7.x86_64 exe/x86_64.centos.7 prompt/off
[root@ip-172-20-x-x centos]# sudo aws --version
sudo: aws: command not found
[root@ip-172-20-x-x centos]# cat /etc/environment
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin"
[root@ip-172-20-x-x centos]# sudo env
HOSTNAME=ip-172-20-x-x.ap-southeast-1.compute.internal
TERM=xterm
HISTSIZE=1000
USERNAME=root
MAIL=/var/spool/mail/centos
LANG=en_US.UTF-8
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
LOGNAME=root
USER=root
HOME=/root
SHELL=/bin/bash
SUDO_COMMAND=/bin/env
SUDO_USER=root
SUDO_UID=0
SUDO_GID=0
XDG_SESSION_ID=20

2 个答案:

答案 0 :(得分:0)

不确定您如何安装 CLI,以及为什么 aws cli 需要 sudo。

假设您在机器上拥有 sudo 权限,可以使用以下命令进行安装,从帖子中我可以看到您已经在根路径中拥有 /usr/local/bin

<块引用>

安装命令在新解压的aws目录中使用了一个名为install的文件。默认情况下,所有文件都安装到 /usr/local/aws-cli,并在 /usr/local/bin 中创建符号链接。该命令包括 sudo 以授予对这些目录的写权限

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

或者,您可以简单地将 root 路径更新为 aws cli 非 root 用户可用的 centos 路径。

要找出 aws cli 的路径,您可以使用 which 命令

$ which aws
/usr/local/bin/aws
export PATH=<AWS CLI PATH>:$PATH 

Installing, updating, and uninstalling the AWS CLI version 2 on Linux

答案 1 :(得分:0)

首先,使用 awscli 正确安装 pip:您可能已经使用 apt 安装了它,但是尽管 awscli 软件包在其他软件包管理器的存储库中可用例如 aptyumAWS 不生产、管理或支持这些。 因此,如果您没有安装 pip,请尝试重新安装 awscli,如下所示:

sudo pip install awscli --force-reinstall --upgrade

否则,如果您使用捆绑安装程序安装了 awscli,但没有使用 sudo,您必须知道这会将 AWS CLI 安装到默认值位置 (~/.local/lib/aws) 并在 ~/bin/aws 处创建符号链接(symlink)。确保 ~/bin 在您的 PATH 环境变量中以使符号链接起作用,如下所示:

$ echo $PATH | grep ~/bin     // See if $PATH contains ~/bin (output will be empty if it doesn't)
$ export PATH=~/bin:$PATH     // Add ~/bin to $PATH if necessary

如有任何疑问,请访问 official documentation