wiki:SystemNotesScientificLinux

Scientific Linux 6.3 Install Notes

This page describes a setup of BIND 10 on Scientific Linux 6.3, using the beta tarball on 2011-12-21.

These notes are quite dated. Keep in mind that many things have changed since they were created. In particular, Kea does not require python3 or SQLite. It can also use either OpenSSL or Botan, so Botan is no longer a strict dependency.

Introduction and System Description

2 servers were used to accomplish this process, 1 development server used for building and packaging purposes and one for bind10 testing. The Servers used were a VMware and KVM based virtual machines, in 64-bit mode. The installation was started from Scientific Linux "boot" install ISO:

http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/iso/SL-63-x86_64-2012-08-02-boot.iso [200M]

If you do not have a fast internet connection or planning to deploy offline, you may try the complete ISO images available at:

http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/iso/SL-63-x86_64-2012-08-02-Everything-DVD1.iso [4.2G]

In my lab I setup a bare minimum system and install the dependencies afterwards, you can see a screencast of this process at:

http://www.sc.eso.org/~bkublik/sl_6.2_inst.ogv

Development System Setup of Packaged Prerequisites

I installed the "Development Tools" group, plus Boost and the SQLite libs via yum:

yum groupinstall development
yum install bc boost boost-devel sqlite-devel

Development System Setup of Other Prerequisites

Scientific Linux 6.x comes with Python 2.6.6 and does not seem to have any Python 3 available. In addition the following Libraries are not shipped with Scientific Linux and required for Bind 10:

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel xz-devel tk-devel xorg-x11-server-devel log4cplus-devel gmp-devel libffi-devel ncurses-devel boost-devel

Instead of just compiling everything, i opt for creating RPMS packages of the libraries so it would be easier to install/uninstall/update and deploy more systems.

The latest version of the spec files for the RPM packages can be found at:

NOTE: for each package i've prepared, i create its own directory with the rpmbuild directory structure, so RPMS, SRPMS, SOURCES, and SPECS directory containing the source code used, src.rpm and rpm files in addition to the specs files shown above.

The building procedure is the same for all packages, although they have to be created in a ordered way, since some packages depends on the previous ones to be built and installed.

Development System Packages Building

log4cplus

  • download the spec file to create the rpm package
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/log4cplus/SPECS/log4cplus.spec"
    
  • create the bare minumum structure for rpmbuild and copy the files in their respective directory:
    mkdir -p ~/rpmbuild/{SOURCES,SPECS}
    
    mv log4cplus.spec ~/rpmbuild/SPECS/
    mv log4cplus-1.1.1-rc1.tar.gz ~/rpmbuild/SOURCES/
    
  • Now it's time to create the rpm package:
    cd ~/rpmbuild/SPECS/
    rpmbuild -ba log4cplus.spec
    
  • Install log4cplus as this is a dependency for the next package to build:
    rpm -ivh ../RPMS/*/log4cplus*.rpm
    

python3

  • download the spec file to create the rpm package
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SPECS/python3.spec"
    
  • Download additional patches and scripts
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/Python-3.0b1-record-rpm.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/Python-3.3.0b2-multilib.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/macros.python3.py"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.2.3rc2-pypirc-secure.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.2b2-buildtime-generate.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.3.0b1-curses-panel.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.3.0b1-fix_date_time_compiler.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.3.0b1-localpath.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python-3.3.0b1-test-posix_fadvise.patch"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python3.csh"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python3.sh"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SOURCES/python3start"
    
  • Copy the files in their respective directory:
    mv python3.spec ~/rpmbuild/SPECS/
    mv *ython*3* ~/rpmbuild/SOURCES/
    
  • Now it's time to create the rpm package:
    cd ~/rpmbuild/SPECS/
    rpmbuild -ba python3.spec
    
  • Install python3 as this is a dependency for the next packages to build:
    rpm -ivh ../RPMS/*/*python*.rpm
    

python3-setproctitle

  • download the source code from http://pypi.python.org/packages/source/s/setproctitle/ , i use 1.1.6.
    curl -O "http://pypi.python.org/packages/source/s/setproctitle/setproctitle-1.1.6.tar.gz"
    
  • download the spec file to create the rpm package
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/python3/SPECS/python3-setproctitle.spec"
    
  • Copy the files in their respective directory:
    mv python3-setproctitle.spec ~/rpmbuild/SPECS/
    mv setproctitle-1.1.6.tar.gz ~/rpmbuild/SOURCES/
    
  • Now it's time to create the rpm package:
    cd ~/rpmbuild/SPECS/
    rpmbuild -ba python3-setproctitle.spec
    
  • Install python3-setproctitle as this is a dependency for the next packages to build:
    rpm -ivh ../RPMS/*/*python*setproctitle*.rpm
    

botan

  • download the source code from http://botan.randombit.net/download.html , i use 1.8.14.
    curl -O "http://botan.randombit.net/files/Botan-1.8.14.tgz"
    
  • download the spec file to create the rpm package
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/botan/SPECS/botan.spec"
    
  • Download additional patches and README
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/botan/SOURCES/README.fedora"
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/botan/SOURCES/botan-1.8.14-soname.patch"
    
  • Copy the files in their respective directory:
    mv botan.spec ~/rpmbuild/SPECS/
    mv README.fedora botan-1.8.14-soname.patch ~/rpmbuild/SOURCES/
    
  • Now it's time to create the rpm package:
    cd ~/rpmbuild/SPECS/
    rpmbuild -ba botan.spec
    
  • Install botan as this is a dependency for the next packages to build:
    rpm -ivh ../RPMS/*/botan-1.8.14*.rpm ../RPMS/*/botan-devel*.rpm
    

bind10

  • download the spec file to create the rpm package
    curl -O "http://www.sc.eso.org/~bkublik/BIND10/bind10/SPECS/bind10-beta.spec"
    
  • download additional script and configuration file
    curl -O http://www.sc.eso.org/~bkublik/BIND10/bind10/SOURCES/named.init
    curl -O http://www.sc.eso.org/~bkublik/BIND10/bind10/SOURCES/named.sysconfig
    
  • Copy the files in their respective directory:
    mv bind10-beta.spec ~/rpmbuild/SPECS/
    mv bind10-1.0.0-beta.tar.gz named.init named.sysconfig ~/rpmbuild/SOURCES/
    
  • Now it's time to create the rpm package:
    cd ~/rpmbuild/SPECS/
    rpmbuild -ba bind10-beta.spec
    

NOTE: please take into consideration that the init script provided above does not work properly, it does not give back the tty where its launched from.

Development System YUM Repository

Optionally you could create a yum repository for the packages you just build, so they can be easily installed with yum and resolve any dependency without major efforts on your test system.

To install and configure a production ready web server is outside of the scope of this document, this only intend to provide a fast and easy way to deploy your rpms within your lab environment.

  • Install required software
    yum install httpd createrepo
    
  • copy the rpm files to a directory readable by your web server:
    cp -r ~/rpmbuild/RPMS /var/www/html/
    
  • create a repository for your packages
    cd /var/www/html
    createrepo $(pwd)
    
  • in case you cannot see the RPM directory by browsing http://IP_OF_YOUR_DEV_SYSTEM/RPMS/, you should check your firewall and selinux settings, or you run the quick and dirty steps below
    restorecon -Rv /var/www/
    iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    

Bind10 System Setup

Install a clean system for your testing. http://www.sc.eso.org/~bkublik/sl_6.2_inst.ogv

Bind10 Building and Installing

Copy all the RPMS files from your development system back to the "bind10 test" server, and install the packages with yum

scp ~/rpmbuild/RPMS/*/*.rpm user@bind10-server:/tmp/
yum localinstall /tmp/*.rpm

optionally if you setup your yum repository, create the yum repo file on your bind10 server as follows:

echo -ne "[bind10]\nname=Bind10 for Scientific Linux 6.3\nbaseurl=http://IP_OF_YOUR_DEV_SYSTEM/RPMS/\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/bind10.repo
yum clean all
yum install botan bind10 python3-setproctitle python3 log4cplus

Notes on Running

Its recommended to avoid the use of the init script provided above until its fixed, you can launch the server manually by issuing:

/etc/init.d/named start

this will not give back the tty, so you should kill it in a different one by issuing

/etc/init.d/named stop

Additional Notes

I've setup a yum repository with the packages i've built, this should be considered as testing packages only, not production ready, but if you still want to use them, feel free, although there is no warranty at all that they will work on your system.

  • /etc/yum.repos.d/bind10.repo
    [bind10]
    name=Bind10 for Scientific Linux 6.3
    baseurl=http://www.sc.eso.org/~bkublik/BIND10/
    gpgcheck=0
    enabled=1
    
Last modified 3 years ago Last modified on Dec 3, 2014, 5:59:19 PM

Attachments (20)

Download all attachments as: .zip