aliases | tags | created | modified | |||
---|---|---|---|---|---|---|
|
2023-08-18 12:44:52 -0700 |
2025-02-19 12:51:41 -0800 |
Linux 下使用各家的包管理器安装。
使用 Scoop 来安装:
scoop install ruby
ruby-instal 是一个 ruby 的安装工具。
安装默认最新稳定版:
ruby-install ruby
[!info] 安装位置
默认会将 ruby 装在
~/.rubies/ruby-x.x.x
上。x.x.x
是 ruby 的版本号,也就是说它会按版本号来分隔不同的安装目录。ruby-install 是下载源码编译安装的。源码是下载到
~/src
目录。ruby-install 缓存位置:
~/.cache/ruby-install
。
安装最新版:
ruby-install --update ruby
指定安装版本:
ruby-install ruby 3.1
指定安装路径:
ruby-install --install-dir /path/to/dir ruby
指定 rubies
「默认」路径:
ruby-install --rubies-dir /path/to/rubies/ ruby
[!tip] rubies 路径
默认情况,
rubies
路径是在用户目录下,即~/.rubies
。而通过rubies-dir
就可以指定将要安装的各版本 ruby 的「默认路径」。这跟上面那个
--install-dir
不同,--install-dir
是完全自由的,想指定哪,你将要装的 ruby 就放哪。而如果以后别的版本的 ruby 安装,如果没有继续使用--install-dir
参数来指定,将会装在默认路径上。
将 ruby 装在 /usr/local
下:
ruby-install --system ruby 3.1.2
另外,ruby-install 默认安装是下载源码安装,由于官方源速度有点慢,可以使用中国官方镜像:https://cache.ruby-china.com 来提速。这里就得使用到 -M
选项了。
[!example] 示例
# 默认安装最新稳定版 # 使用了ruby-china的镜像 ruby-install ruby -M https://cache.ruby-china.com/pub/ruby # 指定安装的版本 ruby-install ruby -M https://cache.ruby-china.com/pub/ruby 3.2.2
/usr/share/ruby-install/
目录是 ruby-install 的安装目录,下面有个 ruby-version.sh
的脚本文件,这个是到 github 上取 ruby 的版本号列表的。原来是 https://raw.githubusercontent.com/postmodern/ruby-versions/master
这个,但因为 githubusercontent.com
这个域名众所周知的缘故,所以访问上存在相当难度(它比 github.com 本身还要难,github 还能用 steam++,使用 "insteadOF" 修改.gitconfig,使用各种镜像替代),而这里的脚本是写死的,所以就算用加速站加速,也得改脚本。
修改后的:
ruby_versions_url="https://raw.gitmirror.com/postmodern/ruby-versions/master"
Tip
gitmirror.com 是加速网址,可以到网上搜下。
chruby: 这个工具可能方便切换不同版本的 ruby。
使用系统包管理器安装。
默认安装在 /usr/share/chruby/
目录中,把 /usr/share/chruby/chruby.sh
加进 .bashrc
或 .bash_profile
或 .profile
等配置文件中就能用的。
source /usr/share/chruby/chruby.sh
切换版本:
chruby ruby-3.2.2
如果不带参数,chruby
会找当前目录中的 .ruby-version
文件中的版本号。
Tip
echo "3.2.2" > ./.ruby-version
或者 echo "ruby-3.2.2" > ./.ruby-version
而 chruby 是没有「默认」版本的,只有使用到时,才敲下 chruby
切下。如果想要 shell 终端一启动就自动激活或者叫切换某 ruby 版本,那就把 chruby
写到配置文件(.bashrc
、.bash_profile
或 .profile
、.zshrc
等)中。
rbenv 是一款 ruby 版本管理工具。
yay -S rbenv
装完后,执行下 rbenv init
。会有以下揭示:
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init - zsh)"
# Load rbenv automatically by appending
# the following to ~/.bash_profile:
eval "$(rbenv init - bash)"
rbenv init
执行后,重启终端,会在 ~
下多了一个 .rbenv
目录,这就是 rbenv 的根。默认这个目录下有两个子目录:shims
和 versions
。
[!info]
.rbenv
下除了shims
和versions
两个目录,还存在一个默认情况下没有的目录,那就是 plugins 目录,这个目录是用来装rbenv
插件的。而rbenv
最重要的一个插件就是 ruby-build,没这个插件rbenv
连下载 ruby 安装包都下不了。因为
rbenv
实质只是一个 ruby 版本切换器,本身不具备下载安装的功能,下载及安装功能都得通过别的工具实现,而其默认选项就是ruby-build
。
其中 versions
就是存放各个版本的 ruby。
这就是不同 shell 下添加不同的初始化代码。
rbenv commands
:列出rbenv
所有命令rbenv version
:显示当前使用的 ruby 的版本rbenv versions
:显示已安装 ruby 的所有版本,前面带星号的,就是当前正在使用的版本。
要使用 rbenv
安装 ruby,如使用 rbenv install -l
这个命令,显示下可以装哪些版本的 ruby,就必须安装 ruby-build 这个插件。
-
rbenv install --list
或rbenv install -l
:列出所有(全局)(global),或者称为「默认」可用的 ruby 版本。 -
rbenv install --list-all
或rbenv install -L
:列出当前目录(local
)所有已安装的 ruby 版本。 -
rbenv install 版本号
:安装指定的版本的 ruby。 -
rbenv rehash
:每当切换 ruby 版本和执行 bundle install 之后必须执行这个命令 -
rbenv which irb
: 列出 irb 这个命令的完整路径 -
rbenv whence irb
: 列出包含 irb 这个命令的版本 -
rbenv global [版本号]
:显示或切换默认 ruby 版本 -
[!tip]
在使用 ruby-build 安装完一个 ruby 后,就会有提示信息,如
NOTE: to activate this Ruby version as the new default, run: rbenv global 3.2.2
,让你激活一个版本为默认的 ruby 版本。此命令版本号可选,如果此命令没有给出版本号,即为显示当前的默认版本。
~/.rbenv/versions/
这个目录下存各版本的 ruby,以 ruby 的版本号为子目录存放,如 ~/.rbenv/versions/3.2.2
,就是 3.2.2
这个版本的存放路径。
rbenv 是 rbenv 的一个插件,专门用来下载安装 ruby 的。
安装 ruby-build
有两种方式:
使用系统的包管理器安装,如 yay -S ruby-build
。
以 rbenv 的插件方式安装
rbenv 的插件方式安装:
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
[!info]
很简单,就是把
ruby-build
的东西下载到rbenv
的插件目录中。
rbenv root
这个变量,默认是~/.rbenv
,也就是 rbenv 相关的东西都放在「根目录」。而
rbenv root
下的子目录plugins
就是 rbenv 的插件存放目录。
安装完 ruby-build
,就能使用诸如 rbenv install -l
这类的的安装 ruby 的命令。
为了下载快点,所以得对 ruby-build
的镜像源进行一点配置。
在 .bashrc
或 .bash_profile
或 .zshr
或 .profile
文件中加入以下代码:
export RUBY_BUILD_MIRROR_URL=https://cache.ruby-china.com
[!tip] ruby-build 的配置项
官方文档 Custom Build Configuration 一栏中就有列出
ruby-build
的配置项。像
RUBY_BUILD_HTTP_CLIENT
,这个配置选项还能配置使用什么下载工具下载 ruby,在 aria2、curl 和 wget 三选一,这好像比 Ruby-Install 牛一点。
使用国内镜像插件来提速:rbenv-china-mirror。
安装插件:
git clone https://github.com/andorchen/rbenv-china-mirror.git "$(rbenv root)"/plugins/rbenv-china-mirror
Tip
跟安装 ruby-build 插件类似。
而升级这看插件方式,跟升级普通 Git 项目一样,进到目录中 git pull
下就好了。
cd ~/.rbenv/plugins/rbenv-china-mirror
git pull
但这个插件使用 aria2 存在问题,所以换其他下载器。
在 .bashrc
或其他配置文件中加入以下代码:
export RUBY_BUILD_HTTP_CLIENT=wget
[!info] rbenv 下载器可选项
RUBY_BUILD_HTTP_CLIENT
这个选项参数有三个可选:aria2c
、curl
和wget
。并且对应的,还有
RUBY_BUILD_ARIA2_OPTS
、RUBY_BUILD_CURL_OPTS
和RUBY_BUILD_WGET_OPTS
,三个选项可以让用户使用各下载器的选项参数。
frum 是一款使用 Rust 写的 ruby 版本管理器。与 NodeJS 下的 fnm 类似。
可以使用系统的包管理器安装,如 ArchLinux:
yay -S frum-bin
frum 有个配置目录,默认是在 ~/.frum
,可以使用 echo $FRUM_DIR
查看。
在 .zshrc
,或其他配置文件中添加 eval "$(frum init)"
代码。
frum install -l
:列出可以安装的 ruby 版本。frum install 版本号
:安装指定版本的 ruby。
Note
默认使用 cache.ruby-lang.org 这个地址下载。
下载的 ruby 会放安装在 ~/.frum/versions
目录中,以版本号为子目录为区分。
ll .frum/versions
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2024-02-29 04:38 .
drwxr-xr-x - silascript silascript 2024-02-29 04:27 ..
drwxr-xr-x - silascript silascript 2024-02-29 04:59 .downloads
drwxr-xr-x - silascript silascript 2024-02-29 04:38 3.2.3
frum versions
:查看当前 ruby 版本情况,如下载了哪几个版本,正在应用哪个版本
$ frum versions
3.3.0
* 3.2.3
frum local 版本号
:切换发前 ruby 版本,已安装的版本可以通过frum versions
命令查看。frum global 版本号
:指定全局 ruby 版本。frum --ruby-build-mirror
:设定 ruby 下载镜像 url。单独使用没有意义,得配合install
命令一起使用。
[!example] 示例
frum --ruby-build-mirror=https://cache.ruby-china.com/pub/ruby install 版本号
:使用指定镜像下载安装指定版本的 ruby。$ frum --ruby-build-mirror=https://cache.ruby-china.com/pub/ruby install 3.2.2 ==> Downloading https://cache.ruby-china.com/pub/ruby/3.2/ruby-3.2.2.tar.xz ==> Extracting ruby-3.2.2.tar.xz ==> Building Ruby 3.2.2只有在
Downloading
中显示出指定的镜像 url,才证明使用--ruby-build-mirror
已经生效了。
frum uninstall 版本号
:卸载指定版本的 ruby。
Gem 是 Ruby 模块的包管理器,类似于 Python 中的 pip。
使用 RubyGems 镜像 来替换官方的源。
gem sources -l
gem source -r https://rubygems.org/
gem source -r https://gems.ruby-china.com/
[!info]
可以一行代码完成:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem 命令用于构建、上传、下载及安装 Gem 包。
gem install 包名
gem uninstall 包名
gem list --local
gem list --remote
gem search xxx --remote
下载一个 gem,但不安装:
gem fetch xxx
更新 RubyGems:
gem update --system