我是Rails的新手,並希望使用Capistrano
將我的應用部署到Ubuntu 14
。有人可以向我解釋什麼是binstubs
以及他們是否需要部署我的Rails應用程序?什麼是Capistrano binstubs?
0
A
回答
2
binstub是一個可執行腳本,它封裝了一個Ruby命令以確保使用該命令的特定版本。
binstubs有時是必需的原因是因爲給定的命名Ruby命令可以引用許多不同的東西,所以你不能100%確定該名稱是指什麼。在部署中,可預測性非常重要:您希望100%確定正在運行的代碼,特別是在生產環境中。
例如,考慮名爲rails
的命令。您可能安裝了多個Rails版本。事實上,每次您升級到最新的修補程序版本以進行安全修復時,這都是您要安裝的另一個新版本。最重要的是,您也可以安裝多個版本的Ruby。
那麼當你運行命令rails
時,哪個版本的Ruby被使用?哪個版本的Rails?
binstub使這個決定是明確的。這個想法是,你創建一個特殊的腳本,並將其放置在項目的bin
目錄中,比如bin/rails
。該腳本使用Bundler來保證使用正確版本的Rails。當您運行bin/rails
時,您會得到該保證。 (當你生成一個新的Rails項目時,Rails實際上爲你創建了這個和其他的binstubs。)
無論如何,從技術上講,只要你使用bundle exec rails
就不需要這些binstubs。 bundle exec
包裝本質上與binstub做同樣的事情。
如果您使用與capistrano/bundler
寶石組合capistrano/rails
寶石(確保兩者在你的Capfile),然後Capistrano的總是會使用bundle exec
,你會不會擔心創建自己的binstubs。
相關問題
- 1. 什麼是:scm_verbose on capistrano?
- 2. Capistrano中的「角色」究竟是什麼?
- 3. Capistrano分期的目的是什麼
- 4. capistrano輸出 - 什麼是[-L ...]命令?
- 5. Capistrano中的部署用戶是什麼?
- 6. 如何恢復我的Rails 5 binstubs?
- 7. bundle binstubs vs rake
- 8. rbenv,bundler,binstubs ...混淆
- 9. 爲什麼我需要在Rails中使用binstubs?
- 10. `bundle install --binstubs`需要什麼樣的引號?
- 11. 軟件包安裝--binstubs爲我們提供什麼服務?
- 12. 什麼是Capistrano酒店的「應用程序」變量的目的是什麼?
- 13. 爲什麼我的capistrano失敗了?
- 14. Capistrano回滾 - GIT會發生什麼?
- 15. 爲什麼capistrano multiconfig不起作用?
- 16. Capistrano部署需要什麼寶石?
- 17. capistrano命名空間的用途是什麼?
- 18. 將capistrano執行命令的正確位置是什麼?
- 19. 什麼是鋼軌的URL應用程序通過Capistrano的
- 20. capistrano,:db角色,它是幹什麼用的?
- 21. Capistrano沒有Deploy :: Strategy :: Update的原因是什麼?
- 22. Rails的bundle - binstubs在Windows上
- 23. 軌道4 binstubs錯誤
- 24. 爲什麼安裝bundle(使用capistrano時)爲gems創建一個capistrano文件夾?
- 25. Webpacker binstubs沒有正確安裝
- 26. 如何防止bundler生成binstubs?
- 27. 捆紮機binstubs目錄是在當前目錄
- 28. 我應該使用`bundle exec`還是Rails的binstubs?
- 29. 如何恢復我的Rails 4 binstubs?
- 30. Jenkins與Grunt一起構建和部署Capistrano的最佳實踐是什麼?