使用 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 git 与其他拥有 Android 存储库的人共享代码?