Pitch: Automatizando Downloads e Instalacao de Bibliotecas Python em Ambientes Air-Gapped
Olá, comunidade! 👋
Quero compartilhar uma solução que criei para um problema comum em ambientes corporativos: instalar dependências Python em máquinas sem acesso à internet (air-gapped).
O Problema
Trabalho com várias máquinas isoladas da rede, e instalar pacotes Python nesses ambientes é sempre um desafio. A solução tradicional é:
- Acessar máquina com internet
- Baixar todos os pacotes manualmente
- Transferir para a máquina isolada
- Instalar manualmente
Tediante, né? 😅
A Solução: Python Offline Libs Automation
Criei um script Shell que automatiza todo esse fluxo. O projeto está no GitHub e oferece três comandos principais:
1️⃣ Download (máquina com internet)
./offline-libs.sh download requirements.txt --platform manylinux2014_x86_64 --python-version 312
- Baixa todos os pacotes do requirements.txt
- Gera um arquivo comprimido: offline-packages.tar.gz
- Suporta customização de plataforma, versão Python e ABI
2️⃣ Install (máquina air-gapped)
./offline-libs.sh install offline-packages.tar.gz
- Instala todos os pacotes diretamente
- Ideal para usar dentro de um virtualenv
3️⃣ Uninstall
./offline-libs.sh uninstall
- Remove todos os pacotes instalados
- Seguro: pede confirmação se não estiver em virtualenv
Fluxo Completo
Máquina com internet:
./offline-libs.sh download requirements.txt --python-version 312
Transferir offline-packages.tar.gz via USB, pen drive, etc...
Máquina isolada:
./offline-libs.sh install offline-packages.tar.gz
Mais Scripts no Repositório
Além dessa solução, o projeto também inclui(Só umas brincadeiras que tenho feito):
- setup-docker-wsl.sh: Instala Docker no WSL
- setup-zsh.sh: Configura Zsh no Ubuntu
Obs: Eu estava sendo negacionista com IA e estou mudando a mentalidade kkkk foi todo feito no opencode, inclusive o conteudo desse post!