1

我正在尝试设置 Amazon 的 EC2 服务,但遇到了一些麻烦。

我已经下载了Amazon EC2 API Tools,我将它~/.ec2与我的.cert.pem文件一起放入了一个文件夹中。

当我尝试任何命令时,~/.ec2/bin我得到一个错误/Users/zmjones/.ec2/bin/ec2-cmd: /usr/bin/env: bad interpreter: Operation not permitted我在"/usr/bin/env bad interpreter"中询问了这个问题。

现在我已经使用 this 的变体删除了 DOS 行尾mv /users/zmjones/.ec2/bin/ec2-add-keypair /users/zmjones/.ec2/bin/ec2-add-keypair.bak tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair.bak > /users/zmjones/.ec2/bin/ec2-add-keypair,我尝试执行其中的一些命令,~/.ec2/bin但无法使其正常工作。

我得到了一个权限被拒绝的错误,当我使用 sudo 时,它告诉我环境变量EC2_HOME不存在,而echo $EC2_HOME表明它存在。这是我的~/.bash_profile

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:$PATH
PATH=/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbin:$PATH
PATH=/usr/local/texlive/2011/bin/x86_64-darwin:$PATH
PATH=/Library/Frameworks/EPD64.framework/Versions/Current/bin:$PATH
EC2_HOME=~/.ec2
PATH=$EC2_HOME/bin:$PATH
EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`
EC2_CERT=`ls $EC2_HOME/cert-*.pem`
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/

export PATH
4

2 回答 2

2

您收到“权限被拒绝”错误,因为未在修改后的脚本上设置执行 (+x) 位。

不要sudo用来解决这个问题。

只需设置 +x 位:

chmod +x /users/zmjones/.ec2/bin/ec2-add-keypair

(对于具有固定行尾的其他脚本也是如此)。

sudo不起作用的原因是默认情况下它从一个干净的环境开始,没有您EC2_HOME和其他环境变量。

无论如何您都不想用来sudo解决问题的原因是,以 root 身份sudo运行整个程序,这有可能在您的系统上做坏事。至少,它可能会在您的本地目录中创建由 拥有的文件或子目录root,然后您必须采取额外的步骤来修改/删除它们。在最坏的情况下,程序中的错误可能会破坏您的整个系统或其中的重要部分。

于 2012-05-10T01:22:20.640 回答
0

如果ls -al@显示com.apple.quarantine extended attrib,文件将不会被执行。你需要

xattr -d com.apple.quarantine filename
于 2012-06-10T19:19:53.880 回答