RBENV是否应该在系统范围内或用户级别安装?[英] Should rbenv be installed system-wide, or at a user level?

本文是小编为大家收集整理的关于RBENV是否应该在系统范围内或用户级别安装?的处理方法,想解了RBENV是否应该在系统范围内或用户级别安装?的问题怎么解决?RBENV是否应该在系统范围内或用户级别安装?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在构建一个流浪设置,其中一部分是安装RBENV.我正在使用Libranian-Chef来管理我所有的厨师食谱,并安装Rbenv和Ruby-Build.

但是,当我尝试进入流量VM并键入ruby -v时,我得到了标准系统安装的ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux].认为可能没有安装RBENV,我尝试运行rbenv versions,但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

Permission denied失败.我尝试使用sudo再次安装:

sudo rbenv install 1.9.3-p327

那起作用.然后我尝试再次运行rbenv versions:

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

,但它仍然只说system Ruby已安装.但是,如果我用sudo运行它:

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

rbenv versions现在已安装1.9.3.

因此,似乎存在断开连接,因为RBENV和我的Ruby版本现在已安装在系统级别而不是在用户级别上.

我正在使用 rbenv-cookbook .我想和厨师一起设置RbENV,因为这使我无法手动设置,然后安装后.

我遇到的另一个问题是,看起来像gem这样的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.

推荐答案

大约两年前,a 讨论在Github中进行了讨论安装,似乎可以回答问题.

概要:Sstephenson(RBENV作者)特别喜欢鼓励系统范围内的安装,因为具有权限的复杂性,写入访问等.简单是目标.

编辑

从那以后,我遇到了FNICHOL的厨师 - rbenv食谱,如果您实际上想安装系统范围的RBENV,请给出正确和正确的方法,您可以用厨师自动化它(我推荐刀具独奏).

>

它将其安装到/etc/profile.d/上" rel =" nofollow noreferrer">将适当的红宝石放入PATH .

其他推荐答案

RBENV应安装在用户级别.

不幸的是,这意味着在运行gem install时,您可能会遇到看到的问题:

You don't have write permissions into the {...} directory

您可以通过在~/.rbenv目录上设置正确的权限来解决此问题.

sudo chown -R yourusername ~/.rbenv

在chown目录之后,您可以在没有sudo的情况下运行gem install.

其他推荐答案

RBENV读数中的所有内容都假定~/.rbenv/中的本地(使用者)安装,因此我认为官方建议是按每个用户安装.

仍然可以在全球安装它.但是您需要sudo对于所有需要编写权利的命令.安装新红宝石,安装宝石*并更改全局红宝石版本是我想到的,可能还有更多.

(*)需要sudo安装新的宝石是默认是当您通过默认系统例程安装ruby当apt on debian上的apt时,不需要sudo,它实际上是使用在适用于a上工作的红宝石版本的积极副作用每个用户基础

本文地址:https://www.itbaoku.cn/post/786474.html