読者です 読者をやめる 読者になる 読者になる

CentOS5にTornadoとpycurlをインストールする

Tornadoが公開され一段と盛り上がりを見せつつあるPython界隈ですが、このビッグウェーブに乗らない手は無いのでTornadoをインストールしてみます。
Tornadoのインストール自体は簡単で、概要 — Tornado v0.2 documentationにある通りに進めれば終了です。ただし問題が一つだけあります

Tornadoのすべての機能を使用するためには、 PycURL と simplejson などのJSONライブラリをインストールする必要があります

どうやらpycurlをインストールする必要がありそう。simplejsonはpython2.6だとjsonとして入ってるから大丈夫だろうってことで、pycurlだけいつもどおりeasy_installで入れてみる

$ sudo easy_install pycurl

とやると、大量のエラーが。適当に眺めてみると以下のような文が

src/pycurl.c:61:4: error: #error "Need libcurl version 7.19.0 or greater to compile pycurl."

ふむふむ、どうやらlibcurlのバージョンが悪いらしい。yumでどのバージョンが入ってるのか確認

$ yum list installed | grep curl
curl.i386                         7.15.5-2.el5                         installed
curl.x86_64                       7.15.5-2.el5                         installed
curl-devel.i386                   7.15.5-2.el5                         installed
curl-devel.x86_64                 7.15.5-2.el5                         installed

なんか色々入ってたけど、とりあえずバージョンが古い事はわかった。yumだとこれ以上新しいバージョンが入らないっぽいので、結局ソースから入れるのが良さそう
とりあえずyumで入れたcurlを削除

$ sudo yum remove curl
Removing:
 curl                           i386                     7.15.5-2.el5                   installed                   463 k
 curl                           x86_64                   7.15.5-2.el5                   installed                   471 k
Removing for dependencies:
 curl-devel                     i386                     7.15.5-2.el5                   installed                   637 k
 curl-devel                     x86_64                   7.15.5-2.el5                   installed                   743 k
 gnupg                          x86_64                   1.4.5-13                       installed                   4.4 M
 spamassassin                   x86_64                   3.2.4-1.el5                    installed                   2.6 M

依存関係で何か変なのも消えるけど、大丈夫だよね?
無事に削除できたら、今度はlibcurlのソースを落として来る。rpmとかあるように見えるけどやっぱりソースからだろ、JK
libcurlはから落として来る
以下手順

$ wget http://curl.haxx.se/download/curl-7.19.6.tar.gz
$ tar xvzf curl-7.19.6.tar.gz
$ cd curl-7.19.6
$ ./configure --enable-http --enable-ipv6 --enable-nonblocking --enable-thread --enable-cookie --enable-crypto-auth --with-ssl
$ make
$ sudo make install

configureのオプションは超適当です。よさげなHTTPライブラリ - libcurl - にたまごほうれん草を参考にした
というわけでlibcurlのバージョンがあがったので、pycurlをインストールしてみると無事にインストールできました。
これでTornadoが試せるんだぜ!