Last active
August 29, 2015 14:06
-
-
Save infertux/a5252bf8023f0a0e9380 to your computer and use it in GitHub Desktop.
Download, configure and install Ruby and Bundler on a Debian-family or Redhat-family fresh system
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -eu | |
# Download, configure and install Ruby and Bundler on a Debian-family or Redhat-family fresh system | |
# https://gist.github.com/infertux/a5252bf8023f0a0e9380 | |
RUBY="2.2.2" | |
SHA256="5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44" | |
# This runs as root on the server | |
[ $UID -eq 0 ] | |
set +u | |
[ -z "$TMUX" ] && { | |
echo "You might want to \`apt-get install tmux' and run $0 from there. Press CTRL-C to cancel and do this." | |
read | |
} | |
set -u | |
# Install Ruby and Bundler if we are on a vanilla system | |
command -v ruby >/dev/null || { | |
# wget: to fetch Ruby and pretty useful anyway | |
# gcc make: to compile Ruby | |
# zlib1g-dev libssl-dev libreadline-dev: libraries for Ruby | |
if [ -f /etc/debian_version ]; then | |
apt-get update | |
apt-get install wget gcc make zlib1g-dev libssl-dev libreadline-dev libffi-dev | |
elif [ -f /etc/redhat-release ]; then | |
yum install wget gcc make zlib-devel openssl-devel readline-devel | |
fi | |
cd /tmp | |
wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-${RUBY}.tar.gz | |
echo "${SHA256} ruby-${RUBY}.tar.gz" | sha256sum -c - | |
tar xf ruby-${RUBY}.tar.gz | |
cd ruby-${RUBY}/ | |
export CFLAGS=-fPIC # https://www.ruby-forum.com/topic/6654701 | |
./configure --disable-install-doc | |
cpus=$(cat /proc/cpuinfo | grep -c processor) | |
echo $cpus | grep -E '^[0-9]+$' | |
make -j $cpus | |
make install | |
rm -rf /tmp/ruby-${RUBY} | |
cd | |
ruby -v | |
} | |
command -v bundle >/dev/null || { | |
gem install bundler --verbose --no-document | |
bundle -v | |
} | |
echo "All good to go!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment