我开始使用rbenv进行ruby版本管理,我发现irb没有加载正确的ruby版本和gem版本.这是详细信息.
irb Gem.path说:
`>> Gem.path
=> ["/Users/Air/.gem/ruby/1.8", "/Library/Ruby/Gems/1.8", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8"]`
Run Code Online (Sandbox Code Playgroud)
现在在irb如果我输入:puts $:
`>> puts $:
/Library/Ruby/Site/1.8
/Library/Ruby/Site/1.8/powerpc-darwin11.0
/Library/Ruby/Site/1.8/universal-darwin11.0
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0`
Run Code Online (Sandbox Code Playgroud)
在shell中我输入:gem env
`RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.0.1]
- INSTALLATION DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /Users/Air/.rbenv/versions/1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1
- /Users/Air/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用capistrano和rbenv在prod服务器上部署rails 3.2 app.
Bundle失败所以我想覆盖bundle:install回调钩子但是我找不到capistrano gem sorce中的方法.
这个/哪个文件声明了?
我最近从RVM切换到rbenv,即使'rbenv版本'告诉我我想切换到该版本,我似乎也无法在ruby版本之间切换。
我在做什么:
ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
Run Code Online (Sandbox Code Playgroud)
我想切换到1.9.2-p290,因此请确保在我的版本中安装了它:
ruby versions
1.8.7-p370
1.9.2-p290
1.9.3-p125
1.9.3-rc1
Run Code Online (Sandbox Code Playgroud)
好了,现在我知道我可以尝试更改全局rbenv:
rbenv global 1.9.2-p290
ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
Run Code Online (Sandbox Code Playgroud)
似乎1.8.7仍是活跃的全球红宝石。
因此,让我们尝试使其在我的项目中本地化。rbenv本地1.9.2-p290
这将在我的rails项目中创建一个.rbenv-versions文件。伟大的尝试运行捆绑:
Gem::InstallError: factory_girl requires Ruby version >= 1.9.2.
An error occurred while installing factory_girl (4.1.0), and Bundler cannot continue.
Make sure that `gem install factory_girl -v '4.1.0'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
我不确定下一步该怎么做...
我通过rbenv(ruby-build)安装了Ruby 2.0.0-p247 ,不幸的是我的Pow.cx无效.
有没有人有过这样的经历?
我得到以下战俘
Error starting application
Your Rack app raised an exception when Pow tried to run it.
~/.rbenv/versions/1.9.3-p429/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
~/.rbenv/versions/1.9.3-p429/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
~/Code/sandwiches_app/config/boot.rb:6:in `<top (required)>'
~/.rbenv/versions/1.9.3-p429/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
~/.rbenv/versions/1.9.3-p429/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
Run Code Online (Sandbox Code Playgroud)
非常感谢任何见解.它看起来像是在查看1.9.3版本的Ruby,但我已经设置了rbnenv全局,shell和本地(在应用程序.ruby-version中)以使用Ruby 2.0.0-p247.我正在使用ZSH并尝试更新自制程序,rbenv以及冷启动.
我有一个时间在Ubuntu 12.04上安装Nokogiri的魔鬼.我用rbenv.
$ gem install nokogiri -v '1.6.1'
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/.autotest
$ sudo gem install nokogiri -v '1.6.1'
ERROR: Error installing nokogiri:
nokogiri requires Ruby version >= 1.9.2.
$ rbenv sudo gem install nokogiri -v '1.6.1'
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/home/deploy/.rbenv/versions/2.0.0-p353/bin/ruby extconf.rb
Gem files will remain installed in /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1 for inspection.
Results logged to /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/ext/nokogiri/gem_make.out
$ ruby -v …Run Code Online (Sandbox Code Playgroud) Guard 这个问题一直让我讨厌:
.../gems/bundler-1.6.2/lib/bundler/runtime.rb:34:in `block in setup': You have already activated multi_json 1.10.0, but your Gemfile requires multi_json 1.9.2. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
Run Code Online (Sandbox Code Playgroud)
我知道我可以做bundle update或者gem uninstall指定确切的版本Gemfile.
有没有办法一劳永逸地解决这个问题?所以警卫发射bundle exec rspec或bin/rspec(我正在使用rbenv)?我想我在github的某个地方看到了一个补丁,但我现在找不到它.
更新
只是为了记录在这里即使发生了什么bundle exec:
$ bundle exec guard
17:11:07 - INFO - Guard is using TerminalNotifier to send notifications.
17:11:07 - INFO - Guard is using TerminalTitle to send notifications.
17:11:07 - INFO …Run Code Online (Sandbox Code Playgroud) 我正在使用TeamTreehouse.com(设置)推荐的虚拟盒设置(vagrant和virtualbox),每次我尝试启动新项目或安装新gem时,都会出现以下错误:
Errno::ENOSPC: No space left on device - /home/treehouse/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/execjs-2.2.1
要么
Errno::ENOSPC: No space left on device - /home/treehouse/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/cache/rails_serve_static_assets-0.0.2.gem
Run Code Online (Sandbox Code Playgroud)
或者当我进入虚拟框时我会得到
/home/treehouse/.rbenv/libexec/rbenv-init: line 151: cannot create temp file for here-document: No space left on
device
Run Code Online (Sandbox Code Playgroud)
我现在有几个项目,我想我在某个地方消耗了太多空间,但我不知道虚拟盒子的工作原理.它运行Ubuntu 12.04.3 LTS(GNU/Linux 3.8.0-41-generic i686).这是我的df -h日志
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/treehouse--vg-root 7.0G 4.8G 2.0G 72% /
udev 240M 4.0K 240M 1% /dev
tmpfs 50M 292K 50M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 248M 0 248M 0% /run/shm …Run Code Online (Sandbox Code Playgroud) 我想知道我是否在使用 rbenv 和 bundler 时做错了。
我正在使用rbenv和 ruby 2.1.2,就像这样
rbenv versions
system
* 2.1.2 (set by /home/deploy/cp/repo/.ruby-version)
Run Code Online (Sandbox Code Playgroud)
我跑
bundle install --deployment --without=development,test --path=vendor/bundle
从 /home/deploy/cp
但得到
vendor/bundle/ruby/2.1.0
用我所有的宝石创造的。是否有我不知道的 bundler 版本控制方案,或者我应该看到一个
/home/deploy/cp/repo/vendor/bundle/ruby/2.1.2
目录?
我正在尝试安装rbenv,然后运行rbenv install -v 2.3.1以安装相应的Ruby版本.
但是我的主文件夹中的配额非常低,我目前无法使用它,因为管理员不允许它.默认情况下,当我执行eval "$(rbenv init -)"它时,在我的主文件夹中创建.rbenv.
有没有办法在/ opt或其他地方创建它?
使用 rbenv 安装 ruby 2.3.1 时收到错误消息。我的环境如下。
日志消息如下。
$ rbenv install 2.3.1
...
Last 10 log lines:
compiling enc/unicode.c
compiling enc/utf_8.c
compiling enc/trans/newline.c
linking miniruby
generating encdb.h
make: ./miniruby: Permission denied
make: ./miniruby: Permission denied
make: *** [.rbconfig.time] Error 1
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Error 1
Run Code Online (Sandbox Code Playgroud)
如果您遇到同样的错误,请告诉我如何解决此错误?
感谢您的帮助。
rbenv ×10
ruby ×6
rubygems ×2
bundler ×1
capistrano ×1
gem ×1
guard ×1
irb ×1
macos ×1
nokogiri ×1
rack-pow ×1
rspec ×1
ruby-2.3.1 ×1
ubuntu-12.04 ×1
vagrant ×1
virtualbox ×1