ec2_bundle_vol因LoadError错误而失败

时间:2010-04-02 18:31:00

标签: ruby amazon-ec2

我是亚马逊ec2设置的新手。

我现在已经根据自己的口味设置了一台机器 - 我现在想把它捆绑起来。

我正在从已启动的实例运行以下命令 -

root@domU-21-34-67-26-ED-Z4:~# ec2-bundle-vol -r i386 -d /mnt \
                              -p ACT-VOL -u 8940-1355-4155 -k /tmp/pk-key.pem \
                              -c /tmp/cert.pem -s 10240 \
                              -e /mnt,/root/.ssh,/home/ubuntu/.ssh

ruby: No such file or directory -- 
 /home/ubuntu/ec2tools/ec2-api-tools-1.3-46266/lib/ec2/amitools/bundlevol.rb (LoadError)

ruby​​版本是1.8.7。我搜索互联网并安装了libruby1.8-extras等,但无济于事。我也试过从site_ruby(/ usr / local / lib / site_ruby)运行它 - 但没用。

我尝试安装1.8.6版本的ruby,但也无法找到办法。

非常感谢任何帮助。

谢谢, ķ

编辑:还有一个问题是:我是否应该在本地计算机上运行此命令,还是应该在启动的实例中运行此命令?

3 个答案:

答案 0 :(得分:0)

您遇到了一个恼人的问题,即EC2实例上默认情况下未安装EC2 AMI工具。这些工具可以通过this link获得 - 只需下载并解压缩到您启动的实例上即可。

答案 1 :(得分:0)

直接从AMI工具中的bin目录运行脚本,而不是在API工具中运行。 对于ec2-bundle-vol命令,主路径也必须设置为AMI-tools路径

答案 2 :(得分:0)

  

/home/ubuntu/ec2tools/ec2-api-tools-1.3-46266/lib/ec2/amitools/bundlevol.rb(LoadError)

我遇到的第一个问题是我已将EC2_HOMEEC2_AMITOOL_HOME个环境变量设置为指向ami-tools/opt的旧位置。从我的脚本和环境中删除这些导出,一切都运行得更好。

最初我还认为这与ruby的不兼容版本存在问题。

我的解决方案是卸载juby版本并卸载ami-tools包(实际上是ec2-ami-tools下的ubuntu)。然后,当我重新安装ami-tools软件包时,它能够获取相应的ruby版本,现在一切似乎都能正常工作。

apt-get remove ruby
apt-get remove ec2-ami-tools
apt-get install ec2-ami-tools