Mantendo biblotecas

Resolvi instalar o html5lib no notebook, que roda Ubuntu. Só que, ao invés de utilizar o prático easy_install, resolvi seguir um outro caminho.

Isso porque o easy_install tem como custo da praticidade o entopimento do sys.path com cada egg instalado.

Antes que alguém pergunte o porque de não usar o apt-get, digo que nem todos as bibliotecas para python disponíveis no gutsy universe estão em sua última versão. No momento que eu escrevo, o pacote python-html5lib está na versão 0.9, enquanto a corrente é 0.10.

Utilizando o setuptools para criar pacotes .deb

Por isso, resolvi eu mesmo manter o html5lib na minha máquina. Como gerenciar pacotes é uma tarefa trabalhosa (principalmente para desfazer alguma coisa) e que não escala bem, decidi fazer isso de tal forma que eu pudesse utilizar o sistema de pacotes do Ubuntu ao meu favor.

Com isso, utilizei o setuptools para gerar um RPM e o alien para converter ele para DEB.

Em resumo:

$ unzip html5lib-0.10.zip
$ cd html5lib-0.10
$ sudo python setup.py bdist_rpm
$ cd dist
$ sudo alien -dvck html5lib-0.10-1.noarch.rpm
$ sudo dpkg -i html5lib_0.10-1_all.deb

Dessa forma, eu instalo e atualizo o pacote utilizando o dpkg, sempre utilizando a versão que eu quiser do html5lib, a partir do seu release.

__Utilizando código vivo, ao invés de releases __

No meu desktop eu costumo fazer um checkout do repositório das bibliotecas que me interessam (html5lib, feedparser) e criar um link simbólico para o diretório aonde elas deveriam ficar, dentro da estrutura de diretórios da instalacão do Python.

Alguma coisa como:

$ svn co http://html5lib.googlecode.com/svn/trunk/ html5lib
$ sudo ln -s `pwd`/html5lib/python/src/html5lib/ /usr/lib/python2.5/site-packages/html5lib

Com isso, basta um svn up sempre que desejado — por exemplo, em um cron job diário — para manter a árvore de código atualizada.

Ruby

Aparentemente, usar o rubygems para Ruby não gera esse tipo de problema, então eu uso o rubygems indiscriminadamente.

Rubistas de plantão, favor corrigir se e estiver errado.


Feed com os comentários desse post.

Deixe o seu comentário:






LSDR.net

Feeds: Posts, Comentários


© 2004 - 08, Luiz Rocha
(GPG key)

Todo conteúdo sob licenca Creative Commons by-sa, a não ser que explicitado.

As opiniões expressas nesse website não representam necessariamente a visão estratégica, as opiniões e posições do meu empregador, nem são endossadas pelo mesmo.

Caveat Lector


OpenID friendly website