rbenv:Ruby 多版别办理利器
在 Ruby 开发的国际中,常常需求面临不同项目运用不同 Ruby 版别的状况。这时,一个高效、灵敏且易于运用的 Ruby 版别办理东西就显得尤为重要。
rbenv 正是这样一个东西,它答应开发者在同一台核算机上轻松装置、切换和办理多个 Ruby 版别。本文将具体介绍 rbenv 的装置、根本运用以及一些高档特性,协助你更好地把握这个强壮的东西。
rbenv 简介
rbenv 是一个轻量级的 Ruby 版别办理东西,经过修正环境变量来操控当时运用的 Ruby 版别。它不会搅扰体系自带的 Ruby 环境,而是为用户供给一个阻隔的 Ruby 运转环境。这意味着你能够依据项目需求,轻松切换到所需的 Ruby 版别,保证项目的兼容性和运转安稳性。
装置 rbenv
Homebrew 装置
-
在 macOS (或 Linux) 体系上,主张运用 Homebrew 装置 rbenv。具体教程
brew install rbenv ruby-build
Homebrew 具体教程可检查:
- Homebrew 酿酒术:精心分配你的 macOS 软件环境
-
在 shell 中加载 rbenv
运转下面指令,并依照打印的阐明进行操作:
rbenv init
例如,下面这个示例,咱们运转
rbenv init
后,提示将eval "$(rbenv init - zsh)"
添加到~/.zshrc
文件中,才干主动加载 rbenv。$ rbenv init # Load rbenv automatically by appending # the following to ~/.zshrc: eval "$(rbenv init - zsh)"
-
履行
source ~/.zshrc
或许封闭终端窗口并翻开一个新窗口,让咱们的更改收效。
克隆 Git 库房装置
关于更主动化的装置,能够运用 rbenv-installer。假如更喜爱手动办法装置,请依照以下进程操作。
-
将 rbenv 克隆到
~/.rbenv
:git clone https://github.com/rbenv/rbenv.git ~/.rbenv
-
装备 shell 来加载 rbenv: 具体教程
-
关于 bash:
在 macOS (或 Linux) 体系上,bash 一般经过以下方法装备
~/.bash_profile
:echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bash_profile
-
关于 Zsh:
echo 'eval "$(~/.rbenv/bin/rbenv init - zsh)"' >> ~/.zshrc
假如你猎奇,请检查此处以了解 init 的效果。
-
-
履行
source ~/.zshrc
或许封闭终端窗口并翻开一个新窗口,让咱们的更改收效。
卸载 rbenv
rbenv 的简略性使得暂时禁用或从体系中卸载它变得很简略。具体教程
-
要禁用 rbenv 办理你的 Ruby 版别,只需从 shell 发动装备中注释或删去
rbenv init
行即可。这将从 PATH 中删去rbenv shims
目录,而且将今后的运用(例如ruby
)将履行体系版别 Ruby,彻底绕过 rbenv。禁用后,
rbenv
仍可在指令行上拜访,但你的 Ruby 应用程序不会遭到版别切换的影响。 -
要彻底卸载 rbenv,请履行进程(1),然后删去 rbenv 根目录。这将删去装置在
`rbenv root`/versions/
下的一切 Ruby 版别:rm -rf "$(rbenv root)"
假如你已运用包办理器装置了 rbenv,则最终一步履行 rbenv 包删去:
- Homebrew:
brew uninstall rbenv
- Debian、Ubuntu 及其衍生版别:
sudo apt purge rbenv
- Archlinux 及其衍生版别:
sudo pacman -R rbenv
- Homebrew:
rbenv 根本运用
装置 Ruby 版别
rbenv install
指令不随 rbenv 一同供给,而是由 ruby-build 插件供给。
在测验装置 Ruby 之前,请检查你的构建环境是否具有必要的东西和库。然后:
rbenv install -l # 列出最新的安稳版别
rbenv install -L # 列出一切本地版别
rbenv install 3.3.0 # 装置 Ruby 版别
要对 BUILD FAILED
场景进行毛病扫除,请检查 ruby-build 评论部分。
假如 rbenv install
指令找不到,你能够将 ruby-build 作为插件装置:
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
设置 Ruby 版别
装置完后,需求设置 Ruby 版别以完结装置并开端运用 Ruby,你能够运用 rbenv versions
指令检查已装置的版别列表。要切换/设置到特定版别,请运转:
rbenv global 3.3.0 # 设置本机的默许 Ruby 版别,你能够替换为你已装置的版别号
# 或:
rbenv local 3.3.0 # 设置该目录的 Ruby 版别,你能够替换为你已装置的版别号
# 或:
rbenv shell 3.3.0 # shell 环境,切换到 Ruby 3.3.0 版别,你能够替换为你已装置的版别号
除了 rbenv install
指令之外,你还能够手动下载并编译 Ruby 作为 ~/.rbenv/versions
的子目录。该目录中的内容也能够是装置在文件体系其他方位的 Ruby 版别的符号链接。
装置 Ruby gem
例如,运用 rbenv local 3.3.0
为你的项目选择 Ruby 版别。然后,像往常相同持续装置 gems:
gem install bundler
你不应该运用 sudo
来装置 gem。一般,Ruby 版别将装置在你的主目录下,因而你的用户能够写入。假如你在装置 gems 时收到“你没有写入权限”过错,则很可能你的“体系” Ruby 版别仍然是大局默许版别。运用 rbenv global <version>
更改它,然后重试。
运用 gem env
检查 gem 的装置方位:
gem env home
# => ~/.rbenv/versions/<version>/lib/ruby/gems/...
卸载 Ruby 版别
跟着时刻的推移,你装置的 Ruby 版别将累积在 ~/.rbenv/versions
目录中。
要删去旧的 Ruby 版别,只需 rm -rf
你要删去的版别的目录即可。你能够运用 rbenv prefix
指令查找特定 Ruby 版别的目录,例如 rbenv prefix 3.3.0
。
ruby-build 插件供给了 rbenv uninstall
指令来主动履行删去进程。
rbenv uninstall 3.3.0 # 主动履行删去 Ruby 版别
常用指令
你需求了解的首要 rbenv 指令是。具体教程
rbenv versions
列出 rbenv 已知的一切 Ruby 版别,并在当时活动版别周围显现一个星号。
$ rbenv versions
system
2.7.4
* 3.3.0 (set by /Users/liam/.rbenv/version)
jruby-9.4.6.0
mruby-3.3.0
truffleruby-24.0.1
rbenv version
显现当时活动的 Ruby 版别,以及有关其设置方法的信息。
$ rbenv version
3.3.0 (set by /Users/liam/.rbenv/version)
rbenv local
经过将版别称号写入当时目录中的 .ruby-version
文件来设置本地应用程序特定的 Ruby 版别。此版别掩盖大局版别,而且能够经过设置 RBENV_VERSION
环境变量或运用 rbenv shell
指令来掩盖本身。
rbenv local 3.1.2
当不带版别号运转时,rbenv local
会陈述当时装备的本地版别。你还能够撤销设置本地版别:
rbenv local --unset
rbenv global
经过将版别称号写入 ~/.rbenv/version
文件来设置要在一切 shell 中运用的 Ruby 大局版别。此版别能够经过特定于应用程序的 .ruby-version
文件或经过设置 RBENV_VERSION
环境变量来掩盖。
rbenv global 3.1.2
特别版别称号 system
告知 rbenv 运用体系 Ruby(经过查找 $PATH
来检测)。
当没有版别号运转时,rbenv global
陈述当时装备的大局版别。
rbenv shell
经过在 shell 中设置 RBENV_VERSION
环境变量来设置特定于 shell 的 Ruby 版别。此版别掩盖特定于应用程序的版别和大局版别。
rbenv shell jruby-9.4.6.0
当没有版别号运转时,rbenv shell
会陈述 RBENV_VERSION
的当时值。你还能够撤销设置 shell 版别:
rbenv shell --unset
请注意,你需求启用 rbenv 的 shell 集成(装置阐明的进程 3)才干运用此指令。假如你不想运用 shell 集成,你能够简略地自己设置 RBENV_VERSION
变量:
export RBENV_VERSION=jruby-9.4.6.0
rbenv rehash
为 rbenv 已知的一切 Ruby 可履行文件装置 shims
(~/.rbenv/versions/*/bin/*
)。一般你不需求运转此指令,由于它会在装置 gems 后主动运转。
rbenv rehash
rbenv which
显现给定可履行文件的,的完好途径。
$ rbenv which irb
/Users/liam/.rbenv/versions/3.3.0/bin/irb
rbenv whence
列出包括指定可履行文件称号的一切 Ruby 版别。
$ rbenv whence rackup
3.3.0
jruby-9.4.6.0
truffleruby-24.0.1
环境变量
称号 | 默许 | 描绘 |
---|---|---|
RBENV_VERSION |
指定要运用的 Ruby 版别。另请参看 rbenv shell |
|
RBENV_ROOT |
~/.rbenv |
界说 Ruby 版别和 shims 地点的目录。另请参看 rbenv root |
RBENV_DEBUG |
输出调试信息。例如:rbenv --debug <subcommand> |
|
RBENV_HOOK_PATH |
检查 wiki | 查找 rbenv hooks 检查途径列表 |
RBENV_DIR |
$PWD |
开端查找 .ruby-version 文件的目录 |
插件支撑
rbenv 还支撑经过插件来扩展功用。例如,ruby-build 和 rbenv-vars 插件能够让你更方便地装置和办理 Ruby 版别。你能够经过 Homebrew 或直接从 Git 库房装置这些插件,并运用它们来简化 Ruby 版别的装置和办理进程。
ruby-build
装置 ruby-build
插件的指令如下。具体教程
# 经过 Homebrew 装置
brew install ruby-build
# 或许经过 Git 装置
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
装置完结后,你能够运用 ruby-build
指令来装置和办理 Ruby 版别,而无需手动下载和编译 Ruby 源代码。
ruby-vars
装置 rbenv-vars
插件的指令如下。具体教程
# 经过 Homebrew 装置
brew install rbenv-vars
# 或许经过 Git 装置
git clone https://github.com/rbenv/rbenv-vars.git "$(rbenv root)"/plugins/rbenv-vars
装置完结后,你能够运用 ruby-vars
指令让你在生成 Ruby 进程之前设置大局和特定于项目的环境变量。
结语
rbenv 是一个功用强壮的 Ruby 版别办理东西,它答应开发者在同一台核算机上轻松装置、切换和办理多个 Ruby 版别。经过运用 rbenv,你能够保证你的项目在正确的 Ruby 环境中运转,然后进步开发功率和代码质量。
跟着 Ruby 生态体系的不断发展,rbenv 将持续成为开发者不可或缺的东西之一。期望本文能协助你更好地了解和运用 rbenv,为你的 Ruby 开发之旅供给便当!
相关链接
- https://github.com/rbenv/rbenv
- https://github.com/rbenv/ruby-build
- https://github.com/rbenv/rbenv-vars
- https://brew.sh
- Homebrew 酿酒术:精心分配你的 macOS 软件环境
拜访博址 liam-i.github.io 获取更佳阅览体会和最新内容。