Mind Bending

Finalmente consegui um tempo para documentar a forma de prever suas contribuições ao Mind Bending Blog antes de enviar seu pull-request.

Quando anunciei que o blog estava aberto a contribuições por meio de pull-requests no GitHub, eu ainda não havia concluído a documentação sobre como realizar testes e previsões. Sim o Hack ‘n’ Cast estava tomando muito tempo!

Mind Bending Blog

Bem, agora está tudo documentado e utilizando o Pelican 3.4 (sua versão mais recente). Boa parte deste processo está documentado aqui

Pré-Requisitos

Todos sabemos que o site é feito utilizando Pelican. Entretanto, não iremos instalar este (e suas dependências) diretamente no sistema operacional, iremos utilizar ambientes virtuais para o Python.

No sistema operacional é necessário instalar apenas: setuptools (que provê o comando pip), Como pré-requisitos é necessário instalar os seguintes pacotes:

Python 3
A versão mais recente do Python, já que o Pelican 3.4 não está se dando muito bem com o Python 2.
python-setuptools
Este pacote provê o comando pip.
python-virtualenv
Este pacote provê o comando virtualenv.
libxml2-dev
Este pacote é necessário para compilar a biblioteca lxml.
libxslt-dev
Este pacote é necessário para compilar a biblioteca lxml.

Para instalar no Debian (e suas variantes) utilize o seguinte comando:

$ sudo aptitude install python3 python-setuptools python-virtualenv libxml2-dev libxslt-dev python3.3-dev

Para instalar no Fedora (e suas variantes) utilize o seguinte comando:

$ sudo yum install python3 python3-devel python-setuptools python-virtualenv libxml2-devel libxslt-devel

Para instalar no Arch Linux utilize o seguinte comando:

$ pacman -S python-setuptools python-virtualenv libxml2 libxslt

Criando o Ambiente Virtual

Existem pessoas que não gostam, mas eu recomendo fortemente a utilização de ambiente virtual (virtual env) para evitar qualquer problema de compatibilidade de pacotes. Te garanto que da forma como eu estruturei o Makefile você não vai nem perceber que está utilizando um virtual env.

Em seguida crie um ambiente virtual (virtualenv) para poder instalar o Pelican:

$ mkdir ~/venv
$ virtualenv -p /usr/bin/python3 --prompt "(pelican-3.4)" ~/venv/pelican-3.4

Pronto! Viu, nem doeu!

Obtendo o Código

Agora é só obter o código fonte do site através do git:

$ git clone git@github.com:magnunleno/MindBending-pt.git
$ cd MindBending-pt

Populando o Ambiente Virtual

Popule o ambiente virtual (virtualenv) criado anteriormente utilizando os pacotes especificados em requirements.txt:

$ . ~/venv/pelican-3.4/bin/activate; pip3 install -r ./requirements.txt; deactivate

Nota: Repare que antes do ambiente virtual existe um ponto.

Esta será a primeira e última vez que você precisará acessar este ambiente virtual diretamente, todas as outras vezes o make o fará por você.

Compilando o Site

Existem algumas formas de se compilar o site para testes, dependendo de como você irá visualizá-lo:

  1. Utilizando o NGINX.
  2. Utilizando o servidor web embutido no python;
  3. Utilizando o firefox/chrome navegando via sistema de arquivos (caminhos relativos);

Nota: Eu sempre uso o NGINX pois reproduz fielmente o ambiente de produção.

Note que as formas acima são independentes mas não mutuamente excludentes. Se você optar pelo modo 1, não precisa ler o modo 2. Mas se você quiser testar outros modos e ver qual mais lhe agrada, sinta-se a vontade. Gastei um bom tempo organizando o site para funcionar de todas as formas possíveis.

Servidor NGINX

Primeiramente instale o NGINX, e copie o arquivo nginx-mindbending.dev localizado em .conf para diretório /etc/nginx/site-avaiable/mindbending.dev. Em seguida crie um link simbólico no diretório sites-enabled um diretório para hospedar os arquivos estáticos gerados pelo Pelican:

$ cp ./conf/nginx/mindbending.dev /etc/nginx/site-avaiable/mindbending.dev
$ sudo ln -s /etc/nginx/sites-available/mindbending.dev /etc/nginx/sites-enabled/
$ sudo mkdir /var/www/MindBending
$ chmod -R 777 /var/www/MindBending

Inicie o NGINX e compile o site com o seguinte comando:

$ make nginx

Após a conclusão da compilação todos os arquivos são movidos para /var/www/MindBending e não é necessário reiniciar ou recarregar o NGINX, apenas acesse o site através do navegador utilizando a URL http://localhost.

Caso você possua outras páginas respondendo por localhost, você pode alterar a entrada no arquivo /etc/hosts para que fique similar ao abaixo:

$ 127.0.0.1       localhost mindbending.dev

Com isso, você poderá acessar o site através da URL http://mindbending.dev

Servidor Web Embutido no Python

A segunda forma, e a mais utilizada por pessoas que utilizam o Pelican por aí, é utilizar a infraestrutura provida pelo próprio Python/Pelican. Para isso compile o site da seguinte forma:

$ make html

Em seguida inicie o servidor através do seguinte comando:

$ make serve

Ou faça tudo em um comando só:

make html && make server

Em seguida acesse o site através da URL http://localhost:8000

Conclusão

Como vocês viram, não é muito difícil nem complicado. Essa forma aí é garantida para funcionar em qualquer GNU/Linux e é quase certo que funcionamento perfeitamente no Mac OS (mas não tenho um para testar e confirmar). Diria quase o mesmo para o Windows, mas como nunca pesquisei sobre virtualenv para Windows, não posso afirmar. Se alguém aí tiver alguma dessas plataformas e quiser tirar a prova, e só fazer um fork no github e documentar tendo como base este mesmo artigo.

Até a próxima.

Magnun

Magnun

Engenheiro de telecomunicações por formação, mas trabalha com suporte à infraestrutura GNU/Linux, e nas horas vagas é Programador OpenSource (Python e C) desenhista e escritor do Mind Bending Blog.


Comments

comments powered by Disqus