我有几个应用程序,我想分享一些常见的代码。我想创建代码并在应用程序中共享/版本,但我不想将其发布到公共gem服务器。
有哪些选择?
答案 0 :(得分:10)
这看起来很有希望:
https://github.com/cwninja/geminabox/
虽然我自己没有使用它,但我无法保证。但是,我最近在官方的Rubygems Q& A网站上阅读了一个帖子,其中提到内置的rubygems托管不是推荐的解决方案,Geminabox是一个很好的选择。
请注意,它没有任何身份验证或安全性(显然除非通过默默无闻),因此根据这些宝石的敏感程度,您可能希望自己添加一些内容(甚至只是按IP地址列入白名单)。
答案 1 :(得分:10)
GemFury就是你所追求的。
答案 2 :(得分:8)
执行此操作的方法是将gem解压缩到vendor / gems目录中。然后,您可以正常使用Gemfile告诉Bundler在哪里找到它。
首先将gem解压缩到vendor / gem。我假设您已经下载了宝石并坐在您面前的开放目录中。
gem unpack your_gem.gem --target /path_to_rails_app/vendor/gems/.
现在使用如下所示的行更新您的Gemfile:
gem 'your_gem', :path => "#{File.expand_path(__FILE__)}/../vendor/gems/your_gem"
最后,使用Bundler安装它并更新你的Gemfile.lock
bundle install
您现在已在Rails应用程序中安装了本地gem副本。
您现在可以通过维护符号链接,Git子模块或子树以您喜欢的方式在您的应用之间共享gem。
答案 3 :(得分:5)
我的建议是使用bundler,私有git repo和git + ssh依赖。唯一的问题是你需要找到一种管理ssh密钥的方法,因为目前我不相信bundler支持缓存ssh密钥。您可以使用https://username:password@myrepo ....样式语法,但我还没有尝试过。
不要忘记,您始终可以选择使用bundle package
打包宝石进行部署。
我希望这有帮助!
答案 4 :(得分:1)
github还提供一些私人存储库,只需支付少量费用。