[英]capistrano is pulling the wrong ruby version from rvm
我有一個 rails 5 應用程序。 我試圖尋找內存泄漏,它打開了一罐蠕蟲。 其中一種蠕蟲是 rvm 和 deploy。 我沒有
rvm_ruby_string
設置在項目的任何地方。 如果我轉到項目目錄,然后執行任一操作
bundle exec ruby --version
或
ruby --version
兩者都導致
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
但是,如果我這樣做
cap staging deploy
你可以看到它以某種方式選擇了錯誤的版本:
DEBUG [778e15cb] Running /usr/bin/env which passenger as deploy@xxxx
DEBUG [778e15cb] Command: /usr/bin/env which passenger
DEBUG [778e15cb] /usr/bin/passenger
DEBUG [778e15cb] Finished in 0.710 seconds with exit status 0 (successful).
DEBUG [0da5c891] Running [ -d ~/.rvm ] as xxx
DEBUG [0da5c891] Command: [ -d ~/.rvm ]
DEBUG [0da5c891] Finished in 0.101 seconds with exit status 0 (successful).
DEBUG [f2734c3e] Running ~/.rvm/bin/rvm version as
xxx
DEBUG [f2734c3e] Command: ~/.rvm/bin/rvm version
DEBUG [f2734c3e] rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski,
Wayne E.
Seguin [https://rvm.io/]
DEBUG [f2734c3e] Finished in 0.268 seconds with exit status 0 (successful).
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin
[https://rvm.io/]
DEBUG [a2e3d82a] Running ~/.rvm/bin/rvm current as xx
DEBUG [a2e3d82a] Command: ~/.rvm/bin/rvm current
DEBUG [a2e3d82a] ruby-2.5.0
現在,如果我只是嘗試模仿 capistrano 所說的它正在做的事情,通過將以下內容復制並粘貼到命令行:
~/.rvm/bin/rvm current
我得到
ruby-2.3.1
所以,我很難過。 Capistrano 從哪里提取 rvm var?
當您運行ruby --version
時,您可能正在以不同的用戶身份運行cap staging deploy
。
根據 capistrano 輸出,您正在使用deploy
用戶進行部署。 如果是這種情況,您需要以deploy
用戶身份安裝 ruby 2.3.1,並將 2.3.1 設置為“默認和當前”。
您可以通過以deploy
用戶和第一次運行它的其他用戶身份運行ruby --version
來測試這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.