Commit 4ff2a149f9f00ed5ad260bad828aa1abcf4ac8e0
Exists in
master
and in
1 other branch
Merge branch 'master' of http://softwarepublico.gov.br/gitlab/anatel/ocr-server
Showing
1 changed file
with
62 additions
and
41 deletions
Show diff stats
INSTALL.txt
| 1 | -# OCR Server 1.0.4 - (c) Agencia Nacional de Telecomunicacoees | |
| 1 | +# OCR Server 1.0.4b - (c) Agencia Nacional de Telecomunicacoees | |
| 2 | 2 | # |
| 3 | 3 | # This script monitors a set of input directories for PDF files |
| 4 | 4 | # once a new file is detected, it is processes through tesseract OCR |
| ... | ... | @@ -23,6 +23,7 @@ |
| 23 | 23 | # 1.0.2 Fix bug when counting cores for AMD processors |
| 24 | 24 | # 1.0.3 Added better image type detection |
| 25 | 25 | # 1.0.4 Fix: added ubuntu init script |
| 26 | +# 1.0.4b Centos 6.9 | |
| 26 | 27 | # |
| 27 | 28 | # TODO: - Changes get_imgs and OCR processing to enable pages with more than one image -- it |
| 28 | 29 | # would not work on previous versions that assumed #pages = #imgs. Version 1.1 counts them |
| ... | ... | @@ -38,7 +39,7 @@ |
| 38 | 39 | # |
| 39 | 40 | # |
| 40 | 41 | # O servidor OCR depende dos seguintes componentes: |
| 41 | -# - Perl 5.10.1, com seguintes módulos: | |
| 42 | +# - Perl 5.10.1, com seguintes módulos: | |
| 42 | 43 | # - File::Find::Rule |
| 43 | 44 | # - File::Basename |
| 44 | 45 | # - File::Copy |
| ... | ... | @@ -49,48 +50,56 @@ |
| 49 | 50 | # - IPC::Open3 |
| 50 | 51 | # - IO::Select |
| 51 | 52 | # - POSIX |
| 52 | -# - Tesseract-ocr 3.05, com dicionários inglês e português | |
| 53 | +# - Tesseract-ocr 3.05, com dicionários inglês e português | |
| 53 | 54 | # - Pdftk 2.02 |
| 54 | 55 | # - Poppler-utils 0.42.0 |
| 55 | 56 | # - Cpdf 2.1 |
| 56 | 57 | # - ImageMagick 6.7.2-7 |
| 57 | 58 | # |
| 58 | -# 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 | |
| 59 | -# Dessa forma, pode ser necessário compilar os componentes faltantes, assim como as bibliotecas necessárias para o seu correto funcionamento. | |
| 60 | -# 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. | |
| 59 | +# 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 | |
| 60 | +# Dessa forma, pode ser necessário compilar os componentes faltantes, assim como as bibliotecas necessárias para o seu correto funcionamento. | |
| 61 | +# 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. | |
| 61 | 62 | # |
| 62 | -## 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. | |
| 63 | +## 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. | |
| 63 | 64 | # |
| 64 | -# Configure o script, alterando as variáveis no arquivo '/usr/local/bin/ocr': | |
| 65 | +# Configure o script, alterando as variáveis no arquivo '/usr/local/bin/ocr': | |
| 65 | 66 | # |
| 66 | -# @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 | |
| 67 | -# @SUB_DIRS: Subdiretórios de entrada, saída, backup do arquivos originais, temporário e de arquivos com erro | |
| 68 | -# $MAX_FILES: Número máximo de arquivos a serem processados simultaneamente por diretório de entrada (default: 2) | |
| 69 | -# $MAX_PGS: Número máximo de páginas que podem ser processadas simultanemante por arquivo de entrada (default: no. de CPUs) | |
| 70 | -# 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. | |
| 71 | -# 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. | |
| 72 | -# 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. | |
| 67 | +# @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 | |
| 68 | +# @SUB_DIRS: Subdiretórios de entrada, saÃda, backup do arquivos originais, temporário e de arquivos com erro | |
| 69 | +# $MAX_FILES: Número máximo de arquivos a serem processados simultaneamente por diretório de entrada (default: 2) | |
| 70 | +# $MAX_PGS: Número máximo de páginas que podem ser processadas simultanemante por arquivo de entrada (default: no. de CPUs) | |
| 71 | +# 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. | |
| 72 | +# 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. | |
| 73 | +# 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. | |
| 73 | 74 | # |
| 74 | -# 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. | |
| 75 | +# 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. | |
| 75 | 76 | # |
| 76 | 77 | # |
| 77 | -# ----------------------- COMPILAÇÃO dos pré requisitos (obs.: os comandos de devem ser executados como root) | |
| 78 | +# ----------------------- COMPILAÇÃO dos pré requisitos (obs.: os comandos de devem ser executados como root) | |
| 78 | 79 | # |
| 79 | 80 | # |
| 80 | -# Compilando os pré-requisitos: máquina de COMPILAÇÃO APENAS | |
| 81 | +# Compilando os pré-requisitos: máquina de COMPILAÇÃO APENAS | |
| 81 | 82 | # |
| 82 | -# RedHat 6.7: | |
| 83 | -yum -y install autoconf make gcc-java gcc gcc-c++ subversion pkg-config automake libtool yasm cmake git libgcj | |
| 83 | +# RedHat 6.7 e Centos 6.9: | |
| 84 | +yum -y install autoconf make gcc-java gcc gcc-c++ subversion pkg-config automake libtool yasm cmake git libgcj unzip | |
| 84 | 85 | 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 |
| 85 | 86 | cd /tmp |
| 86 | 87 | wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm |
| 87 | 88 | rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm |
| 88 | 89 | rm -f msttcore-fonts-2.0-3.noarch.rpm |
| 89 | 90 | |
| 91 | +# Centos 6.9 | |
| 92 | +# \_ autoconf-archive | |
| 93 | +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 | |
| 94 | +rpm -i autoconf-archive-2012.04.07-7.3.noarch.rpm | |
| 95 | +rm autoconf-archive-2012.04.07-7.3.noarch.rpm | |
| 96 | +# \_ GCC 4.8 | |
| 97 | +wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo | |
| 98 | +yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ devtoolset-2-gcj | |
| 99 | + | |
| 90 | 100 | # Ubuntu 14.04 Server: |
| 91 | 101 | apt-get install build-essential cmake libtool yasm pkg-config subversion git libgcj14 |
| 92 | 102 | 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 |
| 93 | -apt-get install | |
| 94 | 103 | apt-get install ttf-mscorefonts-installer |
| 95 | 104 | |
| 96 | 105 | # Ambas plataformas: |
| ... | ... | @@ -115,50 +124,62 @@ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip |
| 115 | 124 | unzip pdftk-2.02-src.zip |
| 116 | 125 | rm -f pdftk-2.02-src.zip |
| 117 | 126 | |
| 118 | -# Tesseract, versão 3.05-dev ou superior | |
| 127 | +# pdftk, versão 2.02 ou superior | |
| 128 | +cd pdftk-2.02-dist/pdftk && make -f Makefile.Redhat all install && cd ../.. | |
| 129 | + | |
| 130 | +# Centos 6.9 | |
| 131 | +# \_ Cria um novo shell usando o GCC 4.8 por default | |
| 132 | +scl enable devtoolset-2 bash | |
| 133 | + | |
| 134 | +# Tesseract, versão 3.05-dev ou superior | |
| 119 | 135 | # Bibliotecas para o Tesseract: Leptonica e Libav |
| 120 | -cd leptonica && ./autobuild && ./configure && make -j 8 all install && cd .. | |
| 136 | +cd leptonica && ./autobuild && ./configure && make all install && cd .. | |
| 121 | 137 | |
| 122 | -cd libav && ./configure --enable-sram && make -j8 all install && cd .. | |
| 138 | +# Para compilação do Tesseract após a compilação do leptonica | |
| 139 | +export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib:/usr/local/src/leptonica/ | |
| 140 | + | |
| 141 | +cd libav && ./configure --enable-sram && make all install && cd .. | |
| 123 | 142 | |
| 124 | 143 | # Tesseract |
| 125 | -cd tesseract && ./autogen.sh && ./configure && make -j 8 all install && cd .. | |
| 144 | +cd tesseract && ./autogen.sh && ./configure && make all install && cd .. | |
| 126 | 145 | cp -avR tessdata/* /usr/local/share/tessdata/ |
| 127 | 146 | |
| 128 | -# cpdf, versão 2.1 ou superior | |
| 147 | +# cpdf, versão 2.1 ou superior | |
| 129 | 148 | cd ocaml && ./configure && make world.opt && make install && cd .. |
| 130 | 149 | mkdir -p /usr/local/man/man5 |
| 150 | +# 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 | |
| 131 | 151 | cd lib-findlib && ./configure && make all && make install && cd .. |
| 132 | 152 | cd camlpdf && sed -i.bak s/\(uint32\)/\(uint32_t\)/g flatestubs.c && make && make install && cd .. |
| 133 | 153 | cd cpdf-source && make all && make install && cp cpdf /usr/local/bin && cd .. |
| 134 | 154 | |
| 135 | -# pdftk, versão 2.02 ou superior | |
| 136 | -cd pdftk-2.02-dist/pdftk && make -f Makefile.Redhat all install && cd ../.. | |
| 155 | +# poppler-utils, versão 0.42.0 ou superior | |
| 156 | +cd poppler && ./autogen.sh && ./configure && make all install && cd .. | |
| 137 | 157 | |
| 138 | -# poppler-utils, versão 0.42.0 ou superior | |
| 139 | -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 .. | |
| 158 | +# Centos 6.9 | |
| 159 | +# \_ Termina o shell usando o GCC 4.8 por default | |
| 160 | +exit | |
| 140 | 161 | |
| 141 | -# ----------------------- INSTALAÇÃO (obs.: os comandos de devem ser executados como root) | |
| 162 | +# ----------------------- INSTALAÇÃO (obs.: os comandos de devem ser executados como root) | |
| 142 | 163 | |
| 143 | -## Comandos adicionais para configuração do módulo: | |
| 164 | +## Comandos adicionais para configuração do módulo: | |
| 144 | 165 | |
| 145 | -# Criação do usuário | |
| 166 | +# Criação do usuário | |
| 146 | 167 | adduser ocr |
| 147 | 168 | |
| 148 | -# Copie os arquivos ocr ocr-* para os diretórios corretos, conforme o sistema operacional | |
| 169 | +# Copie os arquivos ocr ocr-* para os diretórios corretos, conforme o sistema operacional | |
| 149 | 170 | cp ./usr/local/bin/ocr /usr/local/bin |
| 150 | -cp ./usr/local/etc/init.d/ocr-redhat /etc/init.d/ocr (OU) | |
| 151 | -cp ./usr/local/etc/init.d/ocr-ubuntu /etc/init.d/ocr | |
| 152 | 171 | |
| 153 | -# Auto start (RedHat 6.7) | |
| 172 | +# Auto start (RedHat 6.7 e CentOs 6.9) | |
| 173 | +cp ./usr/local/etc/init.d/ocr-redhat /etc/init.d/ocr | |
| 154 | 174 | mv /etc |
| 155 | 175 | chkconfig --add ocr |
| 156 | 176 | chkconfig --level 2345 ocr on |
| 157 | 177 | |
| 158 | 178 | # Auto start (Ubuntu 14.04) |
| 179 | +cp ./usr/local/etc/init.d/ocr-ubuntu /etc/init.d/ocr | |
| 159 | 180 | update-rd.d ocr defaults |
| 160 | 181 | |
| 161 | -# Create pkg | |
| 182 | +# Create pkg -- para instalação em outras máquinas sem a necessidade de novas compilações | |
| 162 | 183 | cd /home/ocr |
| 163 | 184 | 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 |
| 164 | 185 | su |
| ... | ... | @@ -167,9 +188,9 @@ su |
| 167 | 188 | cd / |
| 168 | 189 | tar xovzf pkg-ocr.tgz |
| 169 | 190 | |
| 170 | -# Instalando pré-requisitos RUNTIME em servidores adicionais | |
| 191 | +# Instalando pré-requisitos RUNTIME em servidores adicionais | |
| 171 | 192 | |
| 172 | -# Redhat 6.7 | |
| 193 | +# Redhat 6.7 e CentOS 6.9 | |
| 173 | 194 | 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 |
| 174 | 195 | yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu pango cairo fontconfig gettext |
| 175 | 196 | |
| ... | ... | @@ -177,5 +198,5 @@ yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu |
| 177 | 198 | 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 |
| 178 | 199 | apt-get install libtiff5 libpng12-0 libopenjpeg2 libjpeg8 libjpeg-turbo8 libjpeg8 zlib1g libpango1.0-0 libcairo2 libfontconfig1 libgettextpo0 |
| 179 | 200 | |
| 180 | -# Inicie o serviço com | |
| 201 | +# Inicie o serviço com | |
| 181 | 202 | service ocr start | ... | ... |