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 だと言っています

だからルビーは間違いなくインストールされています...

それでも、パッカーバンドルの最後にこのエラーが発生します

==> 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 を参照する packer ドキュメント、他の Packer 構成などをチェックアウトしましたが、何かを見落としている可能性があります) をいただければ幸いです。

4

1 に答える 1

0

とバンドルしているためだと思いますsudo。実際には何が何なのかはわかりませんが、ユーザーrbenvだけがどこにあるのかを知っていると思います。ubunturuby

したがってsudo ruby -v、正しい出力が得られるかどうかを確認してください。そうでない場合は、問題があります。

于 2015-08-28T00:45:36.797 に答える