∞RVM 常見問題集和注意事項
∞我在 RVM 中發現一個錯誤。我該如何提交問題或補丁程式來修復這個錯誤?
如要回報 RVM 的錯誤,請前往 https://github.com/rvm/rvm/issues/ 並在那裡開啟一個問題。請閱讀所有現有回報!有時問題已經在調查中或已經解決。針對同一個問題開啟新的回報會浪費時間和資源,而且可能會導致您的回報被簡略關閉。請使用 https://gist.github.com 來儲存和歸檔與錯誤回報相關的補充證據。在您的回報中包含回傳的 https(非 git)網址。請提供
rvm info
的輸出- 如果您正在使用 gemsets,請提供
gem list -dl
的輸出 - 所有執行的指令、任何錯誤/輸出,以及 RVM 告訴您查看的日誌檔內容。
- 下列追蹤/除錯指令的完整輸出。
set -x ; rvm --trace your_commands_here ; set +x
提供給我們最多的資訊,讓我們可以處理。這些資訊必須附在您的問題/錯誤回報中,我們才能協助您。
∞什麼是 shell 登入('bash -l')
有些網站描述了 10 年前的情況,例如 這裡 或 這裡,請閱讀以了解它在當前世界中的運作方式
- 當您以圖形方式登入系統時,它會讀取
~/.profile
,因此您可以在其中放置設定,例如LANG
,這對於圖形應用程式很重要。 - 當您開啟終端機(Gnome-terminal 和 Screen 除外)時,您會開啟一個
login
shell,它會尋找~/.bash_profile
當您在非登入 shell 中執行指令,例如
ssh server command
或scp file server:~
或sudo
(沒有 -i)或su
(沒有 -l)時,它會執行~/.bashrc
~/.bashrc
是針對非登入呼叫而設計的,您不應該在那裡列印任何輸出,否則會導致scp
等工具失敗。- 如果使用者的 shell 設定為
/bin/sh
,您需要編輯/etc/passwd
並將其設定為/bin/bash
建議將環境變數放在 ~/.bashrc
中,這是您在腳本中依賴的東西(對於 ssh server script
)
然後,如果您的系統預設不透過 /etc/profile
尋找 ~/.bashrc
,您應該在 ~/.bash_profile
檔案中尋找它,這樣任何登入 shell 都可以存取與非登入階段相同的環境。
RVM 預設目前會將自己新增到 ~/.bash_profile
檔案中,建議的方式是在 gnome-terminal(和 screen)中啟用登入 shell。
自動執行設定檔修復,請執行
rvm get [head|stable] --auto-dotfiles
∞我在 RVM 網站上發現一些不正確的資訊。我該如何提交修補程式或問題?
請隨時分叉 rvm-site 並修復您發現的任何錯誤。然後提交一個 Pull Request。無論您是否覺得可以執行上述操作,請在 Issue Tracker 中提交一個 Issue,其中包含當前錯誤和您看到的變更。如果您建立了一個 pull request,請在您的 Issue 中參照 URL。
∞我需要對 gem 使用 sudo 嗎?
否。請勿對 RVM 管理的 rubygems 使用 sudo。如果您需要更多說明,請參閱 rubygems 頁面。
∞以 root 身分安裝 gem 嗎?
否。如果您需要更多說明,請參閱 rubygems 頁面。
∞找不到 RVM 或未為新 shell 設定 RVM 選擇的預設 ruby...
RVM 必須包含在設定檔的底部。否則,您的設定會覆蓋它(例如:PATH)。請參閱 安裝說明,將其包含在您的 PATH 中。
∞RVM 能在 Windows 上執行嗎?未來可以嗎?
否。如果您想在 Windows 上管理多個版本的 ruby,請使用 pik,這是 Gordon Thiesfeld 開發的出色工具。您可以在 GitHub 上找到它。計畫在 RVM 2.0 中加入 Windows 支援 => https://www.bountysource.com/fundraisers/489-rvm-2-0。
∞我可以使用包含空白的的路徑嗎?
目前不支援路徑中的空白。歡迎提供修補程式 :)
∞如何設定一個 ruby 為預設?
設定預設 ruby 的方法 在此說明。
∞預設是什麼?
預設的直譯器是「ruby」。每個 ruby 直譯器的預設版本設定在 ~/.rvm/config/db 中,使用者可以在 ~/.rvm/config/user 中覆寫這些設定。
∞Ruby Gems 儲存在哪裡?
- 所有已安裝 ruby 直譯器和版本的 Ruby Gems 都會完全分開儲存。
- Gems 位於 ~/.rvm/gems/$ruby_string。
- 可以使用 Gem Sets 進一步分隔 Gems。
- 使用 gemsets 的 gem 目錄格式為:~/.rvm/gems/$ruby_string@gemset_name
∞所有內容安裝到哪裡?
RVM 會將所有內容安裝到 ~/.rvm。要從您的系統中移除 RVM,請執行 rm -rf ~/.rvm
。您可能在 ~/.rvmrc 中有一個額外的設定檔,當然還有 bash/zsh 啟動檔中的 RVM hook。
∞安裝 RVM 後,我需要 gem 嗎?
不,此寶石僅用於發行,您可以輕易地複製 github 儲存庫並執行 ./install。安裝後,此寶石不再必要,可以安全地移除。除非您使用 RVM Ruby API。那麼使用此寶石可能會有幫助,但並非必要,因為也可以從 ~/.rvm/lib/. 載入。
∞我的 ruby 編譯為 32 位元,但我在 Mac OS X Snow Leopard 上,它大量宣傳它是 64 位元!!!
RVM 編譯至您目前執行的核心架構。這表示如果您的核心以 32 位元核心執行 (uname -m),它將編譯 32 位元。您可以在安裝 ruby 解譯器之前將下列內容放入 ~/.rvmrc 中,以覆寫此行為
rvm_archflags="-arch x86_64"
∞我在 Gemfile 中使用 ruby
方法來選擇產品中的 ruby 版本 - 我如何為開發使用另一個 ruby 版本?
在專案目錄中放置 .ruby-version (或如果您需要腳本,則放置 .rvmrc) 檔案,其中包含要使用的 ruby 版本進行開發。
.ruby-version 檔案的優先順序高於 Gemfile,但低於 .rvmrc 檔案,如果您使用 Heroku,它將被忽略。
.ruby-version 檔案可以包含特定的 ruby 版本,或留空以僅使用目前選取的 ruby 版本。
∞我只想為 root 安裝!
請注意,如果您只想為 root 安裝,使用單一使用者安裝,那麼您必須在嘗試安裝之前,使用下列內容預先填入 root 的 $HOME/.rvmrc
echo 'export rvm_prefix="$HOME"' > /root/.rvmrc echo 'export rvm_path="$HOME/.rvm"' >> /root/.rvmrc
以覆寫所執行的檢查,假設 root 執行安裝,則它必須是多使用者安裝類型,而 RVM 必須進入 /usr/local/rvm。這也消除了使用 sudo 的需求,因為所有這些因素的結合,有效地將其轉換為僅針對 root 使用者的單一使用者安裝類型。
請注意,這不是典型的或通常支援的安裝類型。