- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
在 Ruby 开发的世界中,经常需要面对不同项目使用不同 Ruby 版本的情况。这时,一个高效、灵活且易于使用的 Ruby 版本管理工具就显得尤为重要.
rbenv 正是这样一个工具,它允许开发者在同一台计算机上轻松安装、切换和管理多个 Ruby 版本。本文将详细介绍 rbenv 的安装、基本使用以及一些高级特性,帮助你更好地掌握这个强大的工具.
rbenv 是一个轻量级的 Ruby 版本管理工具,通过修改环境变量来控制当前使用的 Ruby 版本。它不会干扰系统自带的 Ruby 环境,而是为用户提供一个隔离的 Ruby 运行环境。这意味着你可以根据项目需求,轻松切换到所需的 Ruby 版本,确保项目的兼容性和运行稳定性.
在 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 或者关闭终端窗口并打开一个新窗口,让我们的更改生效.
对于更自动化的安装,可以使用 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 管理你的 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 包删除:
brew uninstall rbenv
sudo apt purge rbenv
sudo pacman -R rbenv
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,你可以使用 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 版本的符号链接.
例如,使用 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 版本将累积在 ~/.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 已知的所有 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
显示当前活动的 Ruby 版本,以及有关其设置方式的信息.
$ rbenv version
3.3.0 (set by /Users/liam/.rbenv/version)
通过将版本名称写入当前目录中的 .ruby-version 文件来设置本地应用程序特定的 Ruby 版本。此版本覆盖全局版本,并且可以通过设置 RBENV_VERSION 环境变量或使用 rbenv shell 命令来覆盖自身.
rbenv local 3.1.2
当不带版本号运行时,rbenv local 会报告当前配置的本地版本。你还可以取消设置本地版本:
rbenv local --unset
通过将版本名称写入 ~/.rbenv/version 文件来设置要在所有 shell 中使用的 Ruby 全局版本。此版本可以通过特定于应用程序的 .ruby-version 文件或通过设置 RBENV_VERSION 环境变量来覆盖.
rbenv global 3.1.2
特殊版本名称 system 告诉 rbenv 使用系统 Ruby(通过搜索 $PATH 来检测).
当没有版本号运行时,rbenv global 报告当前配置的全局版本.
通过在 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 已知的所有 Ruby 可执行文件安装 shims (~/.rbenv/versions/*/bin/*)。通常你不需要运行此命令,因为它会在安装 gems 后自动运行.
rbenv rehash
显示给定可执行文件的,的完整路径.
$ rbenv which irb
/Users/liam/.rbenv/versions/3.3.0/bin/irb
列出包含指定可执行文件名称的所有 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 插件的命令如下。详细教程 。
# 通过 Homebrew 安装
brew install ruby-build
# 或者通过 Git 安装
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
安装完成后,你可以使用 ruby-build 命令来安装和管理 Ruby 版本,而无需手动下载和编译 Ruby 源代码.
安装 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 开发之旅提供便利! 。
访问博址 liam-i.github.io 获取更佳阅读体验和最新内容.
最后此篇关于rbenv:Ruby多版本管理利器的文章就讲到这里了,如果你想了解更多关于rbenv:Ruby多版本管理利器的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
无法使用 Hive 版本 1.1.0 HBase 版本 0.94.8 和 hadoop 版本 2.7.0 从 hive 创建 Hbase 表 hive (default)> CREATE TABLE
我试图为 electron app 创建可执行文件但面临这个问题 Unable to determine Electron version. Please specify an Electron ve
我正在尝试让自适应阈值在 python 绑定(bind)到 opencv 中工作(swig 一个 - 无法让 opencv 2.0 工作,因为我正在使用 beagleboard 因为交叉编译还没有工作
我一直在 linux 机器上使用 JMeter,在命令行下使用了一段时间。工作正常。 今天,我在 Windows 机器(新客户端等)上尝试了它,它确实可以工作,但在控制台窗口中输出有很大不同。 Lin
在我的编码环境中,我通常使用最新版本的 Java 和 Eclipse。当我编写源代码时,我不会注意我使用的 API 方法或类是否向后兼容旧版本的 Java 或 Eclipse。在 javadoc 中存
问题是关于版本的特定组合,但更普遍。 我刚刚从 Kubuntu 12.04 升级到 14.04。现在,当我想编译 CUDA 代码(使用 CUDA 6.5)时,我得到: #error -- unsupp
我目前正在对我的一些应用程序进行沙箱处理,看来我必须删除一些功能才能满足 Mac App Store 沙箱(和其他)规则。 显然用户不会因为失去功能而感到高兴,我担心他们不会指责苹果制定了愚蠢的规则,
我用 flash 和 js 版本创建了一个动画横幅。 是否可以检测低于版本 9 的 ie 版本,然后提供 Flash 横幅,否则提供 js 横幅。 最佳答案 您可以使用条件注释来检测 IE 版本
我有一个处理不同位置的数据库的应用程序,我想检查这些数据库是否使用 Firebird 2.5 或更高版本打开。我们最近从 Firebird 2.0 迁移到了 2.5,我们有很多数据库可以响应 sele
我正在开发一个应用程序,我使用托管在我的服务器上的 Java 和 Jersey 构建了后端部分。我在服务器上使用 Tomcat7 来调用 Web 服务。 我以前有一台安装了 Ubuntu 的计算机,我
我可以使用 GetVersionEx() 函数来获取 Windows 版本,但是这个函数将返回一个数字而不是一个字符串。但是没有问题,因为我可以将数字转换为字符串,例如: if (osvi.dwMaj
我已经在我的系统中安装了 Anaconda 2 & 3。 Anaconda 2 包含 python 2.7 & Anaconda 3 包含 python 3.6。 我需要使用命令提示符运行我的 pyt
我正在尝试构建一个 Android 项目,但发生了以下错误 Error:(10, 1) A problem occurred evaluating project ':app'. > Failed t
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
在降级我的 GCC 之前,我想知道是否有办法确定我的机器中的哪些程序/框架或依赖项会中断,以及是否有更好的方法来执行 openpose 安装? (例如,在 CMake 中更改某些内容) 有没有办法在不
我已经在终端的代码sudo apt-get install Shadowsocks-qt5中安装了Shadowsocks-Qt5,然后我可以通过搜索找到启动图标,但是它当我点击图标时打不开。然后我尝试
在网络上找到的文档说,MLLP V2(第 2 版)是用于传输 HL7 版本 3 内容的所有消息传输协议(protocol)的要求。似乎 MLLP 第 2 版主要用于 HL7 第 3 版。 我们可以/应
我正在使用带有 selinium webdriver 的 Protractor 。我的chromeDriver版本是78.0.1,chrome版本是78.0.3904.97。两个版本都匹配,应该不会有
我正在按照教程设置 mysql 数据库并做一些事情。我无法找到数据库资源管理器。我读了很多,但在 Window->show View-> Dataxxx 或右侧上部选项卡中无法正常工作。 最佳答案 从
我已经在 KDE 桌面上安装了 Anaconda 2.0.1。当我运行 python 并看到所有已安装的模块时,我收到此消息“无法将不兼容的 Qt 库(版本 0x40801)与该库(版本 0x4080
我是一名优秀的程序员,十分优秀!