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

06odsfpq  于 2022-11-07  发布在  其他
关注(0)|答案(8)|浏览(233)

正如标题所建议的,我还没有找到一个好的方法来安装aws-clihttps://github.com/aws/aws-cli/),而没有root访问权限(或等效的sudo特权)。
在Mac上安装Homebrew的方式可能是可行的,只要设置一些目录和权限以方便将来的安装。然而,我还没有在Linux中找到任何方法(特别是Red Hat Enterprise Linux或CentOS distroes)。
我也知道来自RHEL(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/scl-utils.html)的SCL,但同样,它需要sudo

0h4hbjxa

0h4hbjxa1#

有一个捆绑的安装程序用于此目的。
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

jexiocij

jexiocij2#

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

从Amazon Web服务的documentation

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

  • 请确保您提供给-i-b参数的路径不包含任何包含空格字符或其他空白字符的卷名或目录名。如果存在空格,则安装将失败。
  • --install-dir-i-此选项指定要将所有文件复制到的目录。

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

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

默认值为/usr/local/bin
(我认为公认的答案已经过时,因为它只适用于AWS CLI v1。)

njthzxwz

njthzxwz3#

显然,答案是可能的。诀窍是将整个堆栈安装在主机上的一个备用位置。
因此,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

wbrvyc0a

wbrvyc0a4#

您可以通过将--user标志设置为pip,在没有超级用户访问权限的情况下安装:

pip install --user -U awscli

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

bfrts1fy

bfrts1fy5#

在我的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

这对我很有效!让我知道这对你是否合适!

a14dhokn

a14dhokn6#

Quiver给出的答案很有魅力,只是有一个先决条件。您还需要安装Python。由于您没有root权限,您现在将搜索如何在没有root权限的情况下安装python,这也不会是简单的。

这是最终对我有效的完整解决方案。
1.使用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

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


aws —version
hkmswyz6

hkmswyz67#

namei -l /usr/local/bin/aws

显示了指向实际aws脚本的每个路径的权限。
sudo chmod 777修复了非root用户无法访问的路径的权限。

2w3rbyxf

2w3rbyxf8#

我使用conda安装asw cli:

conda install -c conda-forge awscli

安装conda不需要root权限。

相关问题