繁体   English   中英

Ruby通过RVM失败

[英]Ruby through RVM fails

为了在RPM系统上安装Ruby 1.9.2(OS基于CentOS)不断进行的战斗,我正在尝试使用RVM。

因此,一旦我安装了它,我便尝试使用它:

[root@quackwall ~]# rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p136
[root@quackwall ~]# ruby
bash: ruby: command not found
[root@quackwall ~]# which ruby
/usr/bin/which: no ruby in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

现在很有趣; rvm info表示完全不同的内容:

[root@quackwall bin]# rvm info

ruby-1.9.2-p136:

  system:
    uname:       "Linux quackwall.highwow.lan 2.6.18-194.8.1.v5 #1 SMP Thu Jul 15 01:14:04 EDT 2010 i686 i686 i386 GNU/Linux"
    bash:        "/bin/bash => GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.2.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p136"
    date:         "2010-12-25"
    platform:     "i686-linux"
    patchlevel:   "2010-12-25 revision 30365"
    full_version: "ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux]"

  homes:
    gem:          "/usr/local/rvm/gems/ruby-1.9.2-p136"
    ruby:         "/usr/local/rvm/rubies/ruby-1.9.2-p136"

  binaries:
    ruby:         "/usr/local/rvm/rubies/ruby-1.9.2-p136/bin/ruby"
    irb:          "/usr/local/rvm/rubies/ruby-1.9.2-p136/bin/irb"
    gem:          "/usr/local/rvm/rubies/ruby-1.9.2-p136/bin/gem"
    rake:         "/usr/local/rvm/gems/ruby-1.9.2-p136/bin/rake"

  environment:
    PATH:         "/usr/local/rvm/gems/ruby-1.9.2-p136/bin:/usr/local/rvm/gems/ruby-1.9.2-p136@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p136/bin:bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/rvm/bin"
    GEM_HOME:     "/usr/local/rvm/gems/ruby-1.9.2-p136"
    GEM_PATH:     "/usr/local/rvm/gems/ruby-1.9.2-p136:/usr/local/rvm/gems/ruby-1.9.2-p136@global"
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.2-p136"
    IRBRC:        "/usr/local/rvm/rubies/ruby-1.9.2-p136/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

所以我有说一件事的RVM和说另一件事的bash。 关于如何使它工作的任何建议?

为什么要使用根帐户?

[root@quackwall ~]

RVM旨在用作用户的沙箱,除非您要进行系统范围的安装。 对于正常使用,使用root权限和路径进行安装会搞砸一切。

整个系统的安装要复杂得多,因此,如果只适合您,请使用标准安装。

另外,请注意rvm use 1.9.2指向:

/usr/local/rvm/gems/ruby-1.9.2-p136

但:

which ruby

搜索路径中没有/usr/local/rvm/gems/ruby-1.9.2-p136

/usr/bin/which: no ruby in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

如果要使用系统范围的安装,则需要为所有用户修改所有~/.bashrc~/.bash_profile文件,或者调整/etc/bashrc/etc/profile

我相信您没有按照指示进行更新.bashrc

注意,在更新.bashrc您将需要打开一个新的bash终端,以便它重新加载环境。

注意

根据TheLQ的指导/见解,我已经完全修改/澄清了我的答案。

回答

全新安装OSX 10.7后,我通过RVM获得了Ruby。 对我来说,无论使用单用户rvm,rvm都会失败。 Sudo结合一些权限和环境$ PATH对我的用户进行了更改。 这是我所做的:

sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )</pre>
sudo rvm pkg install readline
sudo rvm install 1.9.3

从root用户安装rvm会在/ usr / local / rvm / scripts / rvm中创建一个shell脚本
从此可执行文件中提取代码并将其放在我的.bash_profile中,以便将.bash_profile保存为:

[[ -s "/usr/local/rvm/scripts/rvm" ]] ;
    true ${rvm_path:="/usr/local/rvm"}
    source "/usr/local/rvm/scripts/rvm"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

was created during root user rvm install. 用户组是在root用户rvm安装期间创建的。 我所做的最后一件事是转到OSX 10.7中的“首选项”窗格,然后将用户添加到新的rvm组中。 最终,我重新加载了终端,并能够通过rvm单用户安装1.9.3。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM