【发布时间】:2012-10-20 05:38:17
【问题描述】:
按照有关此 stackoverflow 的说明进行操作后,我能够使其在本地计算机上运行。我什至在部署服务器上安装了 gems,并且可以在本地运行服务器。
Rails with ruby-debugger throw 'Symbol not found: _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。我该如何解决这个问题?
【问题讨论】:
-
查看stackoverflow.com/questions/6438116/…;在那里处理相同的错误回溯。
-
我试过了,现在它可以在我的本地机器和服务器上运行,但是当使用 capistrano 进行部署时,它会失败并抛出在路径上找不到 gem 的错误。问题是本地机器上的 ruby 补丁版本与远程主机上的不同
-
酷。你能用新错误的完整堆栈跟踪更新问题吗?描述您所做的更改也会很有帮助。
-
添加了这个问题的答案。注意:这与原来的问题完全不同;首选方法是添加一个新问题。
标签: ruby-on-rails ruby rails-3-upgrade