#! /bin/bash SCRIPT_NAME="Ruby Install" VERSION="1.1.7" . /usr/src/k_framework/main.sh k_start k_detect_os #------VARIABLES------------- #----- FUNCTIONS ------------ ruby_installed() { # Returns: # 0 - OK, ruby is present # 1 - Failed, required version ruby is not present local ruby_version="$1" source "/usr/local/rvm/scripts/rvm" # check if ruby is already present if rvm list 2> /dev/null | grep -Fq "$ruby_version"; then return 0 else return 1 fi } install_ruby_via_rvm() { # About: This function installs required Ruby version with requested patch level via RVM. It also creates a gemset according to MOR version # # Arguments: # 1 - ruby_version # 2 - path_level # 3 - gemset version to create local RUBY_VERSION="$1" local RUBY_PATCH_LEVEL="$2" local GEMSET_VERSION="$3" if ! rpm -qa | grep -q epel-release; then yum install -y epel-release fi if [ ! -f /etc/yum.repos.d/epel.repo ]; then report "Failed to install epel repo. You can install epel using yum install -y epel-release or manually using rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm" 1 k_exit 1 fi yum --enablerepo=epel install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison libxslt-devel rvm reload rvm autolibs enable if [[ $centos_version == 7 ]]; then sed -i 's/bundler/bundler -v=1.17.3/g' /usr/local/rvm/gemsets/global.gems sed -i 's/rubygems-bundler -v=1.17.3/rubygems-bundler/g' /usr/local/rvm/gemsets/global.gems fi rvm install $RUBY_VERSION-$RUBY_PATCH_LEVEL --verify-downloads 1 # --movable SSL no longer compiles with this option if [ "$?" == "0" ]; then report "Successfully installed Ruby $RUBY_VERSION-$RUBY_PATCH_LEVEL" 4 rvm ruby-$RUBY_VERSION-$RUBY_PATCH_LEVEL do rvm gemset create $GEMSET_VERSION rvm alias create default ruby-$RUBY_VERSION-$RUBY_PATCH_LEVEL@$GEMSET_VERSION #1.9.3 here - RVM version. 12 - gemset version rvm --default use $RUBY_VERSION # set as default version #exec su -l $USER # Reload a Linux user's group assignments without logging out to reach ruby command # If /usr/bin/ruby ruby is not a symlink, this means it was installed from yum, do not remove it # Otherwise symlink to /usr/bin/ruby to rvm ruby if [[ -L /usr/bin/ruby || ! -e /usr/bin/ruby ]]; then rm -fr /usr/bin/ruby # delete old symlink if such present ln -s /usr/local/rvm/rubies/$RUBY_VERSION/bin/ruby /usr/bin/ruby # some scripts use /usr/bin/ruby fi else report "Failed to install Ruby $RUBY_VERSION-$RUBY_PATCH_LEVEL" 1 EXIT_CODE=1 fi } #--------MAIN ------------- if [[ $centos_version == 7 ]]; then ruby_installed ruby-2.2.2 if [ "$?" != "0" ]; then install_ruby_via_rvm "2.2.2" "" "" fi if ! rvm list | grep -Fq 2.2.2; then report "ERROR: Ruby not installed" 1 EXIT_CODE=1 else report "Ruby installed, uninstalling old Ruby version" 3 rvm uninstall ruby-2.0.0 rvm uninstall ruby-2.1.2 fi if [ ! -L /usr/local/bin/bundle ]; then k_symlink_create /usr/local/rvm/gems/ruby-2.2.2/wrappers/bundle /usr/local/bin/bundle fi elif [[ $ROCKY9 == 1 ]]; then VER="3.2.2" source /etc/profile.d/rvm.sh rvm reload rvm requirements rvm install ruby 3.2.2 rvm use $VER --default #ruby_installed ruby-$VER #if [ "$?" != "0" ]; then # install_ruby_via_rvm "$VER" "" "" #fi if [ `rvm list | grep $VER | wc -l` = "0" ]; then report "ERROR: Ruby $VER not installed" 1 EXIT_CODE=1 else report "Ruby $VER installed" 3 rvm use $VER --default rvm uninstall ruby-2.0.0 fi if [ ! -L /usr/local/bin/bundle ]; then k_symlink_create /usr/local/rvm/gems/ruby-3.2.2/wrappers/bundle /usr/local/bin/bundle fi fi ruby -v k_exit $EXIT_CODE