ruby - gem 服务器不会提供 gem

标签 ruby rubygems

我正在尝试设置我自己的私有(private) gem 服务器,它应该为我的 gem 提供服务并显示 rdoc。正如我所读,默认的 gem 服务器应该能够做到这一点。由于我不希望除了我自己的所有 gem 都显示在 gem 服务器上,所以我正在执行以下操作:

gem install -i /some/dir --ignore-dependencies my-special.gem
gem server -d /some/dir # -d should let me set my gem dir

但首先,gem 服务器仍然会显示所有已安装的系统 gem,但不会显示 some/dir 中的内容。其次,在尝试执行以下操作时:

gem install --source http://localhost:8808 my-special.gem

我只收到以下消息:

ERROR:  Could not find a valid gem 'my-special' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
        bad response Gateway Time-out 504 (http://localhost:8808/latest_specs.4.8.gz)

我什至对于显示在创建的 gem 服务器页面上的 gem 也是如此

http://localhost:8808

我做错了什么?一些博客提到使用 gem generate_index 更新索引,但这没有意义,因为该工具期望 *.gem 文件位于 /gems 子目录,但默认情况下它们位于 /cache 中。

最佳答案

我很轻松地解决了这个问题。

我什至不使用专用的 gem 服务器。

我做了以下事情:

  1. 在您的 apache 网络服务器上创建一个可服务的目录并创建一个 gems其中的子目录。例如: mkdir -p /var/www/rubygems/gems

  2. 将你想要服务的所有 gem 放入创建的gems子目录:cp /my/gems/dir/*.gem /var/www/rubygems/gems

  3. 生成 gem 索引: gem generate_index -d /var/www/rubygems

  4. 不要忘记调整访问权限,以便您的网络服务器可以读取内容

信息:索引必须在包含 gems 的目录中生成子目录,而不是 gems目录本身!在本例中为 /var/www/rubygems .

现在您可以添加 http://<my-gem-server>.domain/rubygems到您的 gem 来源

关于ruby - gem 服务器不会提供 gem ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796703/

相关文章:

ruby - 为什么我的 ruby​​ 方法总是返回 true?

ruby - 是否可以覆盖 gemfile 进行本地开发?

ruby - rake 中止!无法加载此类文件 -- yard

git - bundler : `bundle package` 带有 :git 源

css - 为什么我的 jekyll github 站点没有样式?

ruby-on-rails - 将日期时间转换为月、日和年?

ruby - 如何使用 Ruby 将列标题写入 csv 文件?

ruby - Ruby 中的嵌套数组和字符串

ruby - 我无法安装 twilio gem,因为安装 libxml 时出错

jquery - Rails4 自动完成功能不起作用