语法
ruby-build [-kpv] <definition> <prefix> [-- <configure-args>…]
ruby-build {--list|--definitions}
ruby-build --version
说明
ruby-build 下载、编译和安装一个 Ruby 版本,此版本由 definition 参数指定并安装到 prefix 指定的位置。
definition 参数可以是磁盘上的文件路径,在这种情况下,它将作为 bash 脚本导入到 ruby-build 中。
另外,额外的 Ruby configure-args 可以列在 "--" 之后,并且会转发到 ./configure
调用。
默认情况下,所有编译输出都将重定向到 $TMPDIR/ruby-build.*.log
的日志文件中。激活详细模式以跳过日志文件并将所有内容打印到标准流。
选项
- -l, --list
-
列出各个 Ruby 的最新稳定版本
- --definitions
-
列出包括过时定义的所有本地定义
- --version
-
显示 ruby-build 版本
- -v, --verbose
-
详细模式:将所有构建输出转发到 stdout/stderr
- -p, --patch
-
在构建前应用 stdin 中的补丁
- -k, --keep
-
不要在安装后移除源树
- -4, --ipv4
-
仅将名称解析为 IPv4 地址
- -6, --ipv6
-
仅将名称解析为 IPv6 地址
示例
在 /opt/rubies
下安装 Ruby 版本 3.2.2,同时调整一些配置选项
$ ruby-build 3.2.2 /opt/rubies/ruby-3.2.2 -- --disable-install-doc --with-openssl-dir=/opt/openssl
作为 rbenv 插件使用
$ rbenv install 3.2.2
环境变量
- TMPDIR
-
在磁盘上写入临时文件的位置
- RUBY_BUILD_BUILD_PATH(默认值:TMPDIR 的带时间戳子目录)
-
用于下载源文件和编译的构建位置
- RUBY_BUILD_CACHE_PATH(默认值:如作为 rbenv 插件调用,则为 “~/.rbenv/cache”)
-
下载的包文件缓存位置
- RUBY_BUILD_HTTP_CLIENT(默认值:PATH 中找到的第一个工具)
-
用于下载的 “aria2c”、“curl” 或 “wget” 之一
- RUBY_BUILD_ARIA2_OPTS
-
传递给 aria2c 的其他下载选项
- RUBY_BUILD_CURL_OPTS
-
传递给 curl 的其他下载选项
- RUBY_BUILD_WGET_OPTS
-
传递给 wget 的其他下载选项
- RUBY_BUILD_MIRROR_URL (默认值:Amazon CloudFront 镜像)
-
下载软件包的自定义镜像 URL 根目录
- RUBY_BUILD_MIRROR_PACKAGE_URL
-
自定义的完整镜像 URL
- RUBY_BUILD_SKIP_MIRROR
-
绕过下载镜像并从原始 URL 获取所有软件包文件
- RUBY_BUILD_ROOT (默认值:ruby-build 安装位置内的 "share/ruby-build")
-
自定义构建定义目录
- RUBY_BUILD_TARBALL_OVERRIDE
-
覆盖用于抓取 ruby tarball 的 URL,可以后跟 "#<checksum>"
- RUBY_BUILD_DEFINITIONS
-
除了 RUBY_BUILD_ROOT 以外,用于搜索构建定义的路径
- CC
-
C 编译器的路径
- RUBY_CFLAGS
-
用于 Ruby 编译的其他
CFLAGS
选项 - CONFIGURE_OPTS
-
其他 “./configure” 参数
- MAKE (默认值:"make")
-
自定义 make 命令(例如,“gmake”)
- MAKE_OPTS, MAKEOPTS
-
用于 “make” 的其他参数
- MAKE_INSTALL_OPTS
-
用于 “make install” 的其他参数
- RUBY_CONFIGURE_OPTS
-
仅适用于 Ruby 源的其他 “./configure” 参数
- RUBY_MAKE_OPTS
-
仅适用于 Ruby 源的其他 make 参数
- RUBY_MAKE_INSTALL_OPTS
-
仅适用于 Ruby 源的其他 “make install” 参数
- NO_COLOR (默认值:连接到终端时允许使用颜色)
-
禁用输出中的 ANSI 颜色
- CLICOLOR_FORCE
-
即使没有连接到终端,也强制在输出中使用 ANSI 颜色