Em Ruby uma das primeiras coisas que se aprende é a instalar novos pacotes através do RubyGems:
Em Python, o gerenciamento de pacotes (eggs) era feito tradicionalmente com o easy_install, mas que sendo substituído pelo PIP.
Mesmo com tamanha facilidade para instalar e gerenciar pacotes que ambas as linguagens oferecem, existirão casos onde será necessário trabalhar simultaneamente com conjuntos distintos de gems / eggs - por exemplo ao trabalhar em projetos que possuem conjuntos distintos de pacotes, ou testar o upgrade de pacotes de um determinado o projeto.
RVM - Ruby Version Manager
Em Ruby, a criação de ambientes independentes pode ser feita com o RVM. A própria instalação do Ruby pode ser feita usando o RVM. Veja como é simples:
Pré-requisitos
Se estiver no Ubuntu, é necessário instalar os seguintes pacotes adicionais
- Baixe o RVM:
- A instalação modifica o .bashrc, alterando o PATH do terminal:
- É necessário iniciar um novo terminal para a alteração no PATH fazer efeito.
Instalado o RVM, podemos finalmente instalar multiplas versões do Ruby.
Para criar gemsets com diferentes versões do Ruby:
Para saber quais ambientes foram criados através do RVM, basta listar o diretório HOME/.rvm/gems ($ ls ~/.rvm/gems)
Para usar um gemset específico
VirtualEnv
Em Python, o virtualenv desempenha um papel semelhante. Porém, diferente do RVM, capaz de gerenciar a própria instalação do Ruby em múltiplas versões, o virtualenv foca apenas no gerenciamento de pacotes - não se preocupando com a instalação do Python.
A forma mais simples de usar o virtualenv é baixando o arquivo virtualenv.py no diretório home:
E executando-o com o python previamente instalado:
O que o virtual_env faz é criar uma nova instalação do python no diretório meu_ambiente_1. O argumento --no-site-packages serve para que o virtualenv ignore completamente quaisquer pacotes que tenham sido instalados globalmente em /usr/lib/pythonX.X/site-packages, tornando o ambiente totalmente novo e independente.
Para usar este ambiente, é necessário ativá-lo:
O prompt de comando passa a indicar qual ambiente está sendo usado:
Daí é só usar normalmente o pip para instalar os pacotes necessários.
A instalação ocorre toda nos respectivos diretórios meu_ambiente_1/bin e meu_ambiente_1/lib/pythonX.X/site-packages, não impactando na instalação global do python (/usr/lib/pythonX.X), permitindo uma separação completa entre diferentes ambientes.
Conclusão
Espero que a abordagem proposta neste artigo - mostrando similaridades e diferenças entre características dessas duas poderosas linguagens e frameworks (Ruby/Rails e Python/Django) - seja uma forma didática de aprender e apreciar os recursos que elas oferecem, proporcionando um aprendizado poliglota prático e divertido.
Nenhum comentário:
Postar um comentário