Centos / RHEL5 come with Python v2.4.3, which was relased in 2006 and is as ancient as you can get nowdays. Even other application build scripts require Python >= 2.5 for building, e.g node.js & Spidermonkey 1.8.5. :|
This is my attempt at building a base Python distro that sits in
/opt/python-2.7.2. My goal is to minimize depending on the installed system developement libraries; As in Enterprise-y environments, ‘polluting’ the standard OS image will result in a visit from the XKCD GOTO Raptor.
tldr; This is the script I created to install Python.
To start, I installed Centos 5.2 with only the groups @core, @base and @development tools. A few Text-Based Internet utilities were also installed for convinience’s sake.
I then downloaded Python 2.7.2 and ran the standard configure-make-make install routine, and got this:
INFO: Can't locate Tcl/Tk libs and/or headers …Snipped... Python build finished, but the necessary bits to build these modules were not found: _bsddb _curses _curses_panel _sqlite3 _ssl _tkinter bsddb185 bz2 dbm dl gdbm imageop readline sunaudiodev zlib To find the necessary bits, look in setup.py in detect_modules() for the module's name. ….Snip…
FML, I knew this was the beginning of a journey into a rabbit hole.
This is the install sequence
sqlite bzip2 zlib openssl ncurses readline gdbm bsddb python
Some decisions I took:
Not installing the TCL/TK toolkit, as building tk requires X11 libraries which I didn’t install.
The end result was this:
Building dbm using bdb INFO: Can't locate Tcl/Tk libs and/or headers Python build finished, but the necessary bits to build these modules were not found: _tkinter bsddb185 dl imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name.
sunaudiodev is is for Sun platforms,
dl for 32bit platforms,
imageop is deprecated and
bsddb185 is undocumented.
What the script does:
* created a directory called
* Downloads the required libraries and compiles them in
* installs them all in
* Removing this should be as easy as
rm -rf /opt/python-2.7.2
If you wish to modify the install path, edit the
PREFIX option in the script.