【问题标题】:Find out source of installed gem找出已安装 gem 的来源
【发布时间】:2012-06-11 04:16:24
【问题描述】:

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

所以我有一个需要修复的 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 中,搜索该名称会产生很多指向新加坡人民党选举宣言的链接,但没有任何用处。

【问题讨论】:

  • 您可以运行gem unpack spp_manifests 将gem 的文件转储到当前目录中。然后你可以四处寻找文件中的线索或直接开始修复错误
  • 你应该在Gemfile.lock中找到远程URL

标签: ruby-on-rails ruby git gem


【解决方案1】:

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

但是,可以:

a) 解压 gem 的代码,这样您就可以为它创建一个新的 repo(感谢 Flambino)

gem unpack spp_manifests

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

more Gemfile.lock

GEM
  remote: http://gems.megacorp.com/
  remote: http://rubygems.org/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 你的第一个方法可以告诉我 gem 是从哪个服务器下载的,尽管检查 Gemfile.lock 会更容易。 2nd 和 3rd 没有任何用处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多