CentOS Bare Stack

Goals:

  • Strip an existing install of CentOS packages
  • Use CentOS development tools (gcc, make, autoconf, etc.)
  • Build AMP stack manually for future maintenance
  • Duplicate standard CentOS install locations (using /usr as prefix, etc.)

Minimal Install

Since it's more likely than not that you are starting with an existing CentOS install, the first place to begin is by stripping it down to its basics. There are some packages you'll want to download first to make sure you have access to fetch things from the Internet.

Here are some basics you should download the source files for before removing any packages:

  • openssl
  • elinks
  • screen
  • vim
  • dropbear
  • openssh
  • htop
Current Package Set

Get a list of the currently installed programs:

yum list installed | cut -d " " -f 1

Remove Packages

There is a list of “safe” packages that can be removed without affecting any existing LAMP systems:

yes N | yum remove `curl -s http://centos.digitaltrike.com/minimal/remove-packages/safe`

Base Packages

Need to reinstall:

  • sudo
  • vim
yes N | yum remove `curl -s http://centos.digitaltrike.com/minimal/remove-packages/base`
sudo

You will need the pam.d sudo file, since yum will remove it.

yum -y remove sudo
wget http://centos.digitaltrike.com/minimal/pam.d/sudo -O /etc/pam.d/sudo

You will also need to run visudo again to setup proper permissions.

Desktop Packages

Need to reinstall:

  • gd
  • ImageMagick
yes N | yum remove `curl -s http://centos.digitaltrike.com/minimal/remove-packages/desktop`

System Packages

yes N | yum remove `curl -s http://centos.digitaltrike.com/minimal/remove-packages/system`

Install Packages

First let's start with the base system, and the applications you are already familiar with. Install these from source:

  • htop
  • unfoo
  • vim
  • libpng
  • libjpeg
  • libgd
  • imagemagick

vim

Create a symlink when finished for CentOS compatability:

ln -s /usr/bin/vim /bin/vi

OpenSSL

You'll need to keep the OpenSSL libraries that are installed with CentOS to maintain the existing system. You can upgrade to the latest OpenSSL version and overwrite the old install, if desired.

OpenSSH

Install binary as needed, then download the pam.d and init.d files, and add the script to startup:

mkdir -p /var/empty/sshd/etc
chmod 0711 /var/empty/sshd
wget http://centos.digitaltrike.com/init.d/sshd -O /etc/init.d/sshd
chmod +x /etc/init.d/sshd
wget http://centos.digitaltrike.com/minimal/pam.d/sshd -O /etc/pam.d/sshd
chkconfig --add sshd
chkconfig sshd on

ImageMagick

You'll need some development libraries before installing:

CentOS packages:

yes N | yum install `curl -s http://centos.digitaltrike.com/minimal/install-packages/graphics`

Source libraries:

Once all the libraries are installed, you can install ImageMagick:

Apache

Safely remove Apache and related applications:

yes N | yum remove `curl -s http://centos.digitaltrike.com/minimal/remove-packages/httpd`

Apache comes with templates for directory layouts in config.layout. In this case, use –enable-layout=RedHat

ruby

Ruby is a little different, in that you cannot install it directly from the source code, because it requires a previous version of ruby installed to do that. You can, instead, use rvm to install it:

echo insecure >> ~/.curlrc
curl -L get.rvm.io | bash -s stable
gpasswd -a dtrike rvm
source /etc/profile.d/rvm.sh
rvm install 1.9.3