【问题标题】:How to deploy an RubyGem-based Server如何部署基于 RubyGem 的服务器
【发布时间】:2008-11-16 04:35:40
【问题描述】:

我们在 ruby​​ 中构建了一个自定义套接字服务器并将其打包为 gem。由于这是一个内部项目,我们不能简单地将其发布到 RubyForge 或 GitHub。我尝试设置我们自己的 gem 服务器,但 gem 不会通过 https 进行身份验证。我们的其他部署都是针对使用 capistrano 和 svn 进行部署的标准 Rails 应用程序。

我们当前的设置是使用类似于 rails 的部署和 capistrano。它执行以下操作:

  • 从 svn 查看代码
  • 构建 gem
  • 安装 gem
  • 重启服务器

这看起来很尴尬,并且让 gem 打包看起来像是额外的工作——但在部署问题之外,它非常适合作为 gem。

有更清洁的方法吗?

【问题讨论】:

    标签: ruby deployment rubygems


    【解决方案1】:

    开始

    gem server #That will serve all your local installed gems.
    
    gem install YourLocalPkg1.X.X.gem
    

    #在你的主机上

    使用

    gem sources --add localhost:8808
    gem install YourGem
    

    在客户端机器上 开发一些东西

    rake gem
    gem install YourLocalPkg2.X.X.gem #on YourHost
    

    使用

    gem update YourGem #on client machine
    

    也许您需要使用 https,但我在您的帖子中不明白为什么。 在某些机器上

    * Check out the code from svn #the railspart not in the gem
    * gem update  YourGem #  or install if not exist....
    * Restart the server
    

    【讨论】:

    • @Dolphin 你的意思是'gem sources --add localhost:8808' 并且那个gem服务器应该在8808上运行?更不用说“盒子里的宝石”了。
    • 我的意思是如果你想分享你的本地 gem,你可以运行命令 gem server 而不是 gem_server。当然,在大多数情况下,装在盒子里的宝石会是更好的解决方案。
    【解决方案2】:

    您可以从本地文件系统安装 gem。

    gem install /path/to/some.gem
    

    用它编写 scp 脚本或使用 NFS 挂载等应该不会太难。

    【讨论】:

      【解决方案3】:

      gem install --local path_to_gem/filename.gem 会有所帮助。或者,您可以在您的网络服务器上获得一个受信任的证书。

      您也许可以使用 gem install -P NoSecurity 或 -P LowSecurity 从服务器安装,但我没有尝试过。

      http://www.rubygems.org/read/chapter/21

      【讨论】:

        猜你喜欢
        • 2013-11-23
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多