-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathruby.bits
More file actions
70 lines (57 loc) · 1.49 KB
/
ruby.bits
File metadata and controls
70 lines (57 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
#-----------
# VARIABLES
#-----------
RUBY_VERSION=${RUBY_VERSION-2.5.3}
RUBY_MODE=${RUBY_MODE-bin}
LINUX_DISTRIBUTION=${LINUX_DISTRIBUTION-$(lsb_release -cs)}
#-----------
# HELPERS
#-----------
set_env()
{
KEY=$1
VAL=$2
echo "export $KEY=$VAL" >> $HOME/.bash_aliases
}
#-----------
# INSTALLER
#-----------
case $LINUX_DISTRIBUTION in
trusty)
LINUX_VERSION="14.04"
;;
xenial)
LINUX_VERSION="16.04"
;;
bionic)
LINUX_VERSION="18.04"
;;
*)
LINUX_VERSION="14.04"
;;
esac
if [[ "$RUBY_MODE" == "source" ]]; then
RUBYMM_VERSION=$(echo "$RUBY_VERSION" | sed "s/^\(.*\)\..*$/\1/")
(mkdir -p /opt/ruby && \
cd /opt/ruby && \
apt-get update && \
apt-get install -y wget g++ build-essential zlibc zlib1g zlib1g-dev \
bison openssl libreadline6 libreadline6-dev libssl-dev libyaml-dev \
libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev && \
wget https://cache.ruby-lang.org/pub/ruby/${RUBYMM_VERSION}/ruby-${RUBY_VERSION}.tar.gz && \
tar zxf ruby-${RUBY_VERSION}.tar.gz && \
cd /opt/ruby/ruby-${RUBY_VERSION} && \
./configure && \
make && \
make install)
else
(mkdir -p /opt/ruby && \
cd /opt/ruby && \
apt-get update && \
apt-get install -y wget g++ build-essential && \
wget http://rubies.travis-ci.org/ubuntu/${LINUX_VERSION}/x86_64/ruby-${RUBY_VERSION}.tar.bz2 && \
tar xfj ruby-${RUBY_VERSION}.tar.bz2)
fi
set_env PATH "/opt/ruby/ruby-${RUBY_VERSION}/bin:\$PATH"
source $HOME/.bash_aliases