有時我想運行軟件包更新,但僅查看哪些寶石需要更新。我不一定要處理與更新所有這些問題相關的問題,但我想快速檢查以瞭解最新技術狀態。如何預覽「捆綁更新」將進行的更新?
有沒有辦法簡單地讓Bundler列出需要一起更新(理想情況下)與我正在運行的版本和什麼是最新最好的版本的寶石?
有時我想運行軟件包更新,但僅查看哪些寶石需要更新。我不一定要處理與更新所有這些問題相關的問題,但我想快速檢查以瞭解最新技術狀態。如何預覽「捆綁更新」將進行的更新?
有沒有辦法簡單地讓Bundler列出需要一起更新(理想情況下)與我正在運行的版本和什麼是最新最好的版本的寶石?
我嘗試這樣做:
> gem install bundle_outdated
> bundle-outdated
Finding outdated gems..
Newer versions found for:
rails (3.1.0 > 3.0.0)
haml (3.1.2 > 3.0.0)
rspec-rails (2.6.1 > 2.0.1)
Lock bundle to these versions by putting the following in your Gemfile:
gem 'rails', '3.1.0'
gem 'haml', '3.1.2'
gem 'rspec-rails', '2.6.1'
You may try to update non-specific dependencies via:
$ bundle update haml rspec-rails
Handwaving specifications:
haml: >= 3.0.0
rspec-rails: >= 2.0.1
另一種選擇:
> gem install gem-outdated
> gem outdated
沒有一種方法可以直接與bundler做到這一點,但只要您使用的是VCS,那麼您始終可以恢復Gemfile.lock以恢復更新所做的更改,或者區分文件以查看哪些更改已經制成。看到這個similar question
謝謝你 - 使用捆綁過時的寶石解決它 –
現在有一種方式直接與打捆做到這一點。你不需要安裝任何額外的寶石。
bundle outdated
將返回這樣
Outdated gems included in the bundle:
* acts-as-taggable-on (2.4.1 > 2.3.3)
* addressable (2.3.4 > 2.3.3)
* arel (4.0.0 > 3.0.2)
* better_errors (0.8.0 > 0.7.2)
* builder (3.2.0 > 3.0.4)
* capybara (2.1.0 > 2.0.3)
* chunky_png (1.2.8 > 1.2.7)
* codemirror-rails (3.12 > 3.02)
* coffee-rails (4.0.0 > 3.2.2)
.....
的東西,因爲谷歌的搜索打這個頁面和提供的答案有一個需要注意一些要點,我將添加另一個答案。
如果你想看到哪些更新發布你的寶石,以「版本依賴性要求在你的Gemfile」考慮,使用:
bundle outdated --strict
如果你不想拿版本依賴考慮到,只需使用其他答案中指定的bundle outdated
即可。
其次,如果你想更新特定的寶石,使用:
bundle update --source gemname
bundle update gemname
更新寶石和所有依賴它可以讓你在一個爛攤子(甚至鐵軌被使用bundle update haml
更新)。
非常有幫助 - 捆綁過時看起來像我之後,ty –
做這個答案建議之前要非常小心。首先;捆綁過時不考慮版本依賴性要求。這意味着即使您的Gemfile中有您的寶石的特定版本,它也會顯示爲新的。其次; ** bundle update gemname **命令更新gem的所有依賴關係。這意味着如果「gemname」依賴於rails,則可能會出現新的rails版本。 (haml在這個例子中給出了)。請參閱下面的答案。 –