有没有办法安装Ruby 1.9.2作为Vagrant / Chef配置过程的一部分?
我在Chef网站上读到了关于使用我自己的bootstrap模板 – 可能是用刀 – 比如this one,但因为我使用的是Vagrant我不知道在哪里放这个模板 – 我没有厨师回购,.chef目录,甚至是/ etc / chef中安装的任何Chef东西.
此VeeWee模板显示当前如何构建10.04框:https://github.com/jedi4ever/veewee/blob/master/templates/ubuntu-10.04.3-server-i386/postinstall.sh
至于你的问题,它们可能是你试图解决的几个不同的背景,每个都有不同的解决方案.希望其中一个将是您正在寻找的.
使用1.9.2运行Chef配方
您可能想要在1.9.2下测试正在运行的Chef配方,并且您不希望1.8.7在您的盒子附近的任何地方.解决这个问题的最佳方法是创建自己的VeeWee模板并为自己构建一个新的baseBox.您可以修改上面链接的那个以编译1.9.2而不是1.8.7并按照https://github.com/jedi4ever/veewee上的说明进行操作
使用Ruby 1.9.2开发
可能更有可能的是你想使用1.9.2破解一些Ruby代码.为此,您只需安装Ruby并在/ opt / ruby条目之前在路径上包含二进制文件.有几种方法可以做到这一点:
>自己从头开始编译Ruby
>使用包裹. lucid中的apt软件包不会给你1.9.2,所以如果你愿意,你可以自己动手.或者这是我目前使用的https://github.com/garethr/packages/downloads
>使用像RVM http://beginrescueend.com/这样的东西
所有这些都可以使用Chef配方进行管理.我可能不会选择编译选项,只留下直接的下载和包资源,或者下面的RVM cookbook对于RVM来说可能很方便http://community.opscode.com/cookbooks/rvm.
包资源上的* gem_binary *选项在这里也可能有用,具体取决于您希望如何确保为新的1.9.2 Ruby安装gem(而不是1.8.7 in opt)
刀具引导的目标是将Chef安装在目标系统上,以便它可以运行Chef Client. Vagrant baseBoxs往往已经安装了Chef,所以除非你正在做一些特定的事情,并且想要运行多个版本的Chef,否则我会避开这条路线.像http://vagrantup.com/docs/provisioners/chef_solo.html这样的内置厨师供应商是更好的选择.