From 95a06cbdb0b75c5ba9c68017027577e378295ddc Mon Sep 17 00:00:00 2001 From: Nei Jobson Date: Mon, 29 May 2017 10:08:29 -0300 Subject: [PATCH] Atualização do arquivo do INSTALL do OCR Server --- INSTALL.txt | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------- 1 file changed, 62 insertions(+), 41 deletions(-) diff --git a/INSTALL.txt b/INSTALL.txt index 56aca8a..2177136 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,4 +1,4 @@ -# OCR Server 1.0.4 - (c) Agencia Nacional de Telecomunicacoees +# OCR Server 1.0.4b - (c) Agencia Nacional de Telecomunicacoees # # This script monitors a set of input directories for PDF files # once a new file is detected, it is processes through tesseract OCR @@ -23,6 +23,7 @@ # 1.0.2 Fix bug when counting cores for AMD processors # 1.0.3 Added better image type detection # 1.0.4 Fix: added ubuntu init script +# 1.0.4b Centos 6.9 # # TODO: - Changes get_imgs and OCR processing to enable pages with more than one image -- it # would not work on previous versions that assumed #pages = #imgs. Version 1.1 counts them @@ -38,7 +39,7 @@ # # # O servidor OCR depende dos seguintes componentes: -# - Perl 5.10.1, com seguintes módulos: +# - Perl 5.10.1, com seguintes módulos: # - File::Find::Rule # - File::Basename # - File::Copy @@ -49,48 +50,56 @@ # - IPC::Open3 # - IO::Select # - POSIX -# - Tesseract-ocr 3.05, com dicionários inglês e português +# - Tesseract-ocr 3.05, com dicionários inglês e português # - Pdftk 2.02 # - Poppler-utils 0.42.0 # - Cpdf 2.1 # - ImageMagick 6.7.2-7 # -# Na ausência deles na distribuição do sistema operacional, o uso de versões antigas desses componentes podem comprometer o correto funcionamento do sistema -# Dessa forma, pode ser necessário compilar os componentes faltantes, assim como as bibliotecas necessárias para o seu correto funcionamento. -# Esse arquivo contem informações quanto aos procedimentos para instalar e configurar o sistema pressupondo o pior caso, qual seja, a necessidade de compilação dos componentes. +# Na ausência deles na distribuição do sistema operacional, o uso de versões antigas desses componentes podem comprometer o correto funcionamento do sistema +# Dessa forma, pode ser necessário compilar os componentes faltantes, assim como as bibliotecas necessárias para o seu correto funcionamento. +# Esse arquivo contem informações quanto aos procedimentos para instalar e configurar o sistema pressupondo o pior caso, qual seja, a necessidade de compilação dos componentes. # -## ATENÇÃO: se algum componente abaixo não estiver disponível no repositório padrão para o Linux utilizado, deve-se proceder com a compilação da versão mais recente do componente disponibilizado em outros repositórios para que seja instalado no Linux a ser utilizado. +## ATENÇÃO: se algum componente abaixo não estiver disponível no repositório padrão para o Linux utilizado, deve-se proceder com a compilação da versão mais recente do componente disponibilizado em outros repositórios para que seja instalado no Linux a ser utilizado. # -# Configure o script, alterando as variáveis no arquivo '/usr/local/bin/ocr': +# Configure o script, alterando as variáveis no arquivo '/usr/local/bin/ocr': # -# @BASE_DIRS: Lista de diretórios base para a busca de arquivos --> cada diretório base irá ter sua própria instância do script -# @SUB_DIRS: Subdiretórios de entrada, saída, backup do arquivos originais, temporário e de arquivos com erro -# $MAX_FILES: Número máximo de arquivos a serem processados simultaneamente por diretório de entrada (default: 2) -# $MAX_PGS: Número máximo de páginas que podem ser processadas simultanemante por arquivo de entrada (default: no. de CPUs) -# Essas variáveis controlam o número máximo de instâncias de processos simultâneas = Num. de diretorios X MAX_FILES X MAX_PGS. -# Recomenda-se que o equipamento tenha em torno de 1,5 GB de RAM para cada core de CPU de forma a evitar swap. Se isso não for possível, pode ser reduzido o número de processos ou arquivos simultâneos. -# A configuração do servidor pode ser dimensionada com base no tempo desejado para processamento de grandes arquivos (> 100 páginas). Cada página tem sua própria thread de processamento, até o limite de $MAX_PGS, cujo default é o no. de cores de CPU. Em média cada página demora em torno de 18 segundos em uma CPU Xeon E5 4670@2.6GHz. Assim, com 16 CPUs, o desempenho agregado é em torno de 1,2 segundos por página. +# @BASE_DIRS: Lista de diretórios base para a busca de arquivos --> cada diretório base irá ter sua própria instância do script +# @SUB_DIRS: Subdiretórios de entrada, saída, backup do arquivos originais, temporário e de arquivos com erro +# $MAX_FILES: Número máximo de arquivos a serem processados simultaneamente por diretório de entrada (default: 2) +# $MAX_PGS: Número máximo de páginas que podem ser processadas simultanemante por arquivo de entrada (default: no. de CPUs) +# Essas variáveis controlam o número máximo de instâncias de processos simultâneas = Num. de diretorios X MAX_FILES X MAX_PGS. +# Recomenda-se que o equipamento tenha em torno de 1,5 GB de RAM para cada core de CPU de forma a evitar swap. Se isso não for possível, pode ser reduzido o número de processos ou arquivos simultâneos. +# A configuração do servidor pode ser dimensionada com base no tempo desejado para processamento de grandes arquivos (> 100 páginas). Cada página tem sua própria thread de processamento, até o limite de $MAX_PGS, cujo default é o no. de cores de CPU. Em média cada página demora em torno de 18 segundos em uma CPU Xeon E5 4670@2.6GHz. Assim, com 16 CPUs, o desempenho agregado é em torno de 1,2 segundos por página. # -# Para operação multi instância, basta instalar quantos servidores forem necessários e eles podem ter acesso aos mesmos diretórios de entrada que podem ser compartilhamentos SAMBA/CIFS/Windows ou NFS. +# Para operação multi instância, basta instalar quantos servidores forem necessários e eles podem ter acesso aos mesmos diretórios de entrada que podem ser compartilhamentos SAMBA/CIFS/Windows ou NFS. # # -# ----------------------- COMPILAÇÃO dos pré requisitos (obs.: os comandos de devem ser executados como root) +# ----------------------- COMPILAÇÃO dos pré requisitos (obs.: os comandos de devem ser executados como root) # # -# Compilando os pré-requisitos: máquina de COMPILAÇÃO APENAS +# Compilando os pré-requisitos: máquina de COMPILAÇÃO APENAS # -# RedHat 6.7: -yum -y install autoconf make gcc-java gcc gcc-c++ subversion pkg-config automake libtool yasm cmake git libgcj +# RedHat 6.7 e Centos 6.9: +yum -y install autoconf make gcc-java gcc gcc-c++ subversion pkg-config automake libtool yasm cmake git libgcj unzip yum -y install libtiff-devel libpng-devel openjpeg-devel libjpeg-turbo-devel giflib-devel libwebp-devel zlib-devel libicu-devel pango-devel cairo-devel fontconfig-devel gettext-devel cd /tmp wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm rm -f msttcore-fonts-2.0-3.noarch.rpm +# Centos 6.9 +# \_ autoconf-archive +wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/pelliott11:/autoconf-archive/CentOS_CentOS-6/noarch/autoconf-archive-2012.04.07-7.3.noarch.rpm +rpm -i autoconf-archive-2012.04.07-7.3.noarch.rpm +rm autoconf-archive-2012.04.07-7.3.noarch.rpm +# \_ GCC 4.8 +wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo +yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ devtoolset-2-gcj + # Ubuntu 14.04 Server: apt-get install build-essential cmake libtool yasm pkg-config subversion git libgcj14 apt-get install libtiff-dev libpng-dev libopenjpeg-dev libjpeg8-dev libjpeg-turbo8-dev libjpeg-dev libgif-dev zlib1g-dev libicu-dev libpango1.0-dev libcairo2-dev libfontconfig1-dev libgettextpo-dev -apt-get install apt-get install ttf-mscorefonts-installer # Ambas plataformas: @@ -115,50 +124,62 @@ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip unzip pdftk-2.02-src.zip rm -f pdftk-2.02-src.zip -# Tesseract, versão 3.05-dev ou superior +# pdftk, versão 2.02 ou superior +cd pdftk-2.02-dist/pdftk && make -f Makefile.Redhat all install && cd ../.. + +# Centos 6.9 +# \_ Cria um novo shell usando o GCC 4.8 por default +scl enable devtoolset-2 bash + +# Tesseract, versão 3.05-dev ou superior # Bibliotecas para o Tesseract: Leptonica e Libav -cd leptonica && ./autobuild && ./configure && make -j 8 all install && cd .. +cd leptonica && ./autobuild && ./configure && make all install && cd .. -cd libav && ./configure --enable-sram && make -j8 all install && cd .. +# Para compilação do Tesseract após a compilação do leptonica +export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib:/usr/local/src/leptonica/ + +cd libav && ./configure --enable-sram && make all install && cd .. # Tesseract -cd tesseract && ./autogen.sh && ./configure && make -j 8 all install && cd .. +cd tesseract && ./autogen.sh && ./configure && make all install && cd .. cp -avR tessdata/* /usr/local/share/tessdata/ -# cpdf, versão 2.1 ou superior +# cpdf, versão 2.1 ou superior cd ocaml && ./configure && make world.opt && make install && cd .. mkdir -p /usr/local/man/man5 +# lib-findlib -- pode dar erro na instalação de páginas de man... é seguro ignorar, ou basta criar os diretórios faltantes e tentar novamente cd lib-findlib && ./configure && make all && make install && cd .. cd camlpdf && sed -i.bak s/\(uint32\)/\(uint32_t\)/g flatestubs.c && make && make install && cd .. cd cpdf-source && make all && make install && cp cpdf /usr/local/bin && cd .. -# pdftk, versão 2.02 ou superior -cd pdftk-2.02-dist/pdftk && make -f Makefile.Redhat all install && cd ../.. +# poppler-utils, versão 0.42.0 ou superior +cd poppler && ./autogen.sh && ./configure && make all install && cd .. -# poppler-utils, versão 0.42.0 ou superior -cd poppler && ./autogen.sh && LIBOPENJPEG_LIBS=-l/usr/local/lib/libopenjp2.so LIBOPENJPEG_CFLAGS=-I/usr/local/include ./configure --enable-libopenjpeg=openjpeg2 && make all install && cd .. +# Centos 6.9 +# \_ Termina o shell usando o GCC 4.8 por default +exit -# ----------------------- INSTALAÇÃO (obs.: os comandos de devem ser executados como root) +# ----------------------- INSTALAÇÃO (obs.: os comandos de devem ser executados como root) -## Comandos adicionais para configuração do módulo: +## Comandos adicionais para configuração do módulo: -# Criação do usuário +# Criação do usuário adduser ocr -# Copie os arquivos ocr ocr-* para os diretórios corretos, conforme o sistema operacional +# Copie os arquivos ocr ocr-* para os diretórios corretos, conforme o sistema operacional cp ./usr/local/bin/ocr /usr/local/bin -cp ./usr/local/etc/init.d/ocr-redhat /etc/init.d/ocr (OU) -cp ./usr/local/etc/init.d/ocr-ubuntu /etc/init.d/ocr -# Auto start (RedHat 6.7) +# Auto start (RedHat 6.7 e CentOs 6.9) +cp ./usr/local/etc/init.d/ocr-redhat /etc/init.d/ocr mv /etc chkconfig --add ocr chkconfig --level 2345 ocr on # Auto start (Ubuntu 14.04) +cp ./usr/local/etc/init.d/ocr-ubuntu /etc/init.d/ocr update-rd.d ocr defaults -# Create pkg +# Create pkg -- para instalação em outras máquinas sem a necessidade de novas compilações cd /home/ocr tar cvozf pkg-ocr.tgz /usr/local/bin /usr/local/lib* /usr/local/man/ /usr/local/sbin/ /usr/local/share/ /usr/local/etc /usr/local/include/ /home/ocr/ocr* /etc/init.d/ocr /etc/rc*.d/*ocr su @@ -167,9 +188,9 @@ su cd / tar xovzf pkg-ocr.tgz -# Instalando pré-requisitos RUNTIME em servidores adicionais +# Instalando pré-requisitos RUNTIME em servidores adicionais -# Redhat 6.7 +# Redhat 6.7 e CentOS 6.9 yum -y install perl-File-Find-Rule-Perl perl-File-Touch libtiff libpng openjpeg-libs libjpeg-turbo giflib zlib libicu pango cairo fontconfig ImageMagick gettext libwebp yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu pango cairo fontconfig gettext @@ -177,5 +198,5 @@ yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu apt-get install libfile-find-rule-perl libfile-find-rule-perl-perl libtiff5 libpng12-0 libopenjpeg2 libjpeg-turbo8 libgif4 zlib1g libicu52 libpango1.0-0 libcairo2 fontconfig imagemagick gettext libwebp5 # libgcj14 apt-get install libtiff5 libpng12-0 libopenjpeg2 libjpeg8 libjpeg-turbo8 libjpeg8 zlib1g libpango1.0-0 libcairo2 libfontconfig1 libgettextpo0 -# Inicie o serviço com +# Inicie o serviço com service ocr start -- libgit2 0.21.2