====== 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
{{ :sistemas:suap:ambientedev:windows_features_wsl.png?nolink |}}
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
# exemplo:
wsl --set-version Ubuntu-20.04 2
{{ :sistemas:suap:ambientedev:terminal-wsl.png?nolink |}}
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.
{{ :sistemas:suap:ambientedev:remote-wsl.png?nolink |}}
====== 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 [[sistemas:suap:ssh:configurar|chave SSH]] configurada no gitlab, [[sistemas:suap:ssh: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
-----------
[[sistemas:suap|Voltar à página Principal do SUAP]]