我正在尝试破解一个分叉的 gem(构建器)。因此,我从 github 克隆了它并开始屠杀代码。官方 gem 安装在我的系统上(在 /usr/lib/ruby.../gems/buildr... 下)。我需要在我的开发过程中使用一个可执行文件 - buildr。
现在我希望 buildr 可执行文件和库指向我的分叉存储库,而不是默认的 gem 安装。这仅适用于这颗宝石。因此,我对分叉存储库所做的更改可直接用于测试等。
我想我需要在系统 gem 加载之前加载我的库。有人可以推荐最好的方法吗?
我正在尝试破解一个分叉的 gem(构建器)。因此,我从 github 克隆了它并开始屠杀代码。官方 gem 安装在我的系统上(在 /usr/lib/ruby.../gems/buildr... 下)。我需要在我的开发过程中使用一个可执行文件 - buildr。
现在我希望 buildr 可执行文件和库指向我的分叉存储库,而不是默认的 gem 安装。这仅适用于这颗宝石。因此,我对分叉存储库所做的更改可直接用于测试等。
我想我需要在系统 gem 加载之前加载我的库。有人可以推荐最好的方法吗?
你可以在你的叉子的 gemspec 中修改版本。然后,当您安装 gem 的版本时,它将默认使用您的(较新的)版本。
更改buildr.gemspec
#...
spec.version = '1.3.4.dev'
#...
然后
$ gem build buildr.gemspec
$ sudo gem install buildr-1.3.4.dev.gem
它应该可以工作。
当电子表格 gem 破坏了向后兼容性时,我做了类似的工作。我将以前版本的代码放在它自己的模块中,只是重命名了 gem my-spreadsheet 并安装了它(我真的想要新 gem 的一些功能,但我也不想重写我以前的所有代码) .
如果它只是你想要覆盖的二进制文件,你总是可以做一些PATH
魔术,首先设置你的二进制文件的目录,从而确保你总是覆盖。但就个人而言,我更喜欢用新名称制作自己的副本并安装它。