Instalação do WSL2 (Windows Subsystem for Linux 2)
Adapte as etapas abaixo ao seu ambiente de desenvolvimento e às suas preferências. Caso não use o WSL, ou queira pular direto para a instalação do SUAP em si veja o item Instalação do SUAP no Linux (ambiente de desenvolvimento).
Observe também que em caso de um ambiente pré-existente alguns passos não serão necessários, como instalação do git, pip, postgresql, etc.
Opção 1:
1. No menu iniciar localizar a opção “Ativar ou desativar recursos do Windows”
2. Marcar a opção Subsistema do Windows para Linux e Plataforma de Máquina Virtual
Opção 2:
1. Abrir o Powershell como Administrador e executar o comando abaixo:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Abrir a Microsoft Store e Instalar o Ubuntu 20.04 LTS
Após a instalação do Ubuntu via WSL executar todos os comandos abrindo o terminal do Ubuntu localizando-o no menu iniciar ou digitando ubuntu1804 no prompt de comando (cmd).
Conversão para WSL2 (caso já possua o WSL 1 instalado)
O WSL2 trouxe um ganho significativo de desempenho, portanto, recomenda-se a atualização. É necessário que o Windows 10 esteja pelo menos na versão 1903, com build 18362 ou superior.
1. Habilitar o recurso de Virtual Machine do Windows
Abra o PowerShell como Administrador e execute o comando abaixo:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2. Reinicie o computador e prossiga para o download da atualizão do Kernel do Linux (WSL2 Linux kernel update package for x64 machines) através do link: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
3. Tornar o WSL2 a versão padrão
Abra o PowerShell e execute o comando abaixo:
wsl --set-default-version 2
4. Converter o Ubuntu já instalado para rodar usando o WSL2
Abra o PowerShell e execute o comando abaixo para visualizar as distribuições e respectiva versão do WSL
wsl --list --verbose # exemplo: Ubuntu-18.04 Running 1
Comando para converter a imagem em WSL2
# wsl --set-version <distribution name> <versionNumber> # exemplo: wsl --set-version Ubuntu-20.04 2
Sugestão: utilizar o Windows Terminal disponível na Microsoft Store
Sugestão: no VS Code para abrir um projeto de dentro do WSL instalar a extensão Remote - WSL (será sugerida a instalação automaticamente após a instalação do WSL) e abrir o ambiente remoto na seção correspondente do VS Code.
Instalação do SUAP no Linux (ambiente de desenvolvimento)
Instalar alguns pacotes necessários para a aplicação SUAP
sudo apt-get install -y --fix-missing python3 python3-pip wget unzip curl libsasl2-dev libldap2-dev libssl-dev procps libcairo2 libpango1.0 wkhtmltopdf ghostscript # pacotes extras ifce sudo apt-get install -y python3.8-dev python3.8-distutils build-essential python3-setuptools libatlas-base-dev liblapack-dev libpq-dev libjpeg-dev sudo apt-get install -y libfreetype6-dev zlib1g-dev freetds-dev libxmlsec1-dev libblas-dev sudo apt-get install -y gfortran libffi-dev wkhtmltopdf poppler-utils libxml2-dev libxslt1-dev # pacotes abaixo em revisão sudo apt-get install -y libglu1-mesa libcups2 libdbus-glib-1-2 libxinerama1 libsm6 tmpreaper libgdk-pixbuf2.0-0 sudo apt-get install -y shared-mime-info python3-wheel python3-cffi libpango-1.0-0 libpangocairo-1.0-0
2.1) Instalar o Postgres
Instalar
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list sudo apt update sudo apt install postgresql-13 postgresql-client-13
Alterar permissões de acesso
sudo nano /etc/postgresql/13/main/pg_hba.conf # modificar a linha host all all 127.0.0.1/32 md5 # para host all all 127.0.0.1/32 trust
Iniciar
sudo service postgresql start
4) Criar a pasta /opt/suap
sudo mkdir /opt/suap sudo chown -R seu_usuario:seu_usuario /opt
5) Fazer o clone do SUAP
Via HTTPS (não recomendado pois ficará sempre pedindo usuário/senha ao fazer push/pull)
# no diretório /opt git clone https://gitlab.ifce.edu.br/SUAP/suap.git suap
Via SSH (configuração recomendada)
Para fazer o clone via SSH é necessário ter a chave SSH configurada no gitlab, clique aqui para ver o procedimento de configuração.
# no diretório /opt git clone git@gitlab.ifce.edu.br:SUAP/suap.git suap
6) Permissões gerais das pastas
# carece de testes. acredito que essa pasta não é mais necessária # sudo mkdir /opt/suap/upload # sudo chmod o+rw /opt/suap/upload # sudo chmod g+rw /opt/suap/upload sudo chmod go+rw /opt/suap/deploy/sessions sudo chmod
7) Crie o arquivo settings.py
sudo cp /opt/suap/suap/settings_sample.py /opt/suap/suap/settings.py
8) Instalar e ativar o virtualenv
É obrigatório que a versão do Python utilizada seja a 3.8. Não há garantia de funcionamento em versões abaixo ou acima desta.
# Verificar a versão do Python 3 instalada na máquina python3 --version # caso a versão encontrada seja inferior a 3.8.x sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.8 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 # Obter o caminho da instalação do Python 3 which python3 # ex.: /usr/bin/python3
sudo apt install virtualenv cd ~ # criar o ambiente virtual usando o executável do Python 3 identificado no comando which python3 virtualenv -p /usr/bin/python3 suap source ~/suap/bin/activate # para desativar o virtualenv: deactivate
Em produção/homologação:
Recomenda-se adicionar ao .bashrc o comando para inicializar o virtualenv assim que o usuário iniciar uma sessão do shell.
nano ~/.bashrc # acrescentar ao final o conteúdo abaixo: source /home/suap/suap/bin/activate
10) Instalar as bibliotecas do Python/Django com pip install
cd /var/opt/suap # source ~/suap/bin/activate - caso o virtualenv não esteja ativo # atualizar a versão do pip antes de tentar instalar os requirements pip3 install --upgrade pip pip install -U -r /opt/suap/requirements/development.txt
Caso seja exibido o erro “fatal: unable to connect to github.com” ao tentar instalar os requirements, execute o comando abaixo:
git config --global url."https://".insteadOf git://
11) Dar um chmod em /opt/suap/deploy/logs/audit.log
sudo touch /opt/suap/deploy/logs/audit.log sudo chmod 777 /opt/suap/deploy/logs/audit.log
13) Após restaurar a base de dados, usar o comando sync
O comando sync roda os comandos collectstatic, sync_permissions, loaddata e migrate
# /opt/suap python manage.py sync