20846: Update install docs to match `arvados-server install` recipe.
[arvados.git] / doc / _includes / _install_ruby_and_bundler.liquid
index fe7714c62feae18bd12fa6c85890ec7ba14182a3..f9330824988fe2050ebe39b2f64655b666b04fe1 100644 (file)
@@ -4,7 +4,7 @@ Copyright (C) The Arvados Authors. All rights reserved.
 SPDX-License-Identifier: CC-BY-SA-3.0
 {% endcomment %}
 
-Ruby 2.5 or newer is required.
+Ruby 2.6 or newer is required.
 
 * "Option 1: Install from packages":#packages
 * "Option 2: Install with RVM":#rvm
@@ -16,26 +16,35 @@ h2(#packages). Option 1: Install from packages
 Future versions of Arvados may require a newer version of Ruby than is packaged with your OS.  Using OS packages simplifies initial install, but may complicate upgrades that rely on a newer Ruby.  If this is a concern, we recommend using "RVM":#rvm.
 {% include 'notebox_end' %}
 
-h3. Centos 7
+h3. Alma/CentOS/Red Hat/Rocky
 
-The Ruby version shipped with Centos 7 is too old.  Use "RVM":#rvm to install Ruby 2.5 or later.
+The Ruby version shipped with version 7 of these distributions is too old.  Use "RVM":#rvm to install a newer version of Ruby (we recommend installing version 2.7 or newer).
+
+Ruby 2.7 is available in a module with version 8 of these distributions. You can install it by running:
+
+<notextile>
+<pre><code># <span class="userinput">dnf module enable ruby:2.7</span>
+# <span class="userinput">dnf install --enablerepo=devel ruby ruby-devel</span></code></pre>
+</notextile>
 
 h3. Debian and Ubuntu
 
-Debian 10 (buster) and Ubuntu 18.04 (bionic) and later ship with Ruby 2.5, which is supported by Arvados.
+Debian 10 (buster) and Ubuntu 18.04 (bionic) ship with Ruby 2.5, which is too old for Arvados. Use "RVM":#rvm to install a newer version of Ruby (we recommend installing version 2.7 or newer).
+
+Debian 11 (bullseye) and Ubuntu 20.04 (focal) and later ship with Ruby 2.7 or newer, which is sufficient for Arvados.
 
 <notextile>
-<pre><code># <span class="userinput">apt-get --no-install-recommends install ruby ruby-dev bundler</span></code></pre>
+<pre><code># <span class="userinput">apt-get --no-install-recommends install ruby ruby-dev</span></code></pre>
 </notextile>
 
 h2(#rvm). Option 2: Install with RVM
 
 h3. Install gpg and curl
 
-h4. Centos 7
+h4. Alma/CentOS/Red Hat/Rocky
 
 <pre>
-yum install gpg curl which
+dnf install gpg curl which
 </pre>
 
 h4. Debian and Ubuntu
@@ -44,34 +53,30 @@ h4. Debian and Ubuntu
 apt-get --no-install-recommends install gpg curl
 </pre>
 
-h3. Install RVM
+h3. Install RVM, Ruby and Bundler
 
 <notextile>
 <pre><code># <span class="userinput">gpg --keyserver pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
-\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.5
+\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.7
 </span></code></pre></notextile>
 
+This command installs the latest Ruby 2.7.x release, as well as the @gem@ and @bundle@ commands.
+
 To use Ruby installed from RVM, load it in an open shell like this:
 
 <notextile>
-<pre><code><span class="userinput">. /usr/local/rvm/scripts/rvm
+<pre><code><span class="userinput">source /usr/local/rvm/scripts/rvm
 </span></code></pre></notextile>
 
 Alternately you can use @rvm-exec@ (the first parameter is the ruby version to use, or "default"), for example:
 
 <notextile>
-<pre><code><span class="userinput">rvm-exec default rails console
+<pre><code><span class="userinput">rvm-exec default ruby -v
 </span></code></pre></notextile>
 
-Finally, install Bundler:
-
-<notextile>
-<pre><code>~$ <span class="userinput">gem install bundler</span>
-</code></pre></notextile>
-
 h2(#fromsource). Option 3: Install from source
 
-Install prerequisites for Debian 10:
+Install prerequisites for Debian 10, Ubuntu 18.04 and Ubuntu 20.04:
 
 <notextile>
 <pre><code><span class="userinput">sudo apt-get install \
@@ -80,34 +85,29 @@ Install prerequisites for Debian 10:
     libssl-dev libxslt1.1 zlib1g-dev
 </span></code></pre></notextile>
 
-Install prerequisites for CentOS 7:
+Install prerequisites for Alma/CentOS/Red Hat/Rocky:
 
 <notextile>
-<pre><code><span class="userinput">sudo yum install \
+<pre><code><span class="userinput">sudo dnf install \
     libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel \
     patch readline-devel zlib-devel libffi-devel openssl-devel \
     make automake libtool bison sqlite-devel tar
 </span></code></pre></notextile>
 
-Install prerequisites for Ubuntu 16.04:
-
-<notextile>
-<pre><code><span class="userinput">sudo apt-get install \
-    bison build-essential gettext libcurl3 \
-    libcurl3-openssl-dev libpcre3-dev libreadline-dev \
-    libssl-dev libxslt1.1 zlib1g-dev
-</span></code></pre></notextile>
-
 Build and install Ruby:
 
 <notextile>
 <pre><code><span class="userinput">mkdir -p ~/src
 cd ~/src
-curl -f http://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz | tar xz
-cd ruby-2.5.5
-./configure --disable-install-rdoc
-make
+curl -f https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz | tar xz
+cd ruby-3.2.2
+./configure --disable-install-static-library --enable-shared --disable-install-doc
+make -j8
 sudo make install
 
-sudo -i gem install bundler</span>
+# Make sure the post install script can find the gem and ruby executables
+sudo ln -s /usr/local/bin/gem /usr/bin/gem
+sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
+# Install bundler
+sudo -i gem install bundler --no-document</span>
 </code></pre></notextile>