在我的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
不确定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
或者,您可以简单地用centos
非root用户可用的aws cli
路径更新root
路径。
要查找aws-cli的路径,可以使用which
命令
$ which aws
/usr/local/bin/aws
export PATH=<AWS CLI PATH>:$PATH
在Linux 上安装、更新和卸载AWS CLI版本2
首先,使用pip
正确安装awscli
:您可能已将其与apt
一起安装,但尽管awscli
软件包在存储库中可用于其他软件包管理器,如apt
和yum
,这些软件包不由AWS生成、管理或支持。因此,如果你没有安装pip,请尝试重新安装awscli
,如下所示:
sudo pip install awscli --force-reinstall --upgrade
否则,如果使用不带sudo的捆绑安装程序安装了awscli
,则必须知道这会将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
如有任何疑问,请访问官方文件。