首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rbenv在可用的ruby版本列表中不包括系统ruby (1.8.7)

rbenv在可用的ruby版本列表中不包括系统ruby (1.8.7)
EN

Stack Overflow用户
提问于 2012-06-06 10:36:28
回答 2查看 2.1K关注 0票数 1

我在Ubuntu12.04 x64桌面上使用Ruby,但是rbenv有一个问题-它只能看到rbenv安装的ruby版本,它不能看到Ubuntu的系统ruby通过智能安装:

代码语言:javascript
复制
$> rbenv versions
  1.9.2-p290
* 1.9.3-p0 (set by /home/kurtosis/bin/ruby/rbenv/version)
  jruby-1.6.5.1

1.8.7.352-2ubuntu1也应该出现在该列表中。将本地或全局拼音设置为system,然后尝试运行rubyirb会导致挂起提示:

代码语言:javascript
复制
$> rbenv versions
  1.9.2-p290
* 1.9.3-p0 (set by /home/kurtosis/bin/ruby/rbenv/version)
  jruby-1.6.5.1
$> ruby --version
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
$> rbenv global system
$> rbenv versions
  1.9.2-p290
  1.9.3-p0
  jruby-1.6.5.1
$> ruby --version
^C
$> rbenv system
rbenv: no such command `system'
$>

我是不是在安装过程中遗漏了什么,你有没有手动将系统ruby添加到rbenv中?

Ruby 1.8.7通过Aptitude安装:

代码语言:javascript
复制
$> aptitude show ruby
Package: ruby                            
State: installed
Automatically installed: no
Version: 4.8
Priority: optional
Section: interpreters
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Uncompressed Size: 36.9 k
Depends: ruby1.8 (> 1.8.7.334-1)
Suggests: ri, ruby-dev
Conflicts: irb, irb, rdoc, rdoc
Replaces: irb, irb, rdoc, rdoc
Provides: irb, rdoc
Provided by: ruby1.8
Description: Transitional package for ruby1.8
 This is a transitional package which ensures that users of ruby will use ruby1.8 in the future. It can safely be removed.
Homepage: http://www.ruby-lang.org/


$> aptitude show ruby1.8
Package: ruby1.8                         
New: yes
State: installed
Automatically installed: yes
Version: 1.8.7.352-2ubuntu1
Priority: optional
Section: interpreters
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Uncompressed Size: 370 k
Depends: libc6 (>= 2.2.5), libruby1.8 (= 1.8.7.352-2ubuntu1)
Suggests: ruby1.8-examples, ri1.8
Conflicts: irb1.8 (< 1.8.7.249-3~), irb1.8 (< 1.8.7.249-3~), rdoc1.8 (< 1.8.7.249-3~), rdoc1.8 (< 1.8.7.249-3~), ri (<= 4.5), ri (<= 4.5), ri1.8 (<
           1.8.7.334-4~), ri1.8 (< 1.8.7.334-4~), ruby (<= 4.5), ruby (<= 4.5), ruby1.8
Replaces: irb1.8, irb1.8, rdoc1.8, rdoc1.8
Provides: irb1.8, rdoc1.8, ruby, ruby-interpreter
Description: Interpreter of object-oriented scripting language Ruby 1.8
 Ruby is the interpreted scripting language for quick and easy object-oriented programming.  It has many features to process text files and to do
 system management tasks (as in perl).  It is simple, straight-forward, and extensible. 

 This package provides version 1.8 series of Ruby. 

 On Debian, Ruby 1.8 is provided as separate packages.  You can get full Ruby 1.8 distribution by installing following packages. 

  ruby1.8 ruby1.8-dev ri1.8 ruby1.8-examples libtcltk-ruby1.8
Homepage: http://www.ruby-lang.org/

kurtosis@kurtosis-dm1-4050us:~/bin/projects/blogs/posterous/export$ 

路径:

代码语言:javascript
复制
$ echo $PATH
/home/kurtosis/bin/ruby/rbenv/shims:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kurtosis/bin:/opt/apache/ant/default/bin:/opt/apache/maven/default/bin:/home/kurtosis/bin/ide/eclipse:/home/kurtosis/bin/ide/idea/default/bin:/opt/scala/bin/default/bin:/opt/typesafe-stack/bin:/home/kurtosis/bin/google/android/sdk/tools:/home/kurtosis/bin/google/android/sdk/platform-tools:/home/kurtosis/bin/google/android/ndk/default/:/opt/haskell/ghc/default/bin:/opt/haskell/platform/default/bin:/home/kurtosis/bin/ruby/rbenv/bin:/home/kurtosis/bin/node/node_modules/less/bin:/home/kurtosis/bin/google/go/bin:/home/kurtosis/bin/utilities/torrent/vuze:/home/kurtosis/bin/utilities/torrent/anomos:/home/kurtosis/bin/scripts:.

为了证明它的价值,我在虚拟机中测试了全新安装的Ubuntu12.04Server x64。通过aptitude install ruby -full`安装ruby,然后下载并安装rbenv。同样的问题,由于某些原因,它仍然看不到系统ruby。新路径是:

代码语言:javascript
复制
/home/kurtosis/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kurtosis/.rbenv/bin:.
EN

回答 2

Stack Overflow用户

发布于 2012-06-06 10:43:32

当你这样做的时候你会得到什么

代码语言:javascript
复制
rbenv global system
ruby -v

代码语言:javascript
复制
rbenv local system
ruby -v

特殊的版本名系统告诉rbenv使用system Ruby (通过搜索您的$PATH检测到)。

请参阅第3.1节:

代码语言:javascript
复制
https://github.com/sstephenson/rbenv
票数 2
EN

Stack Overflow用户

发布于 2012-11-21 15:22:44

您应该尝试使用chruby。当启动shell或切换到目录时,chruby不会自动切换到其他Rubies。默认情况下,chruby使用系统Ruby。

代码语言:javascript
复制
$ chruby jruby
$ chruby
   ruby-1.9.3-p327
 * jruby-1.7.0
   rubinius-2.0.0-rc1
$ which ruby
/usr/local/jruby-1.7.0/bin/ruby
$ chruby system
$ which ruby
/usr/bin/ruby
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10907497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档