--debug
will now show thewget
orcurl
command when downloading ruby version information.- Prefer
curl
overwget
when on macOS, otherwise preferwget
overcurl
. - Fixed an implicit string splitting bug when passing in compiler env variables
via the additional configuration options
(ex:
ruby-install ruby -- CFLAGS="-O3 ..."
). - Catch unknown ruby implementation names early before attempting to download version information for them.
- Added support for installing TruffleRuby 23.0.0.
- Added support for installing TruffleRuby+GraalVM 23.0.0.
- This uses the new Oracle GraalVM distribution which uses the GFTC license as it is significantly faster than GraalVM CE and is free for development and production use.
- Added the
-U
,--update
option which will eventually replace-L
,--latest
. - Added the
-D
,--debug
option for outputting[DEBUG]
messages and showing which commands are actually ran during installation. - Added support for the
RUBY_INSTALL_SRC_DIR
environment variable for controlling the defaultsrc
directory. - Added support for the
RUBY_INSTALL_RUBIES_DIR
environment variable for controlling the default installation directory. - Added support for the
RUBY_INSTALL_PKG_MANAGER
environment variable for controlling which package manager to use by default. - Automatically update the ruby versions and checksums if the given ruby version is not known.
- Added support for Void Linux's
xbps
package manager.
- Added the
ruby_build_dir
variable. - Added the
load_dependencies
andload_dependencies_from
functions. - Added the
is_unknown_ruby_version
function.
- Dropped support for installing Rubinius, since it does not appear to be actively maintained and is not widely used anymore.
- Added
xz
as a dependency.
- Uncompress
tar.xz
archives by pipingxzcat
intotar
as a workaround for OpenBSD 7.1'star
not supporting the-J
option.
- Added support for the
aarch64
platform.
- Added support for the
aarch64
platform.
- Pin the homebrew openssl dependency to
[email protected]
to avoid compiling against OpenSSL 3.0.
- Pin the homebrew openssl dependency to
[email protected]
to avoid compiling against OpenSSL 3.0.
- Pin the homebrew openssl dependency to
[email protected]
to avoid compiling against OpenSSL 3.0.
- Pin the homebrew openssl dependency to
[email protected]
to avoid compiling against OpenSSL 3.0.
- Infer the ruby archive name from the URL, when a custom
--url
is given. - No longer run homebrew as root, if homebrew was installed by the current user.
- Guard against installing into
/usr/local
(--system
) with an error message, since TruffleRuby currently does not provide FHS compliant packages. When TruffleRuby begins supporting installing into the FHS directory structure, the error message will be removed.
- Updated to install the TruffleRuby GraalVM (CE) Java 11 releases.
- Fixed a bug where
detect_package_manager()
was not detecting the package manager because$os_platform
not yet set.
-
Added support for truffleruby-graalvm.
-
Added support for extracting
.tar.xz
files usingxz-utils
. -
Improve package-manager detection by making it OS/distro aware.
-
Fixed a bug when parsing
-jJOBS
,-jobs=JOBS
, and--jobs JOBS
options. -
Support passing a single
RUBY-VERSION
orVERSION
argument toruby-install
.$ ruby-install ruby-3.0.0-preview2 $ ruby-install 3.0.0-preview2
- Added
xz-utils
as a dependency. - Default to downloading the
.tar.xz
release.
- Fixed a bug when reinstalling into a pre-existing installation directory.
- Fixed a bug when reinstalling into a pre-existing installation directory.
Makefile
corrections:- Make
SHARE_DIR
andDOC_DIR
respectPREFIX
. - Do not attempt
rmdir $SHARE_DIR
which will always fail.
- Make
- Remove
llvm
from the dependencies (@eregon).- truffleruby >= 19.3 now uses an internal LLVM toolchain.
- Added support for truffleruby.
- Added a
--package-manager
option for explicitly selecting the desired package manager. - Added support for FreeBSD's
pkg
package manager. - Added support for OpenSUSE's
zypper
package manager. - Remove MagLev support.
- Bump java dependency to Java 8.
- Change the mirror URL to use
https://repo1.maven.org/maven2/org/jruby/jruby-dist
.
- Relax
llvm
dependency to include LLVM >= 3.6.
- Require
wget
> 1.12. - Fixed a bug where the
dnf
package manager was not being used.
- Added
bison
to the dependencies for Ripper. - Added the
automake
dependency to homebrew's dependencies (@NickLaMuro).
- Fixed dnf/yum dependencies.
- Support
ruby-install RUBY-X.Y.Z
in addition toruby-install RUBY X.Y.Z
. - Added the
-L
,--latest
option which downloads versions and checksums from ruby-versions. - Versions and checksums are now auto-downloaded if they are missing.
- Versions and checksums are now stored in
~/.cache/ruby-install/
. - Added support for the new dnf RedHat/Fedora package manager.
- Switched to the https://s3.amazonaws.com/jruby.org/downloads mirror.
- Switched to the java-openjdk dependency on RedHat based systems.
- Switched to the https://rubinius-releases-rubinius-com.s3.amazonaws.com mirror.
- Switched to LLVM 3.5 for Debian and Arch based systems.
- Added libedit as a dependency.
- Fixed multiple issues when invoking
gem install bundler
before configuring rubinius.
- Switched to the https://cache.ruby-lang.org/ CDN.
- Added the
--prefix
alias for--install-dir
. - Added the
--system
alias for--install-dir /usr/local
. - Added the
--sha1
option. - Added the
--sha256
option. - Added the
--sha512
option. - Added the
--cleanup
option for deleting the downloaded archive after a successful installation. - Added the
--no-extract
option. - Switched to using ruby-versions for version and checksum information.
- Adds support for verifying SHA1, SHA256 and SHA512 checksums.
- All releases of ruby-install will automatically include the latest versions and checksums from ruby-versions.
- All Pull Requests for new Ruby versions MUST be sent to ruby-versions!
- Remove duplicate
gem install bundler
command. - Added
llvm-static
as a yum dependency.
- Added 2.1.2.
- Do not explicitly quote the value of
--with-opt-dir
.
- Do not explicitly quote the value of
--with-opt-dir
.
- Call
autoreconf
ifconfigure.in
was patched butconfigure
was not.
- Added version 1.7.12.
- Added version 2.2.6.
- Install bundler into
vendor/gems/
to prevent issues when the default gemdir is not writable or does not yet exist.
- Always clean the source directory before re-building, to prevent linking errors after an OS upgrade.
- Added the
clean_ruby
function to handle cleaning the source directory.
- Added versions for 2.1.1, 2.0.0-p451 and 1.9.3-p545.
- Removed version aliases for 1.9.1 and 1.9.2.
- Added the 1.7.11 version.
- Copy the compiled ruby instead of moving it.
- Copy the compiled ruby instead of moving it.
- Add support for building with
-j,--jobs
. - Copy the compiled ruby instead of moving it.
- Add support for installing MRuby 1.0.0!
- Add the
--rubies-dir
option. - Add the
--jobs
flag, similar tomake -j4
(@havenwood). - Support for using the
openssl md5
command (@keiththomps). - Use the default ANSI foreground colour, for terminals which white backgrounds (@cscorley).
- Improved error handling by explicitly returning error codes instead of
relying on
set -e
(@havenwood). - Attempt to upgrade previously installed homebrew dependencies.
- Renamed rubinius to rbx for consistency.
- Add version aliases for 1.9.1 and 1.9.2.
- Remove 1.8.x specific workarounds/patches.
- Pass in
--with-opt-dir=/opt/local
when macports is detected.
- Added version for 1.7.10.
- Check for the existence of java, before recommending users install OracleJDK.
- Added versions for 2.2.3, 2.2.4 and 2.2.5.
- Use the
.part
file extension for files being downloaded, to distinguish between already downloaded files.
- Added versions for 2.1.0-rc1 and 2.1.0.
- Added version for 1.7.9.
- Added version for 2.2.2.
- Add support for the MacPorts package manager (@havenwood).
- Fixed extglob pattern in
fetch
.
- Exit normally when
--no-reinstall
is specified and the ruby has already been installed. (@cbandy) fetch()
can now strip trailing tabs as well as spaces.
- Added version aliases for
2
and1
. - Added versions 1.9.3-p484, 2.0.0-p353 and 2.1.0-preview2 for CVE-2013-4164.
- Added versions 1.7.6, 1.7.7 and 1.7.8.
- Drop support for installing 2.0.0, due to multiple bugs.
- Added versions 2.1.1, 2.2.0 and 2.2.1.
- Always use the system's
stat
command on OSX (@paul). - Do not assume homebrew is installed at
/usr/local/bin/brew
. - Properly quote/expand
$CONFIGURE_OPTS
to prevent incorrect word-splitting (@pbrisbin). - Style changes.
- Download from the new http://cache.ruby-lang.org/ CDN (@hsbt).
- When installing ruby 1.8.x, rubygems-2.1.3 will now be installed.
- Added the MD5 checksum for ruby-2.1.0-preview1.tar.bz2.
- Added the
2.1
and2.1.0
version aliases for 2.1.0-preview1.
- Support the new 2.x installation process.
- Added MD5s and versions for
2.1.0
and2.0.0
. - Removed support for
2.0.0-rc1
.
- Added the
-M
,--mirror
to make it easier to use mirrors. - The
-p
,--patch
option will not auto-download patch URLs. (@bkutil) - The
-v
option was renamed to-V
. (@havenwood) - No longer use
sudo
if already running as root. (@zmalltalker) - Run
brew
as the user that setup homebrew. (@havenwood)
- Second argument for
download
may be a directory. - Second argument for
extract
can be omitted. - Return an error if no md5 checksum is given to
verify
. extract
now recognizes.tgz
,.tbz
and.tbz2
extensions.apply_patches
now usespatch -d
to switch to the Ruby source directory before applying the patch. Allows--patch
to be given relative paths.
- Bumped
1.8.7
version to1.8.7-p374
. - Bumped
1.9.3
version to1.9.3-p448
. - Bumped
2.0.0
version to2.0.0-p247
. - Apply the
stdout-rouge-fix.patch
patch to Ruby 1.8.x. - Install RubyGems into Ruby 1.8.x.
- Added support for installing MagLev. (@havenwood)
- Added the
--url
option to specify an alternate URL for the Ruby archive. - Added the
--md5
option to specify an alternate MD5 checksum for the Ruby archive. - Added the
--no-download
option to use the previously downloaded Ruby archive. - Added the
--no-verify
option to disable verifying the downloaded Ruby archive. - Added the
--no-install-deps
option to bypass using the package manager. (Stefano Zanella) - Added the
--no-reinstall
option to prevent overwriting existing Ruby installs. (Stefano Zanella) - Allow
curl
to follow redirects. (Stefano Zanella) - No longer sync the package manager.
- Ensure that the parent of the installation directory exists (@havenwood).
- Set the default version to 2.0.0-p195.
- Fixed homebrew dependencies (thanks Jack Nagel).
- No longer install libffi, since Rubinius vendors their own version.
- Pass the paths to homebrew packages to
./configure
using the--with-opt-dir
option.
- Pass the paths to homebrew packages to
./configure
using the--with-opt-dir
option.
- Fixed typo in auto-detection of homebrew (Jack Nagel).
cd
into the extracted Ruby directory at the end of theextract_ruby
function. This allows the JRuby build script to overrideextract_ruby
and entirely skip the extract, configure and compile steps.
- Added a
setup.sh
script which installsruby-install
, then installs Ruby, JRuby and Rubinius.
- Fixed the
curl
command within thedownload
function (Greg Karékinian).
- Fixed multiple bugs where code was still using the old
$PACKAGE_MANAGER
variable instead of checking for specific package managers.
- Added
pacman
dependencies for building Rubinius on Arch Linux.
- Initial release:
- Supports installing arbitrary versions.
- Supports installing into
/opt/rubies/
for root and~/.rubies/
for users by default. - Supports installing into arbitrary directories.
- Supports applying arbitrary patches.
- Supports specifying arbitrary
./configure
options. - Supports downloading archives using
wget
orcurl
. - Supports verifying downloaded archives using
md5sum
ormd5
. - Supports installing build dependencies via the package manager: