我想要Bundler加載本地gem。 那有選擇嗎? 或者我是否必須將gem文件夾移動到.bundle目錄中? linux
除了指定路徑(如Jimmy所提到的),您還能夠經過使用如下配置選項強制Bundler 僅爲您的環境使用本地gem: git
$ bundle config local.GEM_NAME /path/to/local/git/repository
若是您正在並行開發兩個寶石或一個gem和一個rails應用程序,這將很是有用。 github
但請注意,這僅在您已經使用git做爲依賴項時纔有效,例如: ruby
# In Gemfile gem 'rack', :github => 'rack/rack', :branch => 'master' # In your terminal $ bundle config local.rack ~/Work/git/rack
正如文檔中所見。 服務器
若是您正在使用git,也能夠使用git引用本地gem。 ide
gem 'foo', :git => '/Path/to/local/git/repo', :branch => 'my-feature-branch'
而後,若是它改變了我跑 spa
bundle exec gem uninstall foo bundle update foo
但我不肯定每一個人都須要運行這兩個步驟。 code
要在Rails項目中使用本地gem存儲庫,請按照如下步驟操做: 開發
檢查您的gem文件夾是不是git存儲庫(該命令在gem文件夾中執行) 文檔
git rev-parse --is-inside-work-tree
獲取存儲庫路徑(該命令在gem文件夾中執行)
git rev-parse --show-toplevel
爲rails應用程序設置本地覆蓋
bundle config local.GEM_NAME /path/to/local/git/repository
其中GEM_NAME
是您的gem的名稱,而/path/to/local/git/repository
是第2
點中命令的輸出
在您的應用程序Gemfile
添加如下行:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
運行bundle install
應該是這樣的:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
其中GEM_NAME
是您的gem的名稱,而/path/to/local/git/repository
從第2
點開始的
最後,運行bundle list
,而不是gem list
,你應該看到這樣的東西:
GEM_NAME (0.0.1 5a68b88)
其中GEM_NAME
是您寶石的名稱
我觀察到的幾個重要案例:
Rails 4.0.2 ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] Ubuntu 13.10 RubyMine 6.0.3
RubyMine
沒有將本地gem做爲外部庫顯示。 有關該錯誤的更多信息能夠在這裏和這裏找到 stop/start
rails服務器 若是我要更改gem的version
, stopping/starting
Rails服務器會給我一個錯誤。 爲了解決這個問題,我在rails應用程序Gemfile
指定了gem版本,以下所示:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
若是你也想要分支:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
我相信你能夠這樣作:
gem "foo", path: "/path/to/foo"