如果您能提供協助或希望成為維護人員之一,請立即開始提供協助。您可以在 RVM Github 組織 找到更多與 RVM 相關的專案。
鉤子
RVM 支援多個鉤子。
- after_use
- before_install
- after_install
- after_do(在任何「do」動作後觸發)
- after_cd(每當使用者使用 cd 指令時觸發)
每個鉤子都是 ~/.rvm/hooks/[鉤子名稱] 中的檔案,您可以在其中放置任何 bash 指令碼命令順序。每個鉤子檔案執行時,都能使用完整的 RVM 環境。一些有用的 RVM 環境變數為
- rvm_ruby_string - 用於唯一識別所選 Ruby 解譯器的 Ruby 字串。
- rvm_ruby_home - 包含所選 Ruby 解譯器安裝的目錄。
- rvm_ruby_gem_home - 所選 Ruby 解譯器的 gem 主目錄。
- rvm_gemset_name - 目前的 gem(set) 名稱(如果有)
- rvm_ruby_interpreter - 目前所選的 Ruby 解譯器
- rvm_ruby_version - 目前所選的 Ruby 版本
- rvm_ruby_patch_level - 目前所選的 Ruby patch_level(如果有)
- rvm_ruby_revision - 目前所選的 Ruby revision(如果有)
- rvm_ruby_tag - 目前所選的 Ruby 標籤(如果有)
對於 `after_use`、`after_cd` 和 `after_install` 鉤子,會處理多個鉤子檔案。RVM 為其中每個鉤子提供主鉤子檔案,載入鉤子目錄中以 `[鉤子名稱]_` 為字首的其他檔案。每個已設定可執行旗標的字首鉤子檔案將按字母順序載入。
其他鉤子未來可能會遵循此慣例,視需要而定。當 RVM 更新時,任何需要以其中一個包裝器取代的現有鉤子檔案將重新命名為 `[鉤子名稱]_custom`。
舉例來說,假設我們希望在每次切換 Ruby 時列印 Ruby 字串。
$ cat > ~/.rvm/hooks/after_use_show_ruby <<EOF > echo "Now using \$rvm_ruby_string" > EOF $ chmod +x ~/.rvm/hooks/after_use_show_ruby
將產生以下結果。
$ rvm 1.9.1 Now using ruby-1.9.1-p243 $ rvm 1.8.7 Now using ruby-1.8.7-p174