红宝石 – 应该在系统范围内还是在用户层面安装rbenv?

我正在构建一个流氓设置,其中一部分是安装rbenv.我正在使用图书管理员厨师管理我所有的厨师食谱,并安装了rbenv和 ruby-build.

但是,当我试图将ssh插入我的Vagrant VM并输入ruby -v时,我得到了标准系统安装的ruby 1.8.7(2012-02-08 patchlevel 358)[x86_64-linux].想想rbenv还没有安装,我尝试运行rbenv版本,但是rbenv其实是安装的:

vagrant@precise64:~$rbenv versions
* system (set by /opt/rbenv/version)

所以我试过rbenv install [version]:

vagrant@precise64:~$rbenv install 1.9.3-p327
[...]

BUILD Failed
[...]

test -z "/opt/rbenv/versions/1.9.3-p327/include" || /bin/mkdir -p "/opt/rbenv/versions/1.9.3-p327/include"
/bin/mkdir: cannot create directory `/opt/rbenv/versions/1.9.3-p327': Permission denied

失败,权限被拒绝.我尝试用sudo重新安装:

sudo rbenv install 1.9.3-p327

而且有效然后我再次尝试运行rbenv版本:

vagrant@precise64:~$rbenv versions
* system (set by /opt/rbenv/version)

但是它仍然说只安装了系统红宝石.但是,如果我用sudo运行它:

vagrant@precise64:~$sudo rbenv versions
* system (set by /home/vagrant/.rbenv/version)
  1.9.3-p327

rbenv版本现在显示1.9.3已安装.

所以似乎有一个断开连接,因为rbenv和我的红宝石版本现在安装在系统级而不是用户级.

我正在使用rbenv-cookbook.我想要rbenv与厨师一起设置,因为这样可以让我手动安装,安装后.

我遇到的另一个问题是,似乎像Ruby这样的红宝石控制的一切都是同样的断断续续.

vagrant@precise64:~$gem install bundler
Fetching: bundler-1.3.5.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory.

解决方法

大约两年前,一个关于共享安装的 discussion happened in github,似乎回答了这个问题.

简介:sstephenson(rbenv作者)特别不喜欢鼓励系统级的安装,因为复杂的权限,写入访问等.他认为增加强大的支持将使rbenv更加复杂,简单性是目标.

编辑

我从来没有碰到过fnichol的厨师-rbenv菜谱,如果你真的想安装一个系统范围的rbenv,给出一个right and proper method,你可以用Chef自动化(我推荐刀子独奏).

它将其安装到/etc/profile.d/,以便所有用户运行,putting the proper ruby into the PATH.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...