## Usage rvm install {ruby-string} [--verify-downloads {0,1,2}] [--binary|--disable-binary|--movable] For a partial list of valid ruby strings please run rvm list known For MRI Rubies you may pass configuration parameters in one of two ways: rvm install 1.9.2 --with-iconv-dir=$HOME/.rvm --without-readline and/or rvm install 1.9.2 -C --with-iconv-dir=$HOME/.rvm,--without-readline To do dirty installation using the same sources use: rvm install --force 1.9.2 To do clean installation use: rvm reinstall 1.9.2 ## Fetching ruby package You can customize fetching ruby package (source or binary) process with following options: - `--quiet-curl` - make `curl` silent when fetching data - `--force` - remove old installation with sources and force install ## Architecture By default RVM will install 64-bit rubies, but you specify alternative using switches: - `--32` - install 32-bit rubies - `--64` - install 64-bit rubies (default) - `--universal` - install both (OSX only) - `--arch` | `--archflags` - architectures to install ## Binary rubies By default RVM will try to download binary ruby package instead of compiling. If such package is not available normal compilation will be performed. Using binary builds can significantly decrease ruby installation time. There are two options controlling binary rubies installation: - `--binary` - force binary installation, do not try to compile ruby. - `--disable-binary` - do not try binary ruby, always compile. More details about managing binary rubies can be found in `rvm help mount`. ## Installing from source If you installing ruby package by compiling it from source, you can pass additional configuration options: - `--reconfigure` - force `./configure` on install even if `Makefile` already exists - `--patch` - with MRI Rubies you may specify additional patches to apply before install - multiple patches should be comma separated `--patch a.patch[%prefix],b.patch` - `prefix` is an optional argument, which will be bypassed to the `-p` argument of the `patch` command and should be separated from patch file name with the `%` symbol. ### Compilation options - `--clang` - use clang for compilation (equivalent to `export CC=clang` + `export CXX=clang++`) - `--disable-llvm` | `--disable-jit` - disable LLVM - `--enable-llvm` | `--enable-jit` - enable LLVM - `--with-arch` - architecture flag for configure (e.g. i686, x86_64) - `-C` | `--configure` | `--` - custom configure options - multiple options can be specified, separated with comma - `--with-*` | `--without-*` - configure flags - `--enable-*` | `--disable-*` - configure flags - `-E` | `--env` - environment flags for configure - `-M` - custom make options #### .rvmrc equivalents - `--with-arch` `rvm_architectures` - `-C` `rvm_configure_flags` ... or per-ruby: `{jruby|ree|rbx|mruby|macruby|truffleruby}_configure_flags` - `-E` `rvm_configure_env` - `-M` `rvm_make_flags` - [none] `rvm_curl_flags`; default: --max-redirs 10 --max-time 1800 Note: these are not the only options passed to `configure` & `make`. rvm will add multiple options to each. See `RVMPATH/scripts/functions/{build_config,ruby,rubinius,requrements,pkg,...}` for details. A variable with multiple flags should be set using parentheses and space separators. E.g. .rvmrc for `brew`-based `readline`, `llvm`, and `openssl` libraries: ``` # warning: don't use \ linebreaks or it will break. rvm_configure_env=( LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix llvm)/lib -L$(brew --prefix openssl)/lib" CPPFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix llvm)/include -I$(brew --prefix openssl)/include" CXX=$(brew --prefix llvm)/bin/clang++ CC=$(brew --prefix llvm)/bin/clang ) rvm_archflags="-arch x86_64" ``` ### Package-specific options rbx & jruby: - `--1.8` | `--1.9` | `--2.0` | `--2.1` - use branch compatible with given MRI ruby version - `--18` | `--19` | `--20` | `--21` - same ree: - `--ree-options` - options passed directly to ree's `./installer` on the command line ### Compilation threads RVM by default will try to detect amount of CPU cores and use `-j `, specify your own `-j n` flag to RVM to override the default: rvm install 2.0.0 -j 50 # OR: rvm install 1.8.6 -j 1 ### Movable rubies It is possible to build a ruby that can be moved to other locations, renamed or even moved to other machine - as long as the system matches. This option works only for ruby **1.9.3**, ruby **1.9.2** supports this only on systems without `/usr/lib64`. More details about managing binary builds can be found in `rvm help mount`. ## Documentation - `--docs` - generate ri after installation (default) - `--rdoc` | `--yard` - type of docs to generate (default: rdoc) - `--no-docs` - disable ri after installation ## Additional settings - `--skip-gemsets` - skip the installation of default gemsets - `--bin` - path for binaries to be placed (default: `~/.rvm/bin/.`) - `-l` | `--level` - MRI ruby patch level - `--url` | `--repository` | `--repo` - git URL of repository to install from - `--branch` - branch to install from - `--tag` - tag to install from - `--sha` - SHA of commit to install from - `--trace` - add time, path, etc details to log - `--proxy` - proxy options to pass to curl for downloading packages ## Verification `--verify-downloads {0,1,2}` specifies verification level: - `0` - only verified allowed, - `1` - allow missing checksum, - `2` - allow failed checksum. Please see the documentation for further information: - https://rvm.io/rubies/installing/ - https://rvm.io/rubies/named/