簡體   English   中英

capistrano 正在從 rvm 中提取錯誤的 ruby​​ 版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM