【发布时间】:2016-07-01 04:29:27
【问题描述】:
RubyGems site 让运行私有 gem 服务器听起来很容易!
我的测试设置是这样的:一个 AWS EC2 实例是我的工作站,我已经设置了另一个作为 gem 服务器。
在 gem 服务器实例上,我安装了 pry gem。如果我在该实例上运行 gem server 并在我的 Web 浏览器中访问公共 DNS,我可以看到 pry 以及 gem 列表中的所有依赖项。
在我的工作站上,我用一个简单的 Gemfile 创建了一个假应用目录:
source "http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8808"
gem "pry"
看起来很简单!但是当我在工作站上运行bundle install 时,出现以下错误:
[ec2-user@ip-172-31-20-246 my_app]$ bundle
Fetching source index from http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8808/
Resolving dependencies...
Gem::RemoteFetcher::FetchError: bad response Not Found 404 (http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8808/gems/coderay-1.1.1.gem)
Gem::RemoteFetcher::FetchError: bad response Not Found 404 (http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8808/gems/method_source-0.8.2.gem)
Gem::RemoteFetcher::FetchError: bad response Not Found 404 (http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8808/gems/slop-3.6.0.gem)
Using bundler 1.12.5
An error occurred while installing coderay (1.1.1), and Bundler cannot continue.
Make sure that `gem install coderay -v '1.1.1'` succeeds before bundling.
所以它似乎识别出pry 可用,但找不到以coderay 开头的依赖项(404 错误)。
我在运行gem server 时修改了--dir 标志,使其看起来像这样:
gem server --dir=/home/ec2-user/.gem/ruby/2.0 --dir=/usr/share/ruby/gems/2.0 --dir=/home/ec2-user/.gem/ruby/2.0/cache/
...我什至已经进入这些目录并运行gem generate_index,正如我在另一个问题上看到的那样,但我仍然无法在我的工作站上安装pry,使用这个私人服务器作为source .
我有什么遗漏吗??
【问题讨论】:
标签: ruby amazon-ec2 rubygems bundler