Commit 78ec197bd8a4a5fed30895fd813eeb0acf6d1d04

Authored by Nei Jobson da Costa Carneiro
2 parents 5583bbf9 95a06cbd

Merge branch 'Atualizacao_pre_1.0.4b' into 'master'

Atualizacao pre 1.0.4b

See merge request !3
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
... ...