使用 bundler,如何解压通过 git 存储库安装的 gem?

Posted

技术标签:

【中文标题】使用 bundler,如何解压通过 git 存储库安装的 gem?【英文标题】:Using bundler, how do you unpack a gem installed via a git repository? 【发布时间】:2011-09-22 17:30:28 【问题描述】:

我如何解压 bundler 中通过 :git => url 指定的 gem?

我的 Gemfile 有

gem 'my_gem', :git => 'git@github.com:xxxxx/xxxxx.git'

$ bundle 正确报告 gem 可用,并且我的代码有效。 $ bundle which my_gem 甚至告诉我我的宝石存放在哪里。然而:

$ gem unpack my_gem
ERROR:  Gem 'my_gem' not installed nor fetchable.
$ bundle exec gem unpack my_gem
ERROR:  Gem 'my_gem' not installed nor fetchable.

这样安装的gem可以解压吗?

【问题讨论】:

【参考方案1】:

为什么需要解压呢?你已经有了源代码。指定 git 存储库的要点是您没有捆绑的 gem,而是生成它的源。

简单使用

git clone git://github.com/xxxx/yyy.git

并且源会在当前目录的yyy文件夹中。

【讨论】:

啊,是的,当然就是这么简单。我在将应用程序部署到 Heroku 时搞砸了,它无法访问私有存储库中的 gem。这是完全错误的问题,所以还是谢谢你:)【参考方案2】:

此外,您可以使用以下命令打开 Gemfile 中的任何 gem:

    bundle open my_gem

【讨论】:

【参考方案3】:

不完全回答问题,但假设您手头有 gem 文件,它是一堆 gzip 文件(与通常情况相反)

$ tar xzf mygem.gem
$ ls
mygem.gem checksums.yaml.gz  data.tar.gz  metadata.gz

metaddata.gz 是 gemspec,data.tar.gz 是所有文件(lib/my/stuff.rb 等)。

【讨论】:

以上是关于使用 bundler,如何解压通过 git 存储库安装的 gem?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 编译安装 Bundler

如何通过提交消息搜索 Git 存储库?

如何通过 git 与其他拥有 Android 存储库的人共享代码?

如何在 git 存储库上正确使用组文件权限?

如何在 Jenkins 中通过 *** 拉取/克隆 git 存储库?

如何使用 Python 和 PyGithub/GitPython 克隆我的 git 存储库?