Commit 78ec197bd8a4a5fed30895fd813eeb0acf6d1d04
Exists in
master
and in
1 other branch
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 | # This script monitors a set of input directories for PDF files | 3 | # This script monitors a set of input directories for PDF files |
4 | # once a new file is detected, it is processes through tesseract OCR | 4 | # once a new file is detected, it is processes through tesseract OCR |
@@ -23,6 +23,7 @@ | @@ -23,6 +23,7 @@ | ||
23 | # 1.0.2 Fix bug when counting cores for AMD processors | 23 | # 1.0.2 Fix bug when counting cores for AMD processors |
24 | # 1.0.3 Added better image type detection | 24 | # 1.0.3 Added better image type detection |
25 | # 1.0.4 Fix: added ubuntu init script | 25 | # 1.0.4 Fix: added ubuntu init script |
26 | +# 1.0.4b Centos 6.9 | ||
26 | # | 27 | # |
27 | # TODO: - Changes get_imgs and OCR processing to enable pages with more than one image -- it | 28 | # TODO: - Changes get_imgs and OCR processing to enable pages with more than one image -- it |
28 | # would not work on previous versions that assumed #pages = #imgs. Version 1.1 counts them | 29 | # would not work on previous versions that assumed #pages = #imgs. Version 1.1 counts them |
@@ -38,7 +39,7 @@ | @@ -38,7 +39,7 @@ | ||
38 | # | 39 | # |
39 | # | 40 | # |
40 | # O servidor OCR depende dos seguintes componentes: | 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 | # - File::Find::Rule | 43 | # - File::Find::Rule |
43 | # - File::Basename | 44 | # - File::Basename |
44 | # - File::Copy | 45 | # - File::Copy |
@@ -49,48 +50,56 @@ | @@ -49,48 +50,56 @@ | ||
49 | # - IPC::Open3 | 50 | # - IPC::Open3 |
50 | # - IO::Select | 51 | # - IO::Select |
51 | # - POSIX | 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 | # - Pdftk 2.02 | 54 | # - Pdftk 2.02 |
54 | # - Poppler-utils 0.42.0 | 55 | # - Poppler-utils 0.42.0 |
55 | # - Cpdf 2.1 | 56 | # - Cpdf 2.1 |
56 | # - ImageMagick 6.7.2-7 | 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 | 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 | 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 | cd /tmp | 86 | cd /tmp |
86 | wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm | 87 | wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm |
87 | rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm | 88 | rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm |
88 | rm -f msttcore-fonts-2.0-3.noarch.rpm | 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 | # Ubuntu 14.04 Server: | 100 | # Ubuntu 14.04 Server: |
91 | apt-get install build-essential cmake libtool yasm pkg-config subversion git libgcj14 | 101 | apt-get install build-essential cmake libtool yasm pkg-config subversion git libgcj14 |
92 | 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 | 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 | apt-get install ttf-mscorefonts-installer | 103 | apt-get install ttf-mscorefonts-installer |
95 | 104 | ||
96 | # Ambas plataformas: | 105 | # Ambas plataformas: |
@@ -115,50 +124,62 @@ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip | @@ -115,50 +124,62 @@ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip | ||
115 | unzip pdftk-2.02-src.zip | 124 | unzip pdftk-2.02-src.zip |
116 | rm -f pdftk-2.02-src.zip | 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 | # Bibliotecas para o Tesseract: Leptonica e Libav | 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 | # Tesseract | 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 | cp -avR tessdata/* /usr/local/share/tessdata/ | 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 | cd ocaml && ./configure && make world.opt && make install && cd .. | 148 | cd ocaml && ./configure && make world.opt && make install && cd .. |
130 | mkdir -p /usr/local/man/man5 | 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 | cd lib-findlib && ./configure && make all && make install && cd .. | 151 | cd lib-findlib && ./configure && make all && make install && cd .. |
132 | cd camlpdf && sed -i.bak s/\(uint32\)/\(uint32_t\)/g flatestubs.c && make && make install && cd .. | 152 | cd camlpdf && sed -i.bak s/\(uint32\)/\(uint32_t\)/g flatestubs.c && make && make install && cd .. |
133 | cd cpdf-source && make all && make install && cp cpdf /usr/local/bin && cd .. | 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 | adduser ocr | 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 | cp ./usr/local/bin/ocr /usr/local/bin | 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 | mv /etc | 174 | mv /etc |
155 | chkconfig --add ocr | 175 | chkconfig --add ocr |
156 | chkconfig --level 2345 ocr on | 176 | chkconfig --level 2345 ocr on |
157 | 177 | ||
158 | # Auto start (Ubuntu 14.04) | 178 | # Auto start (Ubuntu 14.04) |
179 | +cp ./usr/local/etc/init.d/ocr-ubuntu /etc/init.d/ocr | ||
159 | update-rd.d ocr defaults | 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 | cd /home/ocr | 183 | cd /home/ocr |
163 | 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 | 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 | su | 185 | su |
@@ -167,9 +188,9 @@ su | @@ -167,9 +188,9 @@ su | ||
167 | cd / | 188 | cd / |
168 | tar xovzf pkg-ocr.tgz | 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 | 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 | 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 | yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu pango cairo fontconfig gettext | 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,5 +198,5 @@ yum -y install libtiff libpng openjpeg libjpeg-turbo giflib libwebp zlib libicu | ||
177 | 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 | 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 | apt-get install libtiff5 libpng12-0 libopenjpeg2 libjpeg8 libjpeg-turbo8 libjpeg8 zlib1g libpango1.0-0 libcairo2 libfontconfig1 libgettextpo0 | 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 | service ocr start | 202 | service ocr start |