如果您能提供帮助或希望成为维护者之一,请开始帮助我们。 您可以在 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 - 当前 gems(et) 名称(如果有)
- rvm_ruby_interpreter - 当前选择的 Ruby 解释器
- rvm_ruby_version - 当前选择的 Ruby 版本
- rvm_ruby_patch_level - 当前选择的 Ruby patch_level(如果有)
- rvm_ruby_revision - 当前选择的 Ruby 版本(如果有)
- 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