代码之家  ›  专栏  ›  技术社区  ›  adamJLev

如何冻结不想冻结的宝石?(机架)

  •  2
  • adamJLev  · 技术社区  · 15 年前

    当我尝试将rails应用程序部署到共享主机(dreamhost)时,出现以下错误:

    can't activate rack (~> 1.0.1, runtime) for [], already activated rack-1.0.0 for []
    

    所以我想在我的开发环境中冻结rack gem,并将其添加到项目中,但是即使我的配置中有这个/环境.rb:

    config.gem 'rack'
    

    做耙子宝石:打开包装:依赖项不会冻结gem。

    ajmbp:trunk ajl$ rake gems:unpack:dependencies
    (in /Users/ajl/dev/site/trunk)
    ajmbp:trunk ajl$ ll vendor/gems/
    .svn/           haml-2.2.14/    net-ssh-2.0.16/ 
    

    我试着把另一颗宝石加到配置宝石只是为了测试(红布),这确实是预期的工作,但没有与机架运气。

    有什么想法吗? 谢谢!

    3 回复  |  直到 15 年前
        1
  •  0
  •   glebm    15 年前

    你有没有检查过你的环境变量(我认为是RUBY\u GEMS,或者类似的东西)? 还有,你的环境.rb以及(如果您使用fastcgi)您的.fcgi。

    确保路径从最高优先级到最低优先级排序。

        2
  •  0
  •   Community c0D3l0g1c    4 年前

    看到了吗 this article .

    任何加载到Rakefile中的gem(例如metric˜fu、vlad等)都被认为是Rails提供的“框架gem”,并且这些gem不会被解包。考虑到Rakefile加载时vendor/gems目录还不在加载路径中,这可能是个好主意。

    换句话说,如果您有一个提供Rake任务的库,或者是.Rake文件有效所必需的库,不要期望配置宝石还有朋友帮你处理。

    为梦想主人看他们的 own documentation 安装自己的宝石。或者看看 this excellent article 如何装载自己的包裹和宝石(请注意,这不适合胆小的人)。

    但我所有的阅读都在告诉我,由于乘客使用Dreamhost安装的机架版本的方式,您可能仍然会遇到麻烦。

    祝你好运。