Devpi

Devpi é uma excelente opção para repositório pypi, claro não desmerecendo do Bandersnatch. A grande diferença entre os dois é que o Bandersnatch foi pensado para um ambiente totalmente offline. Quando o Bandersnatch é iniciado faz download de todos os pacotes disponíveis no repositório que foi previamente indicado no seu arquivo de configuração para um diretório local só então começa a servir. Enquanto que o Devpi trabalha com cache, ou seja, você também indica um repositório mestre e um diretório onde ele vai guardar os pacotes, mais o download acontecerá sob demanda. Isso sem falar que o Devpi também trabalha com replicação, quando for iniciar o servidor você pode indicar outro servidor devpi como master.

As duas opções são boas a diferença está no jeito que cada uma funciona, acredito que a escolha ficará por conta do ambiente que você possui. Caso tenha uma maquina com acesso a internet então eu usaria o Devpi, até porque não imagino alguém precisando dos 180Gb de pacotes que o Bandersnatch baixa do repositório python padrão.


Vamos instalar o Devpi então? Primeiro passo, precisamos do pacote Python-pip instalado na maquina. Caso já tenha otimo, do contrario, execute o seguinte comando:
sudo apt-get install python-pip
 Utilizando o pip instale o Devpi.
sudo pip install devpi
Agora que o servidor devpi está instalado. Recomendo ler também o "--help" antes de iniciar. Para esse post vou usar apenas o parâmetro "--host". Isso significa que o "--serverdir" permanecerá o padrão. (~./devpi/server).
sudo devpi-server --host=0.0.0.0
Simples demais não é mesmo? Servidor devpi está operacional. Quando os clientes solicitarem os pacotes ele vai entregar e guardar no cache local. Dessa forma ele consegue servir mais rapidamente das próximas vezes sem a necessidade de ir para internet em todas as requisições que receber.

Ok... Agora e na maquina cliente, como fazer para pedir esses pacotes? pip install e pronto?!
Resposta: Não! Execute o comando pip da seguinte forma:
sudo pip install -i http://ip_do_servidor:porta/root/pypi/+simple/ nome_do_pacote

0 comentários: