2011-03-09 62 views
22
部署Rails應用程序

歷史:RVM錯誤通過Capistrano的

  • 讀入部署Rails3中應用到 MEDIATEMPLE DV服務器。
  • 在服務器上安裝了RVM,ruby和重要的寶石。
  • 網站工作正常,如果我把它FTP。
  • 一切都好。

然後我決定根據「使用Rails進行敏捷Web開發」,爲GIT/cap部署做適當的部署和設置。

  • 嘗試使用cap進行部署,但發現存在生產站點不可用的gem錯誤。
  • 閱讀並意識到我應該去一個系統範圍的RVM安裝。
  • 刪除了所有的寶石和RVM。
  • 已安裝RVM系統。
  • cap部署錯誤「bash:/home/foo/.rvm/bin/rvm-shell:沒有這樣的文件或目錄」,這很有意義 - 主目錄中沒有.rvm /。
  • 從最初安裝RVM到用作用戶時,我想到了一些東西,我刪除了用戶,刪除了主目錄,並重新創建了具有權限的用戶。
  • 帽部署同樣的錯誤 「的bash:/home/foo/.rvm/bin/rvm-shell:沒有這樣的文件或目錄」

現在的情況是:

foo的。 bashrc中包含的最後一行:

[[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm' 

當我發出:

type rvm | head -1 

的響應是「RVM是一個功能「。

的/ etc/rvmrc包含

if [[ ! -s "$HOME/.rvm/scripts/rvm" ]]; then 
    umask g+w 
    export rvm_selfcontained=0 
    export rvm_prefix="/usr/local/" 
fi 

跑步離開這裏的想法,並希望一些建議。

+3

已解決。我剛剛擺脫如果RVM。現在效果很好。我將爲我的開發機器保存RVM ... – 2011-03-10 09:13:51

回答

73

下一次嘗試添加這個在您的Capistrano的:

set :rvm_type, :system 
+12

非常有幫助。或者,如果要使用單用戶rvm安裝部署到服務器,則可以將rvm_type設置爲:user。 – 2011-07-19 18:38:25

+0

@mpapis您如何知道您是否有單用戶rvm安裝或系統安裝?我不記得我做了哪一個。 – JohnMerlino 2013-05-10 20:56:58

+0

你可以在登錄到服務器後檢查並運行'echo $ rvm_path' – mpapis 2013-05-10 21:01:05

5

好像RVM殼是不是在你的RVM安裝目錄。運行此命令

rvm get head 

然後你就會得到它的權利在你的RVM bin目錄。

0

我只是想添加@ imonyse的評論。

rvm的分支可能對某些部署來說太不穩定了。我知道我們棄用的SLES盒子有窒息的傾向。獲得最新的穩定版本可能是明智的。

rvm get stable 

也不要在運行生產代碼的真正舊服務器上這樣做,因爲它可能會產生不希望的結果。