0

我正在将现有的 Rails 3.2 应用程序升级到 Rails 4。我在 Ubuntu 13.04 上通过 rbenv 使用 ruby​​ 1.9.3p429(2013-05-15 修订版 40747)[x86_64-linux]。我在 Rails 3.2 中使用了“--binstubs”选项。在升级过程中,我:

  • 升级 Rails 到 Rails 4.0.0
  • 使用最新的 Rails 4 等效 gem 升级 Gemfile
  • 运行 'bundle config --delete bin && rm -rf bin'

运行 'rake rails:update:bin' 核心转储,前几行是:

/home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228: [BUG] Segmentation fault
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0039 p:---- s:0128 b:0128 l:000127 d:000127 CFUNC  :require
c:0038 p:0010 s:0124 b:0124 l:000116 d:000123 BLOCK  /home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228
c:0037 p:0071 s:0122 b:0122 l:000121 d:000121 METHOD /home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213
/home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228: [BUG] Segmentation fault
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]

鉴于 Gem 的大小和错误输出,我在https://gist.github.com/grcarey/6109181创建了一个要点,其中包含 Gemfile 和 rake 命令的输出。

一些解决这个问题的想法将不胜感激。

- - - - - 更新 - - - - - -

使用 'ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]' 运行命令会在错误输出中给出以下几行:

-- Control frame information -----------------------------------------------
c:0039 p:---- s:0128 b:0128 l:000127 d:000127 CFUNC  :require
c:0038 p:0010 s:0124 b:0124 l:000116 d:000123 BLOCK  /home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228
c:0037 p:0071 s:0122 b:0122 l:000121 d:000121 METHOD /home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213
c:0036 p:0019 s:0117 b:0117 l:000116 d:000116 METHOD /home/user/projects/proj_name/.bundle/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228
c:0035 p:0011 s:0112 b:0112 l:000111 d:000111 TOP    /home/user/projects/proj_name/.bundle/gems/nokogiri-1.6.0/lib/nokogiri/xml.rb:1
c:0034 p:---- s:0110 b:0110 l:000109 d:000109 FINISH
Segmentation fault
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
4

1 回答 1

3

问题解决了。

我一直在 Rails 3.2 中使用 bundle binstubs 选项,并且在升级之前我没有删除项目的 bundle 和 bin 目录。

删除这些目录并重新运行bundle install后,运行rake rails:update:bin问题就解决了。

于 2013-08-13T02:31:58.773 回答