2

这可能很简单,但我很难过......

所以我有一个需要修复的gem,它已经安装在共享开发机器上。 我怎么知道它来自哪里,所以我可以分叉它?

只是为了消除一些明显的东西,它肯定是安装的:

$ be gem list spp_manifests

*** LOCAL GEMS ***

spp_manifests (0.0.4)

检查 gemspec 没有发现任何用处(除了作者的名字,但他不在了):

$ gem specification spp_manifests

name: spp_manifests
homepage: ""
rubyforge_project: 

但它不在 Github 中公开,不在我们公司的 Github 存储库中,不在 Rubygems 中,搜索该名称会产生很多与新加坡人民党选举宣言的链接,但没有任何用处。

4

2 回答 2

2

如此简短的回答是,一旦形成宝石,代码就完全从它曾经存在的存储库中分离出来,并且无法找到原始存储库的地址。

但是,可以:

a) 解压 gem 的代码,这样你就可以为它创建一个新的 repo(归功于 Flambino)

gem unpack spp_manifests

b) 找出 gem 是从哪里下载的(感谢 Stefan)

more Gemfile.lock

GEM
  remote: http://gems.megacorp.com/
  remote: http://rubygems.org/
于 2012-06-12T02:25:39.863 回答
0

我现在无法测试这个,因为我使用了代理,但是您可以在同一台机器上的控制台窗口中执行 gem update spp_manifest,您发出“netstat -b 1”(或 nix 对应项)以列出所有连接. 如果找到更新的版本,您的机器应该连接到源并进行安装。在连接列表中,您应该看到源。

您还可以使用“gem environment”检查远程源或使用“gem query -r -n spp_manifests”进行远程查找

于 2012-06-11T11:17:58.590 回答