有没有办法确定在Rails中运行的Ruby版本(在Web上还是通过script/console)?我安装了Ruby 1.8.6,但我还安装了Ruby Enterprise Edition 1.8.7-20090928,并希望确保它使用正确的安装.
这是我到目前为止所做的.
我现在正在尝试为项目安装Ruby Enterprise Edition rvm install ree并收到以下错误:
$ rvm install ree
ree-1.8.7-2011.03 - #installing
ERROR: Error running './installer -a /Users/FaraazKhan/.rvm/rubies/ree-1.8.7-2011.03
--no-tcmalloc --dont-install-useful-gems ', please read
/Users/FaraazKhan/.rvm/log/ree-1.8.7-2011.03/install.log
ERROR: There has been an error while trying to run the ree installer. Halting
the installation.
Run Code Online (Sandbox Code Playgroud)
我已经尝试CC=/usr/bin/gcc-4.2 rvm install ree了同样的结果.
当我将以下文本粘贴到在ruby-enterprise-2011.03下运行的IRB或PRY时,需要13秒.
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Run Code Online (Sandbox Code Playgroud)
在同一台计算机上运行irb与其他ruby安装时,粘贴速度并不慢.
jruby-1.5.6
jruby-1.6.3
ruby-1.8.6-p420
ruby-1.8.7-p352
ruby-1.9.1-p431
ruby-1.9.2-p290
ruby-1.9.3-preview1
or Mac OS X's default system install of 1.8.7-p249
Run Code Online (Sandbox Code Playgroud)
这个问题与Rails控制台在编辑文本时运行速度非常慢有关,但我没有使用rvm,编写,编辑或删除文本时没有慢; 只有粘贴很慢.@ fl00r的建议有效,但这不是永久修复.
此外,如果粘贴文本中有硬换行,则只有最后一行很慢.例如,粘贴以下文本大约需要1.5秒
# Lorem ipsum dolor sit amet, consectetur adipisicing elit,
# sed do eiusmod tempor incididunt ut labore et dolore magna
# aliqua.
Run Code Online (Sandbox Code Playgroud)
我注意到REE加载了一个libreadline的副本,其他任何ruby安装都没有加载.有没有办法配置和编译REE以忽略MacPorts的libreadline文件?
require 'readline'
puts `lsof -p #{$$} | grep -i readline | awk '{print …Run Code Online (Sandbox Code Playgroud) 我打算建立一个简单的CMS网站,用户可以通过视频,照片和文字提交和查看帖子.
我想做的一个决定是在Ruby Enterprise Edition和Ruby 1.9之间进行选择.
我关心的事情是:
你的建议是什么?
ruby ruby-on-rails ruby-enterprise-edition content-management-system
由于Rails 3.1强烈建议使用Ruby 1.9.2进行安装.但是Ruby Enterprise Edition支持呢?Ruby EE似乎是在1.8.x版本中,所以我想这意味着未来的rails更新将无法正常使用它?
ruby ruby-on-rails upgrade ruby-enterprise-edition ruby-on-rails-3
以下代码片段在Mac OS X上的1.8.7中工作正常,但在Ubuntu上的1.8.6中没有.为什么?有解决方法吗?
适用于1.8.7:
$ ruby --version
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
ltredgate15:eegl leem$ irb
>> 6.times.map {'foo'}
=> ["foo", "foo", "foo", "foo", "foo", "foo"]
>>
Run Code Online (Sandbox Code Playgroud)
但不是1.8.6:
# ruby --version
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]
Ruby Enterprise Edition 20090610
# irb
irb(main):001:0> 6.times.map {'foo'}
LocalJumpError: no block given
from (irb):1:in `times'
from (irb):1
irb(main):002:0>
Run Code Online (Sandbox Code Playgroud)
为什么会有区别?1.8.6的解决方法是什么?
我用Nginx安装了Phusion Passenger,配置Nginx指向正确的目录,然后我运行了webapp目录,这已经下载了gemfiles,但它找不到宝石.
当我访问该网站时,我得到标准的乘客错误页面,其中说:
Error message:
no such file to load -- bundler
Run Code Online (Sandbox Code Playgroud)
这是完整的错误:http://tinypic.com/view.php?pic = vpx36r& s = 7
我做了一个,gem install bundler所以我知道捆绑器已经安装,但我认为它正在寻找宝石的错误位置.
似乎Passenger已经安装了ruby-enterprise-1.8.7,看起来好像1.8已经安装在这个盒子里.
gem env给了我以下内容:
- RUBYGEMS VERSION: 1.4.2
- RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/ruby-enterprise-1.8.7-2010.01/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- /root/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark …Run Code Online (Sandbox Code Playgroud) 在REE和MRI 1.9+中,可以调整ruby的垃圾收集器:
但这些文章都没有说明将这种配置放在何处.我想如果它在环境中,ruby会在启动时将其拾起 - 但是,据我所知,没有办法检查它.我可以找到的任何运行时常量中都没有显示这些设置.
那么,我在哪里放置这个配置,如何仔细检查它是否被使用?
我们有一个较旧的REE rails应用程序,我在OSX Yosemite的本地开发环境中工作.我最近从小牛队转投,我没有遇到任何问题.我第一次在我的新工作mac上运行这个应用程序,发现我无法登录,因为它抛出一个段错误并退出本地webrick服务器.经过一番调查,我找到了罪魁祸首:
digest = Digest::SHA512.hexdigest('some_arbitrary_value')
Run Code Online (Sandbox Code Playgroud)
经过进一步调查,我发现这行代码会引发以下错误:
[BUG] Segmentation fault
ruby 1.8.7 (2013-06-27 MBARI 8/0x6770 on patchlevel 374) [i686-darwin14.3.0], MBARI 0x6770, Ruby Enterprise Edition 2012.02
Run Code Online (Sandbox Code Playgroud)
...并退出ruby控制台.
ruby版本1.8.7和REE都在我的OSX Yosemite机器上产生了这个问题.Ruby版本1.9.3和更新版本似乎产生了预期的哈希没有错误.
从OSX Mavericks转换到Yosemite之后为什么会Digest::SHA512.hexdigest产生[BUG] Segmentation fault错误?
segmentation-fault ruby-enterprise-edition rvm ruby-1.8.7 osx-yosemite
我刚刚安装了Ruby Enterprise Edition,并为它安装了一些宝石.库存Ruby 1.8.6也安装在服务器上.
我已经添加/opt/ruby-enterprise-1.8.6-20090201/bin了我PATH的/usr/bin地方ruby和gem生活的头.
which gem 证实了这一点:
/opt/ruby-enterprise-1.8.6-20090201/bin/gem
但是,当我安装这样的宝石时:
gem install some_gem
他们最终/usr/lib/ruby/gems/1.8/gems/代替了/opt/ruby-enterprise-1.8.6-20090201/lib/ruby/gems/1.8/gems/.
但如果我使用/opt/ruby-enterprise-1.8.6-20090201/bin/gem install some_gem它,请进入REE的gem目录.
我不明白.是否有一些配置选项我必须改变?我在这里使用sudo.也许这与它有关?
我一直认为1.9.x应该比REE快,但消耗更多的内存.但正如最近向我指出的那样,REE实际上比执行RSpec规范更快,而且差距很大.
$ rvm use ree
$ rvm gemset create sandbox
$ rvm gemset use sandbox
$ gem install rspec
$ time rspec foo_spec.rb
No examples found.
Finished in 0.07346 seconds
0 examples, 0 failures
real 0m0.104s
user 0m0.059s
sys 0m0.015s
Run Code Online (Sandbox Code Playgroud)
在用1.9.3做同样的事情后,我得到了
$ time rspec foo_spec.rb
No examples found.
Finished in 0.13922 seconds
0 examples, 0 failures
real 0m0.208s
user 0m0.122s
sys 0m0.022s
Run Code Online (Sandbox Code Playgroud)
这是空宝石集的两倍,仅包含rspec并在空的spec文件上执行.我看到包含多个宝石的宝石的差异更大.
为什么会发生这种情况,1.9.3应该是目前最快的版本?
我在OS X Lion上运行通过RVM安装的最新版本.
在我的VPS(Ubuntu 10.04LTS)上,我通过RVM安装了ree-1.8.7-2011.03和ruby-1.9.2-p180.我的问题是,当我在ree-1.8.7(irb)中调用Time.now时,我得到
Thu May 12 12:16:50 +0200 2011,当我在ruby-1.9.2(irb)中执行相同操作时,我得到了2011-05-12 12:17:44 +0200.
问题是我的rails查询中的日期的ree版本是不可用的(生成的SQL只是简单的破坏).在每个查询中使用strftime格式化时间目前不是一个选项,也没有切换到1.9.2,所以我需要你的帮助来弄清楚为什么会发生这种情况并修复它.
谢谢你的帮助!
ruby locale ruby-on-rails ruby-enterprise-edition ruby-on-rails-3
看过这个解释器比较图后,我想知道MRI主流使用背后的原因,尽管它表现最差.为什么不更频繁地使用Kiji或Ruby Enterprise Edition ; 缺乏宝石支持或其他什么?

例如,Ruby Enterprise Edition是由一些最受欢迎的公司选择的,这归功于它的写时复制功能 ; 我想知道是否有其他解释器实现它.
REE可以轻松地与现有的Ruby解释器并行安装,允许您以最小的麻烦或风险切换到REE.REE已经出现多年了,并且已经被许多知名网站和组织使用,例如 纽约时报,Twitter,Shopify和 37signals.
"我们切换到企业ruby以获得[copy-on-write]内存特性的全部好处,我们绝对可以确认其他人报告的内存节省30%.即使按今天的硬件价格,也可节省数千美元."
ruby ×12
rvm ×2
gem ×1
interpreter ×1
irb ×1
locale ×1
macos ×1
macports ×1
osx-lion ×1
osx-yosemite ×1
passenger ×1
readline ×1
rspec ×1
ruby-1.8.7 ×1
ruby-1.9.3 ×1
rubygems ×1
upgrade ×1