2012-05-09 89 views
1

试图让Amazon的EC2命令行工具正常工作。这就是我的.bash_profile的样子。我得到的错误:/users/zmjones/.ec2/bin/ec2-add-keypair:在/ usr/bin中/ ENV:坏的解释:操作不允许/usr/bin/env糟糕的翻译器

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=$PATH:$EC2_HOME/bin 
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 

有谁看到什么错呢?我不确定我做错了什么。

ls -l /usr/bin/env

-r-xr-xr-x 1 root wheel 34720 Sep 8 2011 /usr/bin/env 
zmjones-mbp:.ec2 zmjones$ /usr/bin/env 
TERM_PROGRAM=iTerm.app 
TERM=xterm 
SHELL=/bin/bash 
TMPDIR=/var/folders/x3/vrw5029d1rj9xblj8bmxl0m00000gn/T/ 
Apple_PubSub_Socket_Render=/tmp/launch-91y0bp/Render 
OLDPWD=/Users/zmjones 
USER=zmjones 
COMMAND_MODE=unix2003 
SSH_AUTH_SOCK=/tmp/launch-H3JJsl/Listeners 
__CF_USER_TEXT_ENCODING=0x1F5:0:0 
Apple_Ubiquity_Message=/tmp/launch-n2bT2X/Apple_Ubiquity_Message 
PATH=/users/zmjones/.ec2/bin:/Library/Frameworks/EPD64.framework/Versions/Current/bin:/usr/local/texlive/2011/bin/x86_64-darwin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbn 
PWD=/Users/zmjones/.ec2 
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/ 
LANG=en_US.UTF-8 
ITERM_PROFILE=Default 
SHLVL=1 
HOME=/Users/zmjones 
ITERM_SESSION_ID=w0t0p0 
LOGNAME=zmjones 
EC2_PRIVATE_KEY=pk-mykey.pem 
DISPLAY=/tmp/launch-6kkP5t/org.x:0 
EC2_CERT=cert-mycert.pem 
_=/usr/bin/env 

部分解决方案输出:tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair > /users/zmjones/.ec2/bin/ec2-add-keypair

这似乎让命令来执行,但是他们现在不工作。例如,我下载了一个ec2 api工具的新副本,将它们放入~/.ec2,尝试了ec2-describe-images -o amazon,并得到了错误的解释器错误。我将ec2-describe-images更名为ec2-describe-images.bak,运行上面列出的tr命令并再次尝试。然后我收到一个permission denied error。当我用sudo运行它时,它告诉我没有设置EC2_HOME,但是echo $EC2_HOME表明它是。我运行了chmod +x ec2-describe-images,现在我又回到了同样的错误代码错误。

+0

显示'ls -l/usr/bin/env'的输出 –

+0

-r-xr-xr-x 1根轮子34720 2011年9月8日/ usr/bin/env – Zach

+0

好吧,看起来并不罕见。接下来尝试运行'/ usr/bin/env',如果成功则应打印当前环境。 –

回答

2

/users/zmjones/.ec2/bin/ec2-add-keypair有DOS line-endings

要解决:

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 
+0

原来这是行不通的。我可以得到执行的命令,但它实际上并没有做它应该做的。不确定发生了什么。 – Zach

+0

啊,点了。 – Zach

1

我得到了完全相同的问题。

问题的原因是“unarchiver工具”

我已经安装第三方工具取档。它可能会在解压缩过程中更改文件的行结束符。

我意识到这一点之后,我删除了这个工具,并使用本机解压缩工具重新解压的EC2的拉链球。问题解决了。

希望这可能是你们同样的问题非常有用。

2

这发生在我的Windows,因为我在我的bash文件中的错误的头。我有 #!/usr/bin/bash而不是#!/usr/bin/env bash这是便携式版本。