Instalação Tesseract 4.1 e Apache Airflow no CENTOS 7
Este documento tem o objetivo de explicar como instalar e configurar passo a passo as ferramentas Tesseract 4.1 e Apache Airflow 2.1.0 no Linux CentOS 7. Já com o troubleshooting corrigindo problemas como versão do SQLite por exemplo, que impede a instalação correta do Apache Airflow. Depois de muita pesquisa e juntar as informações necessárias, consegui chegar em um conjunto de informações para facilitar o trabalho de todos que venham precisar efetuar a instalação e configuração dos mesmos. Espero poder ajudá-los com o conteúdo.
Pré-requisitos de instalação
Como pré-requisito de instalação das ferramentas, será necessário alguns pacotes básicos como o "Development Tools" e repositório "epel-release", abra o terminal e digite o seguinte comando:
# yum group install -y "Development Tools" Após a instalação do "Development Tools", deverá ser instalado o repositório "epel-release", digite:
# yum install epel-release Agora os pacotes dos pré-requisitos poderão ser instalados, digite:
# yum install java-1.8.0-openjdk gcc openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel wget libstdc++ autoconf automake libtool autoconf-archive gcc gcc-c++ make libjpeg-devel libpng-devel libtiff-devel sqlite-devel libsqlite3x-devel.x86_64 Como último passo deve-se atualizar o sistema operacional, para isso digite:
# yum update -y
# rpm --import https://build.opensuse.org/projects/home:Alexander_Pozdnyakov/public_key Agora será necessário baixar o repositório para download do pacote, digite:
# yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/ Inicie a instalação do Tesseract e o pacote de idioma, que no caso foi escolhido em inglês, digite:
# yum install tesseract tesseract-langpack-eng
# touch /etc/yum.repos.d/MariaDB.repo Após a criação, deve-se editar o arquivo com o repositório escolhido, digite:
# vi /etc/yum.repos.d/MariaDB.repo Agora coloque as informações do repositório conforme informado abaixo:
Salve o arquivo e saia. Após configurar o repositório, instale os pacotes:
# yum install MariaDB-server MariaDB-client Agora inicie o banco de dados:
# systemctl start mariadb Para que o serviço do banco de dados seja iniciado junto com o sistema operacional, digite:
# systemctl enable mariadb A mensagem abaixo irá aparecer confirmando que o serviço foi habilitado.
wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
Descompacte o pacote usando tar:
tar zxvf sqlite-autoconf-3280000.tar.gz Entre na pasta que acabou de descompactar no caso é sqlite-autoconf-3280000, digite:
cd sqlite-autoconf-3280000 Execute o script de configuração com o comando:
./configure Compile o pacote com a ferramenta automática que encontra-se na pasta, digite:
make
Agora instale o pacote com o comando:
# make install Após o término a seguinte mensagem abaixo será mostrada:
O arquivo .bash_profile contém comandos para definir variáveis de ambiente. Consequentemente, os shells futuros herdarão essas variáveis.
Em um shell de login interativo, o bash primeiro procura o arquivo /etc/profile. Se encontrado, o Bash o lê e executa no shell atual. Como resultado, /etc/profile define a configuração do ambiente para todos os usuários.
O .bashrc contém comandos que são específicos para os shells Bash. Cada shell interativo sem login é lido o .bashrc primeiro. Normalmente o .bashrc é o melhor lugar para adicionar aliases e funções relacionadas ao Bash. O shell Bash procura o arquivo .bashrc no diretório inicial e o executa no shell atual usando o código-fonte. Iremos utilizar ambos os arquivos. Digite:
# java ".bash_profile"
# echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java" >> /root/.bash_profile Airflow ".bash_profile":
# echo "export AIRFLOW_HOME=/opt/airflow" >> /root/.bash_profile Python ".bashrc":
# echo "alias python3='/usr/local/bin/python3.7'" >> /root/.bashrc Pip ".bashrc":
# echo "alias pip='/usr/local/bin/pip3.7'" >> /root/.bashrc Airflow ".bashrc":
# echo "alias airflow='/usr/local/bin/airflow'" >> /root/.bashrc Path ".bashrc":
# echo "export PATH=${PATH}:/usr/local/bin" >> /root/.bashrc Para que os alias funcionem imediatamente, digite:
# source /root/.bashrc
# source /root/.bash_profile No caso do Path, para que funcione de imediato faça o export como mostra abaixo:
# export PATH=${PATH}:/usr/local/bin
# cd /usr/src/ Baixe o pacote com o wget, digite:
# wget https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz Descompactar o pacote, digite:
# tar zxf Python-3.7.11.tgz Acesse a pasta que acabou de descompactar, digite:
# cd Python-3.7.11
Para executar a configuração automática com o caminho correto do SQLite que foi atualizado nos passos anteriores será necessário adicionar uma variável para a biblioteca junto, para isso digite:
# LD_RUN_PATH=/usr/local/lib ./configure Para compilar digite:
# LD_RUN_PATH=/usr/local/lib make Para instalar digite:
# LD_RUN_PATH=/usr/local/lib make altinstall Abra o python e valide a versão do SQLite se alterou, utilize o comando abaixo para abrir a versão 3 que foi instalada agora, digite:
# python3 Dentro da aplicação digite os seguintes comandos abaixo para verificar se a versão está atualizada para a 3.28.0:
> import sqlite3
> sqlite3.sqlite_version Caso esteja ok, pode sair do aplicativo digitante:
> quit()
Após baixar o pacote deve-se efetuar a instalação como um pacote rpm normal.
Digite:
# rpm -Uhv jdk-8u291-linux-x64.rpm
# python3 -m pip install -U pip Agora instale o Airflow 2.1.0, digite:
# pip3 install apache-airflow==2.1.0 Inicie o serviço de banco de banco de dados do Airflow:
# airflow db init Para criar um usuário insira o comando abaixo, alterando as informações conforme a necessidade:
# airflow users create \
--username admin \
--firstname Wagner \
--lastname Linux \
--role Admin \
--email wagner@dominio.com Digite a senha e repita novamente Suba o serviço do airflow com o seguinte comando:
# airflow webserver --port 8080 -D Acesse a página:
http://localhost:8080 Use o usuário que foi criado para logar na aplicação e validar o acesso:
# yum group install -y "Development Tools" Após a instalação do "Development Tools", deverá ser instalado o repositório "epel-release", digite:
# yum install epel-release Agora os pacotes dos pré-requisitos poderão ser instalados, digite:
# yum install java-1.8.0-openjdk gcc openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel wget libstdc++ autoconf automake libtool autoconf-archive gcc gcc-c++ make libjpeg-devel libpng-devel libtiff-devel sqlite-devel libsqlite3x-devel.x86_64 Como último passo deve-se atualizar o sistema operacional, para isso digite:
# yum update -y
INSTALAÇÃO TESSERACT 4.1
Próxima etapa após a atualização do SO e instalação dos pré-requisitos é a instalação do Tesseract, primeiro é preciso que importe a chave pública do repositório que será usado para que seja permitido a instalação. Digite:# rpm --import https://build.opensuse.org/projects/home:Alexander_Pozdnyakov/public_key Agora será necessário baixar o repositório para download do pacote, digite:
# yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/ Inicie a instalação do Tesseract e o pacote de idioma, que no caso foi escolhido em inglês, digite:
# yum install tesseract tesseract-langpack-eng
INSTALAÇÃO MARIA DB 10.5
Como no passo anterior será preciso instalar o pacote do repositório, neste caso será criado manualmente o arquivo de repositório para o Maria DB da versão 10.5, criar o arquivo inicialmente, para isso digite:# touch /etc/yum.repos.d/MariaDB.repo Após a criação, deve-se editar o arquivo com o repositório escolhido, digite:
# vi /etc/yum.repos.d/MariaDB.repo Agora coloque as informações do repositório conforme informado abaixo:
# MariaDB 10.5 CentOS repository list - created 2021-11-05 20:08 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirrors.gigenet.com/mariadb/yum/10.5/centos7-amd64
gpgkey=https://mirrors.gigenet.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirrors.gigenet.com/mariadb/yum/10.5/centos7-amd64
gpgkey=https://mirrors.gigenet.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Salve o arquivo e saia. Após configurar o repositório, instale os pacotes:
# yum install MariaDB-server MariaDB-client Agora inicie o banco de dados:
# systemctl start mariadb Para que o serviço do banco de dados seja iniciado junto com o sistema operacional, digite:
# systemctl enable mariadb A mensagem abaixo irá aparecer confirmando que o serviço foi habilitado.
ATUALIZAR VERSÃO DO SQLITE PARA 3.28
Para que seja possível a instalação do Apache Airflow é preciso que o SQLite esteja atualizado acima da versão 3.15, dessa forma iremos instalar a versão 3.28, será necessário baixarmos o pacote de forma manual, para isso digite o comando:wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
Descompacte o pacote usando tar:
tar zxvf sqlite-autoconf-3280000.tar.gz Entre na pasta que acabou de descompactar no caso é sqlite-autoconf-3280000, digite:
cd sqlite-autoconf-3280000 Execute o script de configuração com o comando:
./configure Compile o pacote com a ferramenta automática que encontra-se na pasta, digite:
make
Agora instale o pacote com o comando:
# make install Após o término a seguinte mensagem abaixo será mostrada:
CONFIGURAR VARIÁVEIS DE AMBIENTE
Neste passo deverá ser criado todas as variáveis que será utilizado com as ferramentas, no caso utilizaremos para o Java, Airflow, Python3, pip e para o "path", para conceito de aprendizagem está sendo feito no usuário root, mas é recomendado que seja criado um usuário para isso.O arquivo .bash_profile contém comandos para definir variáveis de ambiente. Consequentemente, os shells futuros herdarão essas variáveis.
Em um shell de login interativo, o bash primeiro procura o arquivo /etc/profile. Se encontrado, o Bash o lê e executa no shell atual. Como resultado, /etc/profile define a configuração do ambiente para todos os usuários.
O .bashrc contém comandos que são específicos para os shells Bash. Cada shell interativo sem login é lido o .bashrc primeiro. Normalmente o .bashrc é o melhor lugar para adicionar aliases e funções relacionadas ao Bash. O shell Bash procura o arquivo .bashrc no diretório inicial e o executa no shell atual usando o código-fonte. Iremos utilizar ambos os arquivos. Digite:
# java ".bash_profile"
# echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java" >> /root/.bash_profile Airflow ".bash_profile":
# echo "export AIRFLOW_HOME=/opt/airflow" >> /root/.bash_profile Python ".bashrc":
# echo "alias python3='/usr/local/bin/python3.7'" >> /root/.bashrc Pip ".bashrc":
# echo "alias pip='/usr/local/bin/pip3.7'" >> /root/.bashrc Airflow ".bashrc":
# echo "alias airflow='/usr/local/bin/airflow'" >> /root/.bashrc Path ".bashrc":
# echo "export PATH=${PATH}:/usr/local/bin" >> /root/.bashrc Para que os alias funcionem imediatamente, digite:
# source /root/.bashrc
# source /root/.bash_profile No caso do Path, para que funcione de imediato faça o export como mostra abaixo:
# export PATH=${PATH}:/usr/local/bin
INSTALAR PYTHON 3.71.11
Para instalar o Python em uma versão mais atual que a padrão do SO, é preciso que seja feito de forma manual, iremos utilizar a versão 3.71.11, acesse a pasta abaixo para instalação:# cd /usr/src/ Baixe o pacote com o wget, digite:
# wget https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz Descompactar o pacote, digite:
# tar zxf Python-3.7.11.tgz Acesse a pasta que acabou de descompactar, digite:
# cd Python-3.7.11
Para executar a configuração automática com o caminho correto do SQLite que foi atualizado nos passos anteriores será necessário adicionar uma variável para a biblioteca junto, para isso digite:
# LD_RUN_PATH=/usr/local/lib ./configure Para compilar digite:
# LD_RUN_PATH=/usr/local/lib make Para instalar digite:
# LD_RUN_PATH=/usr/local/lib make altinstall Abra o python e valide a versão do SQLite se alterou, utilize o comando abaixo para abrir a versão 3 que foi instalada agora, digite:
# python3 Dentro da aplicação digite os seguintes comandos abaixo para verificar se a versão está atualizada para a 3.28.0:
> import sqlite3
> sqlite3.sqlite_version Caso esteja ok, pode sair do aplicativo digitante:
> quit()
INSTALAR JAVA DEVELOPMENT KIT SE 8u291
Outro pacote necessário é o Java JDK SE 8, para isso é necessário baixar o pacote do site e disponibilizar no server, o site para acesso é:Após baixar o pacote deve-se efetuar a instalação como um pacote rpm normal.
Digite:
# rpm -Uhv jdk-8u291-linux-x64.rpm
INSTALAR APACHE AIRFLOW 2.1.0
Com todos os pré-requisitos instalados nos passos anteriores podemos instalar o Airflow sem nenhum problema ou erro que possa impossibilitar essa tarefa, é preciso instalar a ferramenta "pip" via python, para isso digite:# python3 -m pip install -U pip Agora instale o Airflow 2.1.0, digite:
# pip3 install apache-airflow==2.1.0 Inicie o serviço de banco de banco de dados do Airflow:
# airflow db init Para criar um usuário insira o comando abaixo, alterando as informações conforme a necessidade:
# airflow users create \
--username admin \
--firstname Wagner \
--lastname Linux \
--role Admin \
--email wagner@dominio.com Digite a senha e repita novamente Suba o serviço do airflow com o seguinte comando:
# airflow webserver --port 8080 -D Acesse a página:
http://localhost:8080 Use o usuário que foi criado para logar na aplicação e validar o acesso:
Ótimo artigo.
___________________________________________________________