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.
