Synopsis
ruby-build [-kpv] <definition> <prefix> [-- <configure-args>…]
ruby-build {--list|--definitions}
ruby-build --version
Description
ruby-build downloads, compiles, and installs a Ruby version named by the definition argument into the location specified by prefix.
The definition argument can be a path to a file on disk, in which case it is sourced into ruby-build as a bash script.
Optionally, extra Ruby configure-args may be listed after "--" and
will get forwarded to the ./configure
invocation.
By default, all compile output is redirected to a log file at
$TMPDIR/ruby-build.*.log
. Activate the verbose mode to skip the log file
and print everything to standard streams.
Options
- -l, --list
-
List latest stable releases for each Ruby
- --definitions
-
List all local definitions, including outdated ones
- --version
-
Show version of ruby-build
- -v, --verbose
-
Verbose mode: forward all build output to stdout/stderr
- -p, --patch
-
Apply a patch from stdin before building
- -k, --keep
-
Do not remove source tree after installation
- -4, --ipv4
-
Resolve names to IPv4 addresses only
- -6, --ipv6
-
Resolve names to IPv6 addresses only
Examples
Install Ruby version 3.2.2 under /opt/rubies
while tweaking some
configuration options:
$ ruby-build 3.2.2 /opt/rubies/ruby-3.2.2 -- --disable-install-doc --with-openssl-dir=/opt/openssl
Usage as rbenv plugin:
$ rbenv install 3.2.2
Environment Variables
- TMPDIR
-
The location to write temporary files on disk
- RUBY_BUILD_BUILD_PATH (default: a timestamped subdirectory of TMPDIR)
-
The build location for downloading source files to and compiling
- RUBY_BUILD_CACHE_PATH (default: "~/.rbenv/cache" if invoked as rbenv plugin)
-
Where to cache downloaded package files
- RUBY_BUILD_HTTP_CLIENT (default: first tool found in PATH)
-
One of "aria2c", "curl", or "wget" to use for downloading
- RUBY_BUILD_ARIA2_OPTS
-
Additional options to pass to aria2c for downloading
- RUBY_BUILD_CURL_OPTS
-
Additional options to pass to curl for downloading
- RUBY_BUILD_WGET_OPTS
-
Additional options to pass to wget for downloading
- RUBY_BUILD_MIRROR_URL (default: a sponsored Amazon CloudFront mirror)
-
Custom mirror URL root to download packages from
- RUBY_BUILD_MIRROR_PACKAGE_URL
-
Custom complete mirror URL
- RUBY_BUILD_SKIP_MIRROR
-
Bypass the download mirror and fetch all package files from their original URLs
- RUBY_BUILD_ROOT (default: "share/ruby-build" within ruby-build install location)
-
Custom build definition directory
- RUBY_BUILD_TARBALL_OVERRIDE
-
Override the URL to fetch the ruby tarball from, optionally followed by "#<checksum>"
- RUBY_BUILD_DEFINITIONS
-
Paths to search for build definitions in addition to RUBY_BUILD_ROOT
- CC
-
Path to the C compiler
- RUBY_CFLAGS
-
Additional
CFLAGS
options to use for Ruby compilation - CONFIGURE_OPTS
-
Additional "./configure" arguments
- MAKE (default: "make")
-
Custom make command (e.g., "gmake")
- MAKE_OPTS, MAKEOPTS
-
Additional arguments for "make"
- MAKE_INSTALL_OPTS
-
Additional arguments for "make install"
- RUBY_CONFIGURE_OPTS
-
Additional "./configure" arguments that apply only to Ruby source
- RUBY_MAKE_OPTS
-
Additional make arguments that apply only to Ruby source
- RUBY_MAKE_INSTALL_OPTS
-
Additional "make install" arguments that apply only to Ruby source
- NO_COLOR (default: allow colors when connected to terminal)
-
Disable ANSI colors in output
- CLICOLOR_FORCE
-
Use ANSI colors in output even when not connected to a terminal