1

我正在使用打包程序,这是在我的供应商(或至少相关部分)中,就在安装红宝石的供应商之后。

{ "type": "shell",
  "inline_shebang": "/bin/bash",
  "inline": [
    "source ~/.bash_profile",
    "rbenv versions",
    "ruby -v",
    "ls /home/ubuntu/.rbenv/versions/",
    "ls /home/ubuntu/.rbenv/",
    "sudo apt-get update",
    "sudo apt-get -y install unzip",
    "sudo apt-get -y install libqt4-dev libsndfile1-dev",
    "wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip",
    "sudo mkdir -p /usr/local/ec2",
    "sudo unzip ec2-ami-tools.zip -d /usr/local/ec2"
}

rbenv 版本见 2.1.6

ruby -v 说它是 2.1.6

所以肯定安装了ruby...

但是我在打包程序包的末尾收到此错误

==> amazon-instance: Bundling the volume...
    amazon-instance: /usr/local/ec2/ec2-ami-tools-1.5.7/bin/ec2-bundle-vol: line 6: ruby: command not found

我用于捆绑卷的命令是

sudo -n env EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-1.5.7 /usr/local/ec2/ec2-ami-tools-1.5.7/bin/ec2-bundle-vol -k {{.KeyPath}}  -u {{.AccountId}} -c {{.CertPath}} -    r {{.Architecture}} -e {{.PrivatePath}}/* -d {{.Destination}} -p {{.Prefix}} --batch --no-filter"

我试图找到任何关于其他人使用 ec2-ami-tools 遇到此错误但没有成功的参考。任何关于我应该在哪里查找信息的指针(已经检查了 ec2-ami-tools 文档、引用 ec2-bundle-vol 的打包程序文档、其他打包程序配置等,但可能遗漏了一些东西)将不胜感激。

4

1 回答 1

0

我的猜测是因为你捆绑了sudo. 我实际上不知道是什么rbenv,但我怀疑只有ubuntu用户知道在哪里可以找到ruby.

所以看看是否sudo ruby -v给你正确的输出。如果没有,那就是你的问题。

于 2015-08-28T00:45:36.797 回答