【问题标题】:Could not find rake-0.9.2.2 in any of the sources (Bundler::GemNotFound) using windwos 7 (no rvm)使用 Windows 7(无 rvm)在任何源(Bundler::GemNotFound)中找不到 rake-0.9.2.2
【发布时间】:2012-11-06 14:13:33
【问题描述】:

人,

我是 ROR 的新手,不是新人(不再是),但对将应用程序转移到生产环境没有经验。为了了解迁移到生产流程的工作原理,我创建了一个非常简单的 rails 项目。以下是关于我的系统(在 Windows 7 上运行)的一些基本信息:

Ruby version                1.9.3 (i386-mingw32)
RubyGems version            1.8.24
Rack version                1.4
Rails version               3.2.8
JavaScript Runtime          JScript
Active Record version       3.2.8
Action Pack version         3.2.8
Active Resource version     3.2.8
Action Mailer version       3.2.8
Active Support version      3.2.8
Application root            C:/Sites/railstest
Environment                 development
Database adapter            sqlite3
Database schema version     0

中间件:

ActionDispatch::Static
Rack::Lock
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x2a70f20>
Rack::Runtime
Rack::MethodOverride
ActionDispatch::RequestId
Rails::Rack::Logger
ActionDispatch::ShowExceptions
ActionDispatch::DebugExceptions
ActionDispatch::RemoteIp
ActionDispatch::Reloader
ActionDispatch::Callbacks
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
ActionDispatch::Head
Rack::ConditionalGet
Rack::ETag
ActionDispatch::BestStandardsSupport

我的虚拟主机是 webhost。

这就是我所做的:

  1. 使用 rails new railstest 生成一个名为 railstest 的新 Rails 应用程序
  2. 用我的虚拟主机上使用的版本更新了 gemfile
  3. 运行“bundle install --deployment”以将所有 gem 放在供应商目录中。
  4. 将所有内容通过 FTP 传输到虚拟主机
  5. 通过 PuTTY 成功运行捆绑安装

但是当我调用该站点时,我总是会得到如下信息: http://www.kernification.de/rails/info/properties (我没有足够的声望在这里张贴图片...)

我已经尝试了更多(我正在为这个问题争取大约 1.5 周),但它似乎一直都是同一个问题。网络主机支持告诉我 gem 位于 1.9.1,而不是 1.8,我对此有一些疑问:

  1. 1.9.1(或1.8)是什么版本?红宝石?宝石?
  2. 如何强制在 1.9.1 而不是 1.8 中寻找 gem?

我也尝试使用 pik 作为版本管理器,但到目前为止我只会使用 webhostone,所以如果我安装了一个可以运行的 ruby​​ 版本,我会很高兴。到目前为止,我不需要在任何版本之间切换。我也搬到了 xubuntu,在那里创建了同样简单的应用程序,同样的结果。

如果您能分享您的经验,那就太好了,非常感谢!

【问题讨论】:

  • 另外,我建议使用 SCP 或 SFTP 而不是 FTP 将您的应用程序传输到部署服务器上。两者都向经过加密验证的 SSH 服务器提供加密文件传输。
  • 更新:今天我删除了 rails 并使用了一个 railsinstaller,它为我提供了与 prod 上相同的版本。服务器:服务器: '$ rails -v' 'Rails 3.2.8' '$ ruby​​ -v' 'ruby 1.9.2p0(2010-08-18 修订版 29036)[i486-linux]' ' $ gem -v' '1.8.24' 本地 Windows: 'C:\Sites>rails -v' 'Rails 3.2.8' 'C:\Sites>ruby -v' 'ruby 1.9. 2p290 (2011-07-09) [i386-mingw32]' 'C:\Sites>gem -v' '1.8.24' 问题仍然相似,生产轨道正在寻找...gems/1.8/...而不是 ...gems/1.9.1/... 用于宝石。
  • 请查看您的 GemFile 了解更多详情。这些错误看起来像是 gem 位于 1.8 中,而对于 Ruby1.9.3,它应该位于 1.9.1 目录中
  • 这是我从 gem 环境中得到的:Server: GEM PATHS: - /usr/lib/ruby/gems/1.9.1 - /home/.gem/ruby /1.9.1 本地 Windows: - GEM PATHS:- C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1 - C:/Users/scs/.gem/ruby/ 1.9.1 看起来两者都在使用 1.9.1。
  • 检查应用程序目录中的 GemFile.File。

标签: ruby-on-rails ruby gem rake production


【解决方案1】:

您列出的版本号与 Ruby 版本相匹配。可以通过设置 GEM_HOME 环境变量告诉 Rubygems 在哪里寻找本地 gem 存储库。但这可能不是您想要做的,因为 Bundler 应该提供所有的 gem。

通过调用bundle install --deployment,您的应用程序需要的所有gem 都应该捆绑在vendor/bundle 目录中。所以我不明白你为什么在部署站点上再次调用bundle install。

您可以检查部署服务器上的应用程序文件夹是否包含捆绑到vendor/deploy 中的rake gem。

【讨论】:

  • 您好 aef,感谢您的回复!我在部署站点上运行 bundle install 并没有什么特别的原因,期望没有它就无法工作,而且我没有比尝试 bundle install 更好的主意...检查供应商目录的好提示。我在 railstest\vendor\bundle\ruby\1.9.1\gems\ 中找到了 rake-0.9.2.2,所以到目前为止看起来还不错。
【解决方案2】:

我与我的虚拟主机支持人员打了电话,看起来问题与 apache 配置有关。它仍然没有解决,但上面描述的问题已经消失了。现在有一个新问题,但这是一个不同的故事,我将首先在这个非常棒的论坛中搜索。 非常感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2012-04-19
    • 2015-03-04
    • 2014-07-11
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多