【问题标题】:Ruby Server responds with index, 404s everything elseRuby 服务器响应索引,404s 其他一切
【发布时间】:2024-01-13 14:21:01
【问题描述】:

我有一个厨师服务器,我还需要将其用作 Ruby gem 服务器。当我运行gem server 时,它会显示Server started at 0.0.0.0:8808。我可以在浏览器中转到主机名:8808 并查看 gem 服务器索引页面,其中列出了我希望看到的所有 gem,但所有其他目录 (link) 都会给出 404。我已经尝试过运行 gem generate_index 并使用 --legacy 选项。

该框已配置为使用 Chef Server 的嵌入式 gem 可执行文件。

# which gem
/opt/chef-server/embedded/bin/gem
# gem env
...
  - GEM PATHS:
     - /opt/chef-server/embedded/lib/ruby/gems/1.9.1
     - /root/.gem/ruby/1.9.1
...

列出 /opt/chef-server/embedded/lib/ruby/gems/1.9.1 中的内容显示了 gem 服务器规范(例如 gems、quick、规范)中列出的页面的目录。

我不太确定这里的问题是什么。

编辑:我尝试使用 geminabox,而不是 gem 服务器。我看到了与this github 错误相同的问题,但未解决。

【问题讨论】:

  • 信息不足。请复制+粘贴其中一些生成 404 的链接好吗?以及它们在文件系统中的路径。
  • 我的意思是“文件系统中相关文件的路径”。

标签: ruby rubygems gem chef-infra geminabox


【解决方案1】:

将 Gem 目录作为参数传递给服务器:

gem server --dir /opt/chef/embedded/lib/ruby/gems/1.9.1/gems

当前用户的gem env 可能不是您所期望的,这就是您遇到此错误的原因。

【讨论】: