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

时间:2014-09-30 14:46:59

标签: amazon-web-services centos redhat aws-cli

正如标题所示,我还没有找到安装aws-clihttps://github.com/aws/aws-cli/)的好方法,而没有root权限(或等同于sudo权限) 。

如果设置了一些目录和权限以便设置将来的安装,则可能有可能在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

4 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分: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

这些是我帮助我实现这一目标的有用链接。

Install Python in an alternate location

Install Python stack without root privilege

答案 2 :(得分:1)

您可以使用--user的{​​{1}}标志来进行无root访问权限的安装:

pip

(给在评论中写过这篇文章的Etan Reisner的提示)。

答案 3 :(得分:1)

对于 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

来自亚马逊网络服务的documentation

<块引用>

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

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

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

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

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

    默认值为 /usr/local/bin

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