我想通過分叉的寶石(建設者)破解。因此我從github克隆了它並開始屠殺代碼。官方的gem安裝在我的系統上(位於/ usr/lib/ruby .../gems/buildr ...下)。有一個可執行文件,我需要在我的開發過程中使用 - 構建器。如何在臨時環境中開發寶石?
現在我想要buildr可執行文件和庫指向我的分叉回購,而不是默認的gem安裝。這隻適用於這款寶石。因此,我對分叉回購做出的更改可直接用於測試等等。
我想我需要加載我的庫之前的系統寶石加載。有人可以推薦最好的方法嗎?
我想通過分叉的寶石(建設者)破解。因此我從github克隆了它並開始屠殺代碼。官方的gem安裝在我的系統上(位於/ usr/lib/ruby .../gems/buildr ...下)。有一個可執行文件,我需要在我的開發過程中使用 - 構建器。如何在臨時環境中開發寶石?
現在我想要buildr可執行文件和庫指向我的分叉回購,而不是默認的gem安裝。這隻適用於這款寶石。因此,我對分叉回購做出的更改可直接用於測試等等。
我想我需要加載我的庫之前的系統寶石加載。有人可以推薦最好的方法嗎?
當Spreadsheet gem打破了向後兼容性時,我做了類似的工作。我把以前的版本代碼放在它自己的模塊中,只是重命名了gem my-spreadsheet並安裝了它(我真的想要新的gem的一些功能,但我也不想重寫我之前的代碼) 。
如果它只是一個你想重寫的二進制文件,你總是可以做一些PATH
魔法,首先設置你的二進制文件的目錄,從而確保你總是覆蓋。但個人而言,我寧願用一個新名稱制作自己的副本並安裝它。
您可以在gemspec中爲您的叉子碰撞版本。然後,當你安裝你的寶石版本時,它會默認使用你的(新版)版本。
變化buildr.gemspec
#...
spec.version = '1.3.4.dev'
#...
然後
$ gem build buildr.gemspec
$ sudo gem install buildr-1.3.4.dev.gem
,它應該工作。
這仍然意味着我需要在每次進行更改時安裝gem。是不是可以指定gem從源碼加載分段gem,而不是加載已安裝的gem? – charroch 2010-02-08 11:09:30
你可以安裝它,然後用符號鏈接替換'.../ruby/gems/1.8/gems/buildr-1.3.4.dev'目錄到你正在修改的源文件。這很哈克,但會起作用。那麼你應該小心權限。 – BaroqueBobcat 2010-02-08 21:48:36