Skip to content

Instantly share code, notes, and snippets.

@jimjeffers
Created June 23, 2010 18:35
Show Gist options
  • Save jimjeffers/450334 to your computer and use it in GitHub Desktop.
Save jimjeffers/450334 to your computer and use it in GitHub Desktop.
Ruby from Source
# Pre-reqs
sudo apt-get -y install libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline5-dev zlib1g-dev
# Install ruby 1.9.2 -p290
sudo mkdir /usr/local/src
cd /usr/local/src
sudo curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
sudo tar xzvf ruby-1.9.2-p290.tar.gz
cd ruby-1.9.2-p290
sudo ./configure --prefix=/usr/local
sudo make && sudo make install
# cd ext/zlib
# ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
# cd ../../
# sudo make
# sudo make install
# cd /usr/local/src/ruby-1.9.2-p290/ext/readline
# sudo ruby extconf.rb
# sudo make
# sudo make install
# Symlink current build to path.
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/bin/erb /usr/bin/erb
sudo ln -s /usr/local/bin/irb /usr/bin/irb
sudo ln -s /usr/local/bin/ri /usr/bin/ri
sudo ln -s /usr/local/bin/rdoc /usr/bin/rdoc
sudo ln -s /usr/local/bin/testrb /usr/bin/testrb
# Install ruby gems.
# cd /usr/local/src
# sudo wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
# sudo tar xzvf rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# sudo ruby setup.rb
# Install rake.
sudo gem install rake --no-rdoc --no-ri
sudo gem install rails -v=2.3.5 --no-rdoc --no-ri
# Install passenger.
sudo gem install passenger --no-rdoc --no-ri
# Pre-reqs
sudo apt-get -y install libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline5-dev zlib1g-dev
sudo mkdir /usr/local/src
# Install libyaml
cd /usr/local/src
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar xzvf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure --prefix=/usr/local
make
make install
# Install ruby 1.9.3 -p0
cd /usr/local/src
sudo curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
sudo tar xzvf ruby-1.9.3-p0.tar.gz
cd ruby-1.9.3-p0
sudo ./configure --prefix=/usr/local
sudo make && sudo make install
# cd ext/zlib
# ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
# cd ../../
# sudo make
# sudo make install
# cd /usr/local/src/ruby-1.9.3/ext/readline
# sudo ruby extconf.rb
# sudo make
# sudo make install
# Symlink current build to path.
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/bin/erb /usr/bin/erb
sudo ln -s /usr/local/bin/irb /usr/bin/irb
sudo ln -s /usr/local/bin/ri /usr/bin/ri
sudo ln -s /usr/local/bin/rdoc /usr/bin/rdoc
sudo ln -s /usr/local/bin/testrb /usr/bin/testrb
# Install rake.
sudo gem install rake --no-rdoc --no-ri
sudo gem install bundler --no-rdoc --no-ri
# Install passenger.
sudo gem install passenger --no-rdoc --no-ri
# Install ruby 1.8.7 -p299
sudo mkdir /usr/local/src
cd /usr/local/src
sudo curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p299.tar.gz
sudo tar xzvf ruby-1.8.7-p299.tar.gz
cd ruby-1.8.7-p299
sudo ./configure --enable-shared --enable-pthread
sudo make
sudo make install
cd ext/zlib
ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
cd ../../
sudo make
sudo make install
sudo yum install readline-devel
cd /usr/local/src/ruby-1.8.7-p299/ext/readline
sudo ruby extconf.rb
sudo make
sudo make install
# Uninstall outdated 1.8.5 install.
sudo yum erase ruby ruby-devel ruby-irb ruby-rdoc ruby-ri
# Symlink current build to path.
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/bin/erb /usr/bin/erb
sudo ln -s /usr/local/bin/irb /usr/bin/irb
sudo ln -s /usr/local/bin/ri /usr/bin/ri
sudo ln -s /usr/local/bin/rdoc /usr/bin/rdoc
sudo ln -s /usr/local/bin/testrb /usr/bin/testrb
# Install ruby gems.
cd /usr/local/src
sudo wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
sudo tar xzvf rubygems-1.3.7.tgz
cd rubygems-1.3.7
sudo ruby setup.rb
# Install rake.
sudo gem install rake --no-rdoc --no-ri
sudo gem install rails -v=2.3.5 --no-rdoc --no-ri
# Install passenger.
sudo gem install passenger --no-rdoc --no-ri
# Get apache developer utilities if not already installed.
sudo yum install httpd-devel apr-devel apr-util-devel
# Build the passenger extension.
sudo passenger-install-apache2-module
# Add passenger configuration to conf.
sudo nano /etc/httpd/conf/httpd.conf
# WOW - ok installing imagemagick/rmagick is a pain in the ass on CentOS
# We need to install MS Core Fonts - see the following links for references:
# 1. http://corefonts.sourceforge.net/
# 2. http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
# 3. http://stackoverflow.com/questions/1254366/problem-installing-rmagick-rubygem-on-centos-5
cd ~
sudo yum install rpm-build redhat-rpm-config
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
wget http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec
rpmbuild -bb msttcorefonts-2.0-1.spec
sudo rpm -ivh /usr/src/redhat/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
sudo ln -s /usr/share/fonts/msttcorefonts/ /usr/share/fonts/default/TrueType
# We need to install 1.15.17 as this is the only version compatible with our OS distro of
# CentOS.
sudo gem install rmagick -v=1.15.17 --no-rdoc --no-ri
# Restart apache:
sudo /etc/init.d/httpd restart
# Alternate half
# --------------------------------------------------------
# On production we still need to do the following:
# Uninstall outdated 1.8.5 install.
sudo yum erase ruby ruby-devel ruby-irb ruby-rdoc ruby-ri
# Symlink current build to path.
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/bin/erb /usr/bin/erb
sudo ln -s /usr/local/bin/irb /usr/bin/irb
sudo ln -s /usr/local/bin/ri /usr/bin/ri
sudo ln -s /usr/local/bin/rdoc /usr/bin/rdoc
sudo ln -s /usr/local/bin/testrb /usr/bin/testrb
# Install ruby gems.
cd /usr/local/src/rubygems-1.3.7
sudo ruby setup.rb
# Install rake.
sudo gem install rake --no-rdoc --no-ri
sudo gem install rails -v=2.3.5 --no-rdoc --no-ri
sudo gem install bundler --no-rdoc --no-ri
# Install passenger.
sudo gem install passenger --no-rdoc --no-ri
# Build the passenger extension.
sudo passenger-install-apache2-module
# Add passenger configuration to conf.
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.snapshot.2
sudo rm /etc/httpd/conf/httpd.conf
sudo cp /etc/httpd/conf/httpd.conf.passenger /etc/httpd/conf/httpd.conf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment