Solução do erro No module named cElementTree Error no Cent’OS

E ai pessoal, beleza?

Esta sema enfrentei um terrível problema, após executar atualizar o sistema (Cent’OS 5.4), fui instalar um pacote qualquer pelo yum e dei de cara com a mensagem:

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named cElementTree

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.4.3 (#1, Sep  3 2009, 15:37:12)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)]

If you cannot solve this problem yourself, please go to
the yum faq at:

http://wiki.linux.duke.edu/YumFaq

Antes de pensar em uma possível solução, vamos mapear os últimos eventos relacionados com pacotes no sistema:

  1. Adicionei os repositórios “remi, epel e rpm-forge”
  2. Atualizei o sistema
  3. o YUM pára de funcionar

Até o ponto 2, tudo foi feito a partir do yum, isto significa dizer que o erro está relacionado com o evento mais próximo ao erro.

Para saber o que pode ter acontecido, vamos aos logs do yum e tentar encontrar o que ocorreu na última vez que o mesmo foi executado com sucesso que poderia causar o dito cujo erro:  “No module named cElementTree“:

<BASH> code | Pure Source
  1. cat /var/log/yum

Pode parecer coincidencia mas no final do arquivo, ou melhor, na última linha, veja o que encontrei:  “Apr 05 22:59:28 Updated: python-elementtree-1.2.6-7.fc3.rf.i386“, nada mais nada menos dizendo que dita cuja “elementtree” foi atualizada.

Se isto parece está relacionado com o nosso problema, que tal fazer um downgrade da mesma?

Fazendo o downgrade do pacote python-elementtree

Crie um arquivo chamado “erro-yum-elementtree.sh” em um diretório qualquer.

<BASH> code | Pure Source
  1. vim ~/erro-yum-elementtree.sh

Coloque o código abaixo no arquivo:

<BASH> code | Pure Source
  1. #!/bin/sh
  2. #-----------------------------------------------------------------------------#
  3. # Description: Resolvendo o erro "No module named cElementTree" do YUM #
  4. # #
  5. # Este script volta a versão do pacote python-elementtree para a #
  6. # versão oficial do CentOS 5.4 e bloqueia a atualização do mesmo #
  7. # pelo YUM. #
  8. # #
  9. # Author: Moisés P. Sena #
  10. # Author Link: http://www.moisespsena.com #
  11. # Link: http://linux.moisespsena.com #
  12. # Font: http://linux.moisespsena.com/ #
  13. # solucao-do-erro-no-module-named-celementtree-centos #
  14. #-----------------------------------------------------------------------------#
  15.  
  16. # identificar se a arquitetura do sistema
  17. arch=$(arch | grep x86_64)
  18. arch=${arch:-i386}
  19.  
  20. # fazer o downgrade do pacote
  21. rpm -Uvh --oldpackage "http://mirror.centos.org/centos-5/5.4/os/$arch/CentOS/python-elementtree-1.2.6-5.$arch.rpm"
  22.  
  23. # bloquear a atualização do pacote python-elementtree
  24. yumexclude=$(cat /etc/yum.conf | grep "^exclude=")
  25.  
  26. if [ "$yumexclude" = '' ];
  27. then
  28. echo "
  29. exclude=python-elementtre*
  30. " >> /etc/yum.conf
  31. else
  32. sed -e 's/^exclude=/exclude=python-elementtre\* /g' /etc/yum.conf > /tmp/yum.conf
  33. mv -f /tmp/yum.conf /etc/yum.conf
  34. fi

Salve o arquivo e feche o editor: pressione ESC, digite “:wq”.

Considerando que você está logado com permissões de root, execute o arquivo

<BASH> code | Pure Source
  1. sh ~/erro-yum-elementtree.sh

Bom pessoal, é isto aí, espero ter contribuído.

Fiquem com Deus.

Posted in Cent'OS, Linux geral at abril 17th, 2010. 4 Comments.