如何在我编辑好的宝石上使用软件包?

问题描述:

我试图冻结一个特定的宝石(与我的编辑),所以我可以将修改后的版本推送到Heroku。根据this discussion,我使用bundle package将我现有的宝石副本保存到vendor/cache,但经仔细检查,结果发现这捆绑了宝石的原始服务器版本,而不是我的版本。如何在我编辑好的宝石上使用软件包?

我已验证在bundle show gdata中指定的文件包含我的编辑,我认为这些编辑会将捆绑器指向该版本。 bundle-package doc指出它只在.gem文件上运行(所以不是安装的gem目录?)。

如何冻结我的特定版本的宝石?

修改后的创业板复制到像vendor/gems一个文件夹,然后指向你的Gemfile该版本:

gem "modified_gem", :path => "vendor/gems/modified_gem" 

而且不要忘了检查vendor/gems到版本控制。

对不起,这个答案很简短,让我知道你是否需要澄清。

+0

我曾试过,但它似乎没有工作。已经尝试了所有可能的路径选项,包括在各种目录级别使用/不使用斜线。我得到的错误'源不包含任何版本的'gdata(> = 0)'' 这是因为我复制了未压缩的模块,而不是打包的.gem文件? (还有什么需要重新打包的?) – Dan

+0

@Dan - 确保你有一个'gdata.gemspec'文件,它可以在vendor/gems/gdata中找到。 – bricker

+1

谢谢,砌砖。对于那些在家观看的人,你必须制作自己的宝石,而不是复制源目录。另外,在人类活动过程中,我使用'bundle install --local',我搞砸了。我并不知道这会将未来所有'bundle install'操作的缺省设置为本地安装。用'bundle install --system'重新设置。 – Dan