Como executar o seu servidor PyPI pessoal
Tradução livre do artigo 'how to run your own private PyPI (Cheeseshop) server' http://tarekziade.wordpress.com/2008/03/20/how-to-run-your-own-private-pypi-cheeseshop-server/
Como executar o seu servidor PyPI (Cheeseshop) pessoal
O PloneSoftwareCenter 1.5 apesar de não ter sido lançado, está sendo fortemente desenvolvido, e a versão atual do trunk está funcionando bem para usar como um servidor semelhante ao PyPI. Ele pode ser realmente útil para empresas que desenvolvem softwares Python e estão buscando uma forma de centralizar seus eggs internamente. É o que usamos atualmente na Ingeniweb para trabalhar em projetos de clientes.
Esse tutorial explica como configurar um servidor PloneSoftwareCenter, se você quer ser um early-adopter do que será a próxima versão em execução do software center do plone.org em alguns meses (mas esse código deve ser usado por seu próprio risco, é claro ;))
Porque um PyPI particular?
Você tem alguns pacotes python que você quer tratar da mesma forma que o Cheeseshop faz. Em outras palavras, você quer trabalhar com eles com easy_install, zc.buildout, etc..
Mas esses pacotes são privados da sua empresa…
O modo mais simples é salvar seus eggs em algum lugar compartilhado. Mas distutils e setuptools fornecem um conjunto interessante de comandos para construir e enviar eggs automaticamente para o PyPI ou qualquer servidor que implemente as apis do PyPI.
Como? PloneSoftwareCenter!
A comunidade Plone fornece uma ferramenta interessante para gerenciar pacotes Python, e que é compatível com o PyPI. Em outras palavras, ele pode agir como o Cheesehop para interagir com suas ferramentas de linha de comando.
Ele também fornece um conjunto extensivo de features para gerenciar seus releases, executar seus bug trackers, etc.
Veja a seção de produtos do plone.org, ele usa o PSC.
4 passos para a instalação
Graças ao zc.buildout, consigurar um Plone Software Center é realmente fácil. Ainda não existem binários disponíveis, então você precisa compilar algumas coisas.
Passo 1 - Pré-requisitos
Se você está no, Windows, baixe o arquivo: http://release.ingeniweb.com/third-party-dist/python2.4.4-win32.zip, descompacte-o e execute o “install.bat”. Ele vai instalar o Python 2.4 junto com um conjunto de ferramentas e irá atualizar o PATH
Se você está no Linux, assegure-se de ter o gcc, subversion e make instalados. Então, instale o easy_install e o PIL, assim:
$ wget http://peak.telecommunity.com/dist/ez_setup.py $ python ez_setup.py $ easy_install http://release.ingeniweb.com/third-party-dist/PILwoTk-1.1.6.4.tar.gz
Passo 2 - instalando o PSC
- Crie um diretório no seu sistema chamando softwarecenter
- Obtenho o cóigo do PSC usando o subversion:
$ svn co http://svn.plone.org/svn/collective/Products.PloneSoftwareCenter/buildout/trunk .
- Execute o buildout com esse conjunto de comandos:
$ python bootstrap.py
$ bin/buildout
- Vai levar algum tempo para trazer todos os elementos necessários para executar o PSC.
- Execute o servidor
$ bin/instance start
Passo 3 - configurando o PSC
Vamos criar um website Plone com uma instância do PloneSoftwareCenter:
-
Abra um navegador e vá para http://localhost:8080/manage. O login e senha são admin/admin.
- Na parte direita há uma combobox, selecione “Plone Site” e clique em Adicionar
- No formulário, configure o id para “plone” e pressione enter.
-
Vá para http://localhost:8080/plone/prefs_install_products_form
-
Selecione o “PloneSoftwareCenter” no lado esquerdo e clique em “Instalar”
-
Vá para to http://localhost:8080/plone
- No menu "Adicionar novo...", clique em “software center”
- No formulário, no título, coloque “Catalog”
- Selecione Use Classifiers to display Categories (with Topic : : * ) em Classifiers
- Salve
Seu Software Center está pronto e disponível em http://localhost:8080/plone/catalog
Passo 4 - configurando o lado cliente
Agora vamos configurar o lado cliente para que as pessoas possam usar seu Software Center:
- Instale o iw.dist:
$ easy_install iw.dist
- Crie um arquivo no seu diretório home, chamado .pypirc com esse conteúdo:
[distutils]
index-servers =
pypi
local
[pypi]
username:YOUR_PYPI_LOGIN
password:YOUR_PYPI_PASSWORD
[local]
repository:http://localhost:8080/plone/catalog/
username:admin
password:admin
É claro, o valor localhost será diferente se localizado em outra máquina..
iw.dist adiciona dois novos comandos no distutils: mregister e mupload. Esses comandos melhoram o resgistro e upload e fazem o distutils trabalhar com múltiplos servidores. Ele deve ser adicionado ao Python 2.6 muito em breve. vamos usar !
Agora, você tem dois novos comandos no distutils, chamados ‘mregister‘ e ‘mupload‘ que vão permitir que você use ou o seu PSC ou o PyPI.
Vamos enviar um egg para o PSC:
$ python setup.py mregister sdist bdist_egg mupload -r local
Vamos enviar um egg para o PyPI:
$ python setup.py mregister sdist bdist_egg mupload -r pypi
Se o -r é omitido, o pypi é o padrão.
Se você quer usar o no zc.buildout ou easy_install, você pode informar http://localhost:8080/plone/catalog/simple como um find-links ou valor de índice:
[buildout] find-links = http://localhost:8080/plone/catalog/simple
Ou:
$ easy_install -f http://localhost:8080/plone/catalog/simple my.eggIsso é tudo!




Previous: Novo release do CacheFu
