我正在尝试使用自制软件对openssl进行一些更新,但我设法破坏了一切.我现在无法做任何事情,这是我尝试进行捆绑安装时得到的结果:
$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
from …Run Code Online (Sandbox Code Playgroud) 我根据github方向安装了rbenv.我正在运行OSX,但我在Ubuntu 12.04 VM上尝试了这个并得到了相同的结果.当我尝试更改ruby版本时,以下是我在终端中获得的内容:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法为什么rbenv没有像它认为的那样切换ruby版本?此外,本地目录中没有.rbenv文件会导致ruby版本默认为1.8.7
rbenv local
rbenv: no local version configured for this directory
Run Code Online (Sandbox Code Playgroud) 我对RVM和rbenv如何实际工作感兴趣.
显然,他们在不同版本的Ruby和gemsets之间进行交换,但这是如何实现的呢?我曾经假设他们只是更新符号链接,但是深入研究代码(我必须承认我对Bash的了解是肤浅的),他们似乎做得比这更多.
在Ubuntu 10.04中,我刚刚安装了rbenv.安装命令不存在.
rbenv 0.4.0-49-g8b04303
Usage: rbenv <command> [<args>]
Some useful rbenv commands are:
commands List all available rbenv commands
local Set or show the local application-specific Ruby version
global Set or show the global Ruby version
shell Set or show the shell-specific Ruby version
rehash Rehash rbenv shims (run this after installing executables)
version Show the current Ruby version and its origin
versions List all Ruby versions available to rbenv
which Display the full path to an executable
whence List …Run Code Online (Sandbox Code Playgroud) rails console由于此错误,我无法执行:
localhost:TwitterForZombies wiz$ rails c
/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib (LoadError)
Referenced from: /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
Reason: image not found - /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `require'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `<top (required)>'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `require'
from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我通过自制软件安装了readline.我想继续使用rbenv而不是rvm.
感谢您阅读我的问题.
如何从rbenv卸载或删除ruby版本.我已经安装了两个版本的ruby.切换到ruby 1.9.3时,我遇到了分段错误.任何人都可以请求帮助,如何从rbenv中删除特定版本?
我是Ruby和Rails的新手.我正在寻找一个纯粹客观的功能列表,每个功能和优点/缺点.为了保持偏好,除非您使用了所有3个系统,否则请不要回答.
我在OS X 10.9.3 MacBook Pro上通过Homebrew安装了rbenv.
我做了:
brew update
brew upgrade rbenv ruby-build
Run Code Online (Sandbox Code Playgroud)
根据rbenv install --list我的笔记本电脑Ruby 2.1.0-dev是最新的.
有谁知道这是关于什么的?我猜这是一个10.9.3的问题.
我似乎找不到快速切换PHP版本的方法.有没有相当于PHP的ruby版本管理器的东西?我需要在OS X上切换5.3和5.2.
TL; DR
$ gem-based-binary _version_ args表示法指定要执行的版本.bundle exec指定版本的Gemfile时使用.gem install rails -v 3.2.13
rails _3.2.13_ new Project2
cd Project2
bundle exec rails server
Run Code Online (Sandbox Code Playgroud)
更新时间: 2015-06-04
我三年前写过这个问题.部分地,它是基于错误的假设,部分情况从那时起发生了变化.感谢@indirect的原始答案,我想提请注意@kelvin的更新(不太热烈)的答案,如上所述.
我的错误假设:一次只能安装一个gem的单个版本,因此需要gemsets来隔离命名空间.不对.可以同时安装多个版本的gem.从命令行调用时将使用最新的一个,除非您有一个Gemfile指定版本约束并通过命令调用命令bundle exec,或指定版本作为其第一个参数.
另请参阅如何从命令行调用旧版本的gem?re:下划线版本表示法.
原始问题:
我有多个项目正在使用不同版本的Rails.我有一个工作流程(如下所述),用于使用特定版本的rails创建项目,并保持项目彼此隔离.我想尝试其他工作流程,特别是使用rbenv而不是RVM,但目前尚不清楚如何这样做.
问题:当使用rbenv和bundler而不是rbenv-gemset或rvm 时,创建多个rails项目 的最佳当前实践是什么,每个项目使用不同版本的rails .
用例: 我有两个rails项目,名为ProjectA和ProjectB.ProjectA是使用一个版本的rails("RailsA")开发的,而ProjectB使用不同的版本("RailsB").如何安装两个版本?
GEMSETS方法: 当我第一次开始使用Rails开发时,我使用了RVM.除了支持多个并发安装的ruby之外,RVM还支持具有多个命名宝石集.每个项目都有自己独立的宝石集合(包括rails本身),称为gemset:
rvm gemset create RailsA
rvm gemset use RailsA
# RailsA. Note: My question is not version-specific.
gem install rails --version …Run Code Online (Sandbox Code Playgroud)