Installing Puppet on Oracle Linux
We’ve been spending some time trying to setup our developer environment on a Oracle Linux 5.7 build and one of the first steps was to install Puppet as we’ve already created scripts which automate the installation of most things.
Unfortunately Oracle Linux builds don’t come with any yum repos configured so when you run the following command…
ls -alh /etc/yum.repos.d/
…you don’t see anything :(
We eventually realised that there are a list of public yum repositories on the Oracle website, of which we needed to download the definition for Oracle Linux 5 like so:
cd /etc/yum.repos.d wget http://public-yum.oracle.com/public-yum-el5.repo
We then need to edit that file to enable the appropriate repository. In this case we want to enable ol5_u7_base:
[ol5_u7_base] name=Oracle Linux $releasever - U7 - $basearch - base baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/7/base/$basearch/ gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5 gpgcheck=1 enabled=1
I made the mistake of enabling ol5_u5_base which led to us getting some really weird problems whereby yum got confused as to which version of libselinux we had installed and was therefore unable to install libselinux-ruby as its dependencies weren’t being properly satisfied.
Calling 'yum list installed' suggested that we had libselinux 18.104.22.168-7 installed but if we ran 'yum install libselinux' then it suggested we already had 22.214.171.124-5 installed. Very confusing!
After trying to uninstall and downgrade libselinux and pretty much destroying the installation in the process, another colleague spotted my mistake.
We also found that we had to add the epel repo which gave us access to some other packages that we needed:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
After all that was done we were able to run the command to install puppet:
yum install puppet
That installs puppet 2.6.12 as that’s the latest version in that repo. The latest stable version is 2.7.9 but I think we’ll need to hook up a puppet specific repo to get that working.