CentOS 5, Django a MySQL

V poslední době si pohrávám s pythoním webovým frameworkem Django a jal jsem se ho zkoušet na svém serveru s OS CentOS 5.5. Protože jsem od přírody lenoch, nechtělo se mi experimentovat s jinými databázemi než na serveru mám - skončil jsem u MySQL. Uznávám, ještě by šlo použít sqlite, ale já jsem přeci jen s tím MySQL nějak víc kamarád.

django logoPročetl jsem pár blogpostů a příspěvků o tom, že pod CentOSem je problém podporu MySQL pro python (MySQLdb) rozjet, protože balík z repozitářů (MySQL-python), který to má obstarávat je satršího data (v repozitářích je aktuálně verze 1.2.1-1) a že nejlepší je kompilace aktuálního balíku. Nene, jeden balík je tu ... schovaný.

V dokumentaci se dá vyčíst, že aktuální Django si rozumí s MySQLdb od verze 1.2.1p2 a výše. Gól. Jak jsem psal, jsem línej, takže hlídat (bezpečnostní) aktualizace různých programů a pravidelně je překompilovávat a testovat je nad moje (i časové) možnosti. Vítám tedy systém balíčků, na kterém součastné distribuce pracují. Nebudu dlouho napínat - správná verze balíku MySQL-python, který je potřeba pro správný chod, se nachází v oficiálním testovacím repozitáři distribuce CentOS. Pokud jste z ní nic neinstalovali, zde je jednoduchý postup:

V /etc/yum.repos.d vytvoříme nový soubor pojenovaný CentOS-Testing.repo a naplníme jej následovně:

# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to  CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not  guaranteed to function properly.
# These packages build and install, but are waiting for feedback from  testers as to
# functionality and stability. Packages in this repository will come and  go during the
# development period, so it should not be left enabled or used on  production systems without due
# consideration.

[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs= MySQL-python

Poslední řádek říká správci balíků (yum), ať z tohoto repozitáře používá jen a pouze vyjmenované balíky. V případě testovacího repozitáře je to rozumné (nachází se zde např. novější verze php, tak ať vás to při aktualizaci nepříjemně nepřekvapí).

Po uložení souboru Centos-Testing.repo stačí systém aktualizovat (v případě, že balík MySQL-python již máte instalovaný) nebo jej přímo nainstalovat:

yum -y update
#nebo 
yum install MySQL-python

Done. Hodně štěstí a zábavy.