按照有关此 stackoverflow 的说明进行操作后,我能够使其在本地计算机上运行。我什至在部署服务器上安装了 gems,并且可以在本地运行服务器。
带有 ruby-debugger 的 Rails 抛出“找不到符号:_ruby_current_thread (LoadError)”
对于部署,我们使用 Capistrano,问题是 Gemfile 包含以下内容:
gem 'linecache19', '0.5.13', :path => "~/.rvm/gems/ruby-1.9.3-p#{RUBY_PATCHLEVEL}/gems/linecache19-0.5.13/"
gem 'ruby-debug-base19', '0.11.26', :path => "~/.rvm/gems/ruby-1.9.3-p#{RUBY_PATCHLEVEL}/gems/ruby-debug-base19-0.11.26/"
因为 RUBY_PATCHLEVEL 在服务器和我的本地机器上不同,它会将我的本地机器路径添加到 Gemfile.lock 并且在服务器上它试图在那里找到 gem,但它不能因为补丁不同。
下面是堆栈跟踪
您尝试在更改 Gemfile 后以部署模式安装。在其他地方运行bundle install
并将更新的 Gemfile.lock 添加到版本控制。
You have added to the Gemfile:
* source: source at ~/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.26/
* source: source at ~/.rvm/gems/ruby-1.9.3-p125/gems/linecache19-0.5.13/
我的本地机器 ruby 版本是 1.9.3-p194,服务器有 1.9.3-p125。我怎样才能解决这个问题?