是否可以在没有root权限的情况下安装aws-cli软件包?

问题描述 投票:0回答:8

正如标题所建议的,在没有root访问权限(或相当于

aws-cli)的情况下,我一直无法找到安装
sudohttps://github.com/aws/aws-cli/
)的好方法
特权)。

Mac 上的

Homebrew
设置方式暗示这可能是可能的,前提是设置了一些目录和权限以方便将来的安装。然而,我还没有在 Linux 中找到任何方法(特别是 Red Hat Enterprise Linux 或 CentOS 发行版)。

我也了解 RHEL 的 SCL (https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/scl-utils.html) 但同样,它需要

sudo
.

amazon-web-services centos redhat aws-cli
8个回答
32
投票

有一个用于此目的的捆绑安装程序。

aws
命令安装到
$HOME/bin

wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
unzip awscli-bundle.zip
./awscli-bundle/install -b ~/bin/aws

设置

$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

测试 AWS CLI 安装

aws help

详情请参阅以下链接: http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install-bundle-user


21
投票

对于 AWS CLI v2,建议的解决方案是在安装时传递选项

-i
-b
指示用户具有写入权限的目录。

示例:

$ cd Downloads
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ ./aws/install -i ~/aws-cli -b ~/aws-cli/bin

来自 Amazon Web Service 的 文档

如果您指定已经具有写入权限的目录,则无需安装

sudo
即可安装。使用以下
install
命令说明来指定安装位置:

  • 确保您提供给

    -i
    -b
    参数的路径不包含包含任何空格字符或其他空白字符的卷名称或目录名称。如果有空格则安装失败。

  • --install-dir
    -i
    – 此选项指定要将所有文件复制到的目录。

    默认值为

    /usr/local/aws-cli

  • --bin-dir
    -b
    – 此选项指定安装目录中的主
    aws
    程序以符号方式链接到指定路径中的文件
    aws
    。您必须具有指定目录的写入权限。创建指向路径中已有目录的符号链接就无需将安装目录添加到用户的
    $PATH
    变量中。

    默认值为

    /usr/local/bin

(我认为接受的答案已经过时,因为它仅适用于 AWS CLI v1。)


2
投票

显然,答案是可能的。诀窍是将整个堆栈安装在主机上的备用位置。

所以 altinstall python,然后 easy_intsall,然后 pip。这是我日志中的命令历史记录。

cd
mkdir installations
cd installations/
curl -O https://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2
tar xjf Python-2.7.tar.bz2 
cd Python-2.7
mkdir -p ~/usr/local
make altinstall prefix=~/usr/local exec-prefix=~/usr/local
~/usr/local/bin/python2.7 -V
ln -s ~/usr/local/bin/python2.7 ~/usr/local/bin/python
echo "export $PATH=~/usr/local/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
cd
mkdir virtualenv
cd virtualenv/
curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py
mkdir ~/envs
python virtual-python.py --prefix=~/env/aws
curl -O http://peak.telecommunity.com/dist/ez_setup.py
~/env/aws/bin/python ez_setup.py
echo "export $PATH=~/env/aws/bin:~/usr/local/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
easy_install virtualenv
virtualenv --no-site-packages ~/env/awscli
source ~/env/awscli/bin/activate
pip -V
pip install awscli

这些是我遵循的有用链接,可帮助我实现该目标。

在备用位置安装Python

无需 root 权限即可安装 Python 堆栈


1
投票

您可以使用

--user
标记到
pip
:

进行安装,无需 root 访问权限
pip install --user -U awscli

(向在评论中写下此内容的 Etan Reisner 致敬)。


0
投票

在我的 ubuntu 20.04 上安装 aws 后,我遇到了同样的问题。 当我尝试时:

aws --version

没成功(

Command 'aws' not found, but can be installed with: sudo apt install awscli
) 和

/usr/local/bin/aws --version
aws-cli/2.3.1 Python/3.8.8 Linux/5.11.0-38-generic exe/x86_64.ubuntu.20 prompt/off

那么如果没有 sudo 权限我就无法使用 aws

我通过(通过在 /usr/local/aws-cli 目录上添加组和其他人的权限)修复了它

sudo chmod -R 755 /usr/local/aws-cli

它对我有用! 让我知道是否适合您!


0
投票

Quiver的答案就像一个魅力,只不过有一个先决条件。您还需要安装Python。考虑到您没有 root 权限,您现在最终将搜索如何在没有 root 权限的情况下安装 python,这也不会那么简单。

所以这是最终对我有用的完整解决方案。

    使用 wget 安装 Anaconda
cd ~ wget https://repo.continuum.io/archive/Anaconda3-2020.11-Linux-x86_64.sh bash Anaconda3-2020.11-Linux-x86_64.sh -b -p ~/anaconda3 # Install aws command to $HOME/bin echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc ~/anaconda3/bin/conda init # Reload default profile source ~/.bashrc

    使用捆绑安装程序安装 aws-cli 软件包
wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip unzip awscli-bundle.zip ./awscli-bundle/install -b ~/bin/aws
 export PATH=~/bin:$PATH

    测试 AWS CLI 安装
aws —version
    

0
投票
namei -l /usr/local/bin/aws
显示通向实际 aws 脚本的每个路径的权限。

sudo chmod 777

 修复了非 root 用户无法访问的路径的权限。


-1
投票
我使用 conda 安装 asw cli:

conda install -c conda-forge awscli
安装 conda 不需要 root 权限。

© www.soinside.com 2019 - 2024. All rights reserved.