我目前的Ruby版本是2.2.3,我想将其升级到2.3.0.
我使用本指南使用rbenv:gorails.com/setup/ubuntu/16.04
如何升级我的Ruby版本?当我升级时,它是否会影响我需要注意的任何事情?
为了澄清,我正在使用rbenv管理我的ruby版本.我的印象是二进制文件shims在各自的ruby版本目录中进行管理.
这是我的系统在运行gem环境时显示的内容(我排除了不相关的部分):
- GEM PATHS:
- /Volumes/Data/nathan/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1
- /Volumes/Data/nathan/.gem/ruby/1.9.1
Run Code Online (Sandbox Code Playgroud)
有两个地点的任何理由?好奇的人想知道.
我在本地目录上使用rbenv和ruby版本1.9.1-p378.
命令ruby -v给出以下错误:
rbenv: ruby: command not found
The `ruby' command exists in these Ruby versions:
2.0.0-p353
Run Code Online (Sandbox Code Playgroud)
任何线索为什么会这样?bundle,rails命令也不起作用.
命令rbenv版本 :
* 1.9.1-p378 (set by /home/user/Desktop/r1/noko1/.ruby-version)
2.0.0-p353
Run Code Online (Sandbox Code Playgroud) 我通过rbenv-installer安装ruby .
当我使用irb控制台时,我可以通过在键盘上按下来使用历史记录.当我从控制台退出并再次启动时,我无法使用史无前例的历史.当我按向上箭头按钮时,没有发生任何事情.
当我使用rvm这个选项工作.如何在rbenv中打开它?
我正在建立一个流浪汉设置,其中一部分是安装rbenv.我正在使用图书管理员厨师管理我所有的厨师烹饪书,并安装了rbenv和ruby-build.
但是,当我尝试ssh到我的Vagrant虚拟机和类型时,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)
Run Code Online (Sandbox Code Playgroud)
那么我试过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
Run Code Online (Sandbox Code Playgroud)
失败了Permission denied.我尝试再次安装sudo:
sudo rbenv install 1.9.3-p327
Run Code Online (Sandbox Code Playgroud)
这很有效.然后我rbenv versions再次尝试跑步:
vagrant@precise64:~$ rbenv versions
* system (set by /opt/rbenv/version)
Run Code Online (Sandbox Code Playgroud)
但它仍然说只system安装了ruby.但是,如果我运行它sudo:
vagrant@precise64:~$ sudo rbenv …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Mac(Mountain Lion)上使用rbenv安装Ruby 2.0.0-p195并出现此错误.
BUILD FAILED
Inspect or clean up the working tree at /var/folders/vt/27n8h2yj27v7rzq58075f3_m0000gn/T/ruby-build.20130618163859.1669
Results logged to /var/folders/vt/27n8h2yj27v7rzq58075f3_m0000gn/T/ruby-build.20130618163859.1669.log
Last 10 log lines:
installing default gems: /Users/me/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
bigdecimal 1.2.0
io-console 0.4.2
json 1.7.7
minitest 4.3.2
psych 2.0.0
rake 0.9.6
rdoc 4.0.0
test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
Run Code Online (Sandbox Code Playgroud)
当我运行brew install openssl时,它说
Warning: openssl-1.0.1e already installed
Run Code Online (Sandbox Code Playgroud)
关于这个线程的解决方案https://github.com/sstephenson/ruby-build/issues/305我尝试以这种方式安装最新的稳定版并得到相同的错误
env CFLAGS='-g -O2' RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline`" rbenv install 2.0.0-p195
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如何使用rbenv控制安装哪个Ruby gem?或者所有红宝石都有可以进入的中心位置?我只是运行Ruby脚本而不是Rails.rbenv-gemset似乎是为了这个?
我正在尝试运行一些Ruby项目,项目正在使用.ruby-version文件.该文件仅包含:
1.9.3
Run Code Online (Sandbox Code Playgroud)
我安装了最新的Ruby 1.9.3:
$ rbenv install 1.9.3-p448
Run Code Online (Sandbox Code Playgroud)
但是当我跑的时候ruby --version我得到了
rbenv: version '1.9.3' is not installed
Run Code Online (Sandbox Code Playgroud)
要修复我列出的错误~/.rbenv/versions/,它包含该文件夹1.9.3-p448.我将该文件夹重命名为1.9.3并运行rbenv rehash.这解决了这个问题.
看起来像-p448部分(它是什么意思?补丁?)混淆了rbenv.如何在不手动重命名文件夹的情况下识别正确的1.9.3版本~/.rbenv?我也可以.ruby-version改为1.9.3-p448,但这意味着该项目将取决于我特定的Ruby 1.9.3"补丁",这很糟糕.
在新的,新的CentOS 7.0 VM Rbenv安装不会为我安装红宝石
[vagrant@ad-proxy ~]$ rbenv install 2.2.4
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
error: failed to download ruby-2.2.4.tar.bz2
BUILD FAILED (CentOS Linux 7 using ruby-build 20170405-4-g365dd1f)
Run Code Online (Sandbox Code Playgroud)
它显示了更详细的记录
[vagrant@ad-proxy ~]$ rbenv install 2.2.4 -v
/tmp/ruby-build.20170515092651.20803 ~
Downloading ruby-2.2.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
curl: (35) Peer reports incompatible or unsupported protocol version.
error: failed to download ruby-2.2.4.tar.bz2
BUILD FAILED (CentOS Linux 7 using ruby-build 20170405-4-g365dd1f)
Run Code Online (Sandbox Code Playgroud)
这个问题似乎起源于例如卷曲
[vagrant@ad-proxy ~]$ curl https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2
curl: (35) Peer reports incompatible or unsupported protocol version.
[vagrant@ad-proxy ~]$ curl https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.bz2 -v …Run Code Online (Sandbox Code Playgroud) 我弄乱了我的配置.我正在运行Ubuntu 14.04,当我试图从一个项目转移到另一个项目时遇到了一些问题.我尝试卸载并重新安装rbenv,然后按照本指南安装Ruby 2.1.7:https://gorails.com/setup/ubuntu/14.04 .
现在,当我运行时gem install bundler没有任何反应,我无法安装任何宝石.当我输入bundler或bundler -v我看到这个:
/usr/local/bin/bundler: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我花了很多时间试图解决这个问题,但我真的不知道该怎么做.