16

As title suggested, I haven't been able to find a good way to install aws-cli (https://github.com/aws/aws-cli/) without having the root access (or equivalent of sudo privileges).

The way Homebrew setup on Mac is hinting at it may be possible, provided that a few directories and permissions are set in a way to facility future installs. However, I have yet to find any approach in Linux (specially, Red Hat Enterprise Linux or CentOS distroes).

I am also aware of SCL from RHEL (https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/scl-utils.html) But again, it requires sudo.

4

6 回答 6

26

为此目的,有一个捆绑的安装程序。

安装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

于 2014-10-01T18:00:58.237 回答
4

对于 AWS CLI v2,推荐的解决方案是传递选项-i-b在安装时指示用户具有写入权限的目录。

例子:

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

来自亚马逊网络服务的文档

sudo如果您指定已经具有写入权限的目录,则可以不安装。使用以下install命令说明指定安装位置:

  • 确保您提供给-i-b参数的路径不包含包含任何空格字符或其他空白字符的卷名或目录名。如果有空格,则安装失败。

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

    默认值为/usr/local/aws-cli

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

    默认值为/usr/local/bin

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

于 2021-04-19T16:29:15.067 回答
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 堆栈

于 2014-09-30T15:40:41.050 回答
1

--user您可以使用以下标志在没有 root 访问权限的情况下安装pip

pip install --user -U awscli

(向在评论中写下这篇文章的 Etan Reisner 致敬)。

于 2019-12-05T17:02:27.443 回答
0

Quiver的答案就像一个魅力,除了有一个先决条件。您还需要安装Python。鉴于您没有 root 权限,您现在最终将搜索如何在没有 root 权限的情况下安装 python,而且这也不是一件简单的事情。</p>

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

  1. 使用 wget 安装 Anaconda </li>
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
  1. 使用捆绑的安装程序安装 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
  1. 测试 AWS CLI 安装</li>
aws —version
于 2022-01-28T18:51:26.033 回答
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

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

于 2021-10-27T14:53:25.417 回答