Configurar o CentOS 5 para suporte ao Tornado no Python 2.6

A instalação do CentOS utilizada para escrever este post é resultado dos procedimentos publicados no post Como criar uma máquina virtual no servidor Xen Centos 5 e instalar o CentOS pela rede aqui mesmo na Compostagem Digital, portanto para ter uma instalação como esta de uma conferida nele.

A versão do Tornado da minha aplicação é a 2.1.1, que possui como pré-requisito o Python 2.6, item não disponível no CentOS 5.8 (Final), portanto o primeiro passo é instalar a versão Python requerida pela sua aplicação, eu fiz assim:

Adicionei o repositório EPEL à minha instalação

Em resumo, o Extra Packages for Enterprise Linux (ou EPEL) é um grupo de usuários Fedora com interesse especial que cria, mantém e gerencia um conjunto de pacotes adicionais de alta qualidade para “Enterprise Linux”, que pode ser usado no Red Hat Enterprise Linux (RHEL) e CentOS.

Adicionei o repositório EPEL à minha instalação CentOS com o seguinte comando:

rpm -ivh http://epel.gtdinternet.com/5/i386/epel-release-5-4.noarch.rpm

Opa!!! O comando acima falhou? Pode ser porque o pacote do EPEL tenha sido atualizado, caso tenha problemas, verifique ou baixe o arquivo no link http://epel.gtdinternet.com/5/i386/repoview/epel-release.html

Se não falhou, algo como o conteúdo abaixo deve ter sido exibido no seu terminal:

Obtendo http://epel.gtdinternet.com/5/i386/epel-release-5-4.noarch.rpm
aviso: /var/tmp/rpm-xfer.JEimUb: Cabeçalho V3 assinatura DSA: NOKEY, key ID 217521f6
Preparando...               ########################################### [100%]
   1:epel-release           ########################################### [100%]

Ok, tu já deves estar ansioso para instalar o Python 2.6 ou talvez não, mas eu já estou…

Segue o comando:

yum install python26

Se tudo correr bem, você deve estar visualizando algo como a tela a seguir:

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: centos.pop.com.br
 * epel: mirror.cogentco.com
 * extras: centos.pop.com.br
 * updates: centos.pop.com.br
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package python26.i386 0:2.6.8-1.el5 set to be updated
--> Processing Dependency: libpython2.6.so.1.0 for package: python26
--> Processing Dependency: libffi.so.5 for package: python26
--> Running transaction check
---> Package libffi.i386 0:3.0.5-1.el5 set to be updated
---> Package python26-libs.i386 0:2.6.8-1.el5 set to be updated
--> Finished Dependency Resolution
 
Dependencies Resolved
 
============================================================================================================
 Package                       Arch                 Version                      Repository            Size
============================================================================================================
Installing:
 python26                      i386                 2.6.8-1.el5                  epel                 6.5 M
Installing for dependencies:
 libffi                        i386                 3.0.5-1.el5                  epel                  21 k
 python26-libs                 i386                 2.6.8-1.el5                  epel                 670 k
 
Transaction Summary
============================================================================================================
Install       3 Package(s)
Upgrade       0 Package(s)
 
Total download size: 7.2 M
Is this ok [y/N]: y

Experimente responder “N” na pergunta acima pra tu ver onde vais chegar … lol !!! A lugar nenhum é claro e sinceramente, se respondeu “N” tu precisas confiar mais naquilo que faz … 🙂

Brincadeiras a parte, responda “y” para prosseguir com a instalação e uma “coisa” como esta abaixo deve ser exibida:

Downloading Packages:
(1/3): libffi-3.0.5-1.el5.i386.rpm                                                   |  21 kB     00:00     
(2/3): python26-libs-2.6.8-1.el5.i386.rpm                                            | 670 kB     00:01     
(3/3): python26-2.6.8-1.el5.i386.rpm                                                 | 6.5 MB     00:31     
------------------------------------------------------------------------------------------------------------
Total                                                                       212 kB/s | 7.2 MB     00:34     
aviso: rpmts_HdrFromFdno: Cabeçalho V4 assinatura DSA: NOKEY, key ID 217521f6
epel/gpgkey                                                                          | 1.7 kB     00:00     
Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y

Quantas perguntas, isto é Linux, sempre pergunta ao seu mestre (root) se pode ou não fazer algo.
Aqui o Yum está avisando que o “hash” de identificação dos pacotes para “Fedora EPEL” não está “instalado”, responda “y” para importar a GPG Key para concluir a instalação.

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libffi                                                                               1/3 
  Installing     : python26                                                                             2/3 
  Installing     : python26-libs                                                                        3/3 
 
Installed:
  python26.i386 0:2.6.8-1.el5                                                                               
 
Dependency Installed:
  libffi.i386 0:3.0.5-1.el5                         python26-libs.i386 0:2.6.8-1.el5                        
 
Complete!

Voilá, “Complete!” é uma boa resposta. Coisa linda!!!

Faça um teste do Python 2.6, simples assim, execute:

python26

Confira a versão do Python:

Python 2.6.8 (unknown, Apr 12 2012, 20:59:00) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

E depois faça qualquer “coisa”, só pra ter mais certeza ainda que está tudo bem:

>>> print "Quando escrevi este artigo estava olhando para o mar da janela do QG"
Quando escrevi este artigo estava olhando para o mar da janela do QG
>>>

Que bom, tudo parece estar bem.

Agora é a vez do Tornado, este é bem “facinho” de fazer.

Esse Python faz coisa!

Comece baixando a versão Tornado que tu precisas, faça uma visitinha no site do link abaixo e volte pra cá, estou te esperando:

https://github.com/facebook/tornado/downloads

Eu baixei a 2.1.1 pois como dito anteriormente é a versão pré-requisito para minha aplicação, se for baixar a mesma pode usar os comandos que seguem:

cd /usr/local/src/
wget https://github.com/downloads/facebook/tornado/tornado-2.1.1.tar.gz

É possível que tu estejas sem entender o porque do “cd /usr/local/src/”, a resposta é simples: É uma questão de organização, tu podes fazer sob o diretório que desejar.

Enquanto o download do Tornado ocorre, você deve estar visualizando algo como as linhas a seguir:

--2012-06-05 10:47:23--  https://github.com/downloads/facebook/tornado/tornado-2.1.1.tar.gz
Resolvendo github.com... 207.97.227.239
A conectar github.com|207.97.227.239|:443... conectado!
HTTP requisição enviada, aguardando resposta... 302 Found
Localização: http://cloud.github.com/downloads/facebook/tornado/tornado-2.1.1.tar.gz [seguinte]
--2012-06-05 10:47:24--  http://cloud.github.com/downloads/facebook/tornado/tornado-2.1.1.tar.gz
Resolvendo cloud.github.com... 205.251.223.23, 205.251.223.194, 205.251.223.154, ...
A conectar cloud.github.com|205.251.223.23|:80... conectado!
HTTP requisição enviada, aguardando resposta... 200 OK
Tamanho: 318796 (311K) [application/gzip]
A gravar em: 'tornado-2.1.1.tar.gz'
 
100%[==================================================================>] 318.796      304K/s   em 1,0s    
 
2012-06-05 10:47:25 (304 KB/s) - 'tornado-2.1.1.tar.gz' gravado [318796/318796]

Terminado o download, descompacte o arquivo tarball do Tornado:

tar zxvf tornado-2.1.1.tar.gz

Entre na pasta que tu acabou de descompactar:

cd tornado-2.1.1

E pronto, faça a instalação com o comando a seguir:

python26 setup.py install

Faça um teste bobão, tipo este.

Execute o Python 2.6:

python26

E depois tente fazer um import no Tornado:

>>> import tornado
>>>

Se nenhum erro foi mostrado no comando acima, sorria, pois está tudo pronto.

Lembrando que para executar suas aplicações Tornado é necessário usar a versão 2.6 do Python invés da 2.4 e para não quebrar nenhum outro programa da instalação padrão do CentOS resolvendo o problema ajustando links simbólicos, sugiro incluir/alterar o cabeçalho em todos os arquivos .py da sua aplicação Tornado, como segue:

#!/usr/bin/env python26

Após esta instalação, adicionei suporte ao Oracle no Python 2.6, coloquei os procedimentos desta alteração no post Tornado e cx_Oracle no Python 2.6 em CentOS 5 com Oracle Instant Client

Um comentário sobre “Configurar o CentOS 5 para suporte ao Tornado no Python 2.6”

Deixe uma resposta