Instalar Koha 3.00.06 em Centos 5.5

install koha-3.00.06 on Centos 5.5

Koha é um ILS (Integrated Library System – Sistema de Gestão de Bibliotecas) gratuito e Open Source. É usado em todo o mundo, demonstrando a sua robustez.

Sendo todo baseado em PERL, não é dificil de instalar, mas tem muitas dependências e o processo é demorado.

Activar repositórios necessários

rpmforge

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

Repositórios Opcionais – Não necessárias à instalação do Koha

O Repositório EPEL (Extra Packages for Enterprise Linux) é um repositório construído por voluntários do projecto do Fedora para criar um repositório de pacotes adicionais de grande qualidade que complementa o Red Hat Enterprise Linux e distribuições compatíveis (tipo o CentOS). Este repositório fornece muitos pacotes para CentOS/RHEL, que não são parte dos repositórios oficiais, mas que são desenhados para trabalhar com estas distribuições.

wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm

Verificar repositorios

yum repolist

Instalar o plugin yum-priorities

yum install yum-priorities

Este plugin vai-nos permitir definir prioridades nos repositorios para evitar problemas com actualizações e preferências ao instalar determinados pacotes

editar o ficheiro /etc/yum/pluginconf.d/priorities.conf e verificar que está activado
[main]
enabled = 1

A cada repositorio, adicionamos (ou configuramos) a prioridade, de 1 a 99.
priority=N (mais pequeno, mais prioritario)

Definições recomendadas são:
Mirrors do Centos [base], [addons], [updates], [extras] com priority=1
[contrib] .. priority=2

Repositorios de terceiros, superior a 10

Antes de se começar a instalar o koha propriamente dito, é necessário ter algumas aplicações necessárias instaladas.

HTTP SERVER – Servidor Web

yum install httpd

configurem o apache como desejarem

vim /etc/httpd/conf/httpd.conf

Adicionem o apache aos serviços de arranque
chkconfig --levels 345 httpd on

Base de dados – MySQL

yum install mysql-server

Adicionar ao arranque
chkconfig --levels 345 mysqld on

Configurar o Mysql
/etc/init.d/mysqld start

/usr/bin/mysql_secure_installation

Criar a base de dados para o koha
mysql -uroot -p
create database koha;
create user 'kohaadmin'@'localhost' identified by '<password>';
grant select, insert, update, delete, create, drop, alter, lock tables on koha.* to  'kohaadmin'@'localhost';
flush privileges;
quit

Instalar o memcached

O memcached (que é usado pelo koha, se instalado) é um sistema de distribuição de objectos em memória, de alta-performance.

Por problemas com o pacote perl-Net-SSLeavy, temos que o instalar à mão. O que está disponivel (e instalado) é a versão 1.30 e precisamos pelo menos da versão 1.33.
Remover o anterior
yum remove perl-Net-SSLeay

wget http://packages.sw.be/perl-Net-SSLeay/perl-Net-SSLeay-1.36-1.el5.rfx.x86_64.rpm
rpm -ivh perl-Net-SSLeay-1.36-1.el5.rfx.x86_64.rpm


Instalar o memcached e adicionar ao arranque da máquina

yum install memcached

/etc/init.d/memcached start
chkconfig --levels 345 memcached on

O memcached corre no porto 11211
Para verificar definições:


echo "stats settings" | nc localhost 11211
STAT maxbytes 67108864
STAT maxconns 1024
STAT tcpport 11211
STAT udpport 11211
STAT inter NULL
STAT verbosity 0
STAT oldest 0
STAT evictions on
STAT domain_socket NULL
STAT umask 700
STAT growth_factor 1.25
STAT chunk_size 48
STAT num_threads 4
STAT stat_key_prefix :
STAT detail_enabled no
STAT reqs_per_event 20
STAT cas_enabled yes
STAT tcp_backlog 1024
STAT binding_protocol auto-negotiate
STAT auth_enabled_sasl no
STAT item_size_max 1048576
END

Mais informações no site do memcached

Instalar Zebra Utilities

http://www.indexdata.com/zebra

Necessario gcc e automake
yum install gcc (retira as dependencias necessarias)

Instalar aplicacoes necessarias
yum install bison libxml2-devel libxslt-devel libicu-devel tcl-devel libxlt-devel expat-devel

Efectuar o download da aplicacao YAZ
http://www.indexdata.com/yaz/

tar -zxvf yaz-4.1.1.tar.gz
cd yaz-4.1.1.tar.gz
./configure
make
make install

cd idzebra-2.0.44
./configure
make
make install

Adicionar utilizador e grupo koha

group add koha
useradd -d /usr/share/koha -g koha -s /bin/false koha

Dependencias do KOHA

Algorithm::CheckDigits
Biblio::EndnoteStyle
CGI::Session
CGI::Session::Serialize::yaml
Class::Accessor
Class::Factory::Util
DBD::mysql
DBI 1.53
Data::ICal
Date::Calc
Date::ICal
Date::Manip
Digest::SHA
Email::Date
GD
GD::Barcode::UPCE
HTML::Scrubber
HTML::Template::Pro
HTTP::OAI
IPC::Cmd
Lingua::Stem
List::MoreUtils
MARC::Charset
MARC::Crosswalk::DublinCore
MARC::File::XML
MARC::Record
MIME::Lite
Mail::Sendmail
Net::LDAP
Net::LDAP::Filter
Net::Z3950::ZOOM
PDF::API2
PDF::API2::Page
PDF::API2::Util
PDF::Reuse
PDF::Reuse::Barcode
POE
SMS::Send
Schedule::At
Text::CSV
Text::CSV::Encoded
Text::CSV_XS
Text::Iconv
XML::Dumper
XML::LibXML
XML::LibXSLT
XML::RSS
XML::SAX::ParserFactory
XML::SAX::Writer
XML::Simple
YAML::Syck

Agora temos duas opcoes – Segundo o INSTALL do koha, podemos executar o ficheiro perl install-CPAN.pl e ele instala todas as dependencias via CPAN, ou instalamos manualmente:

Os que podemos instalar via yum:

yum install -y perl-Algorithm-CheckDigits perl-CGI-Session perl-Class-Accessor perl-Class-Factory-Util perl-DBD-MySQL perl-Data-ICal perl-Date-Calc perl-Date-Manip perl-Date-ICal perl-Digest-SHA perl-Email-Date perl-GD perl-GD-Barcode perl-List-MoreUtils perl-Lingua-Stem perl-IPC-Cmd perl-HTML-Template perl-HTML-Template-Pro perl-HTML-Scrubber perl-Mail-Sendmail perl-MARC-Record perl-MIME-Lite perl-PDF-API2 perl-Schedule-At perl-POE perl-Text-CSV perl-Text-CSV_XS perl-Text-Iconv perl-XML-Dumper perl-XML-LibXML perl-XML-LibXSLT perl-XML-RSS perl-XML-SAX-Writer perl-YAML-Syck

NOTE: O koha posteriormente queixa-se das versoes instaladas: Aqui ficam algumas actualizacoes:

perl-DBI

wget http://packages.sw.be/perl-DBI/
rpm -Uvh perl-DBI-1.616-1.el5.rfx.i386.rpm

perl-DBD-Mysql

http://packages.sw.be/perl-DBD-MySQL/
rpm -Uvh perl-DBD-MySQL-4.014-1.el5.rfx.x86_64.rpm

Os restantes, instalamos via CPAN
perl -MCPAN -e shell

install Biblio::EndnoteStyle
install CGI::Session::Serialize::yaml
install HTTP::OAI
install DBI (apesar de estar disponivel pelo yum, o koha queixou-se)
install MARC::Charset MARC::Crosswalk::DublinCore
install MARC::File::XML
install Net::LDAP::Filter
install PDF::API2::Page PDF::API2::Util
install PDF::Reuse PDF::Reuse::Barcode
install SMS::Send
install Text::CSV::Encoded
install XML::Simple

O ZOOM corre bem (compilação é efectuada), mas falha nos testes e não instala. Podemos forcar a instalação com o seguinte comando:
force install Net::Z3950::ZOOM

KOHA
tar -zxvf koha-3.00.06-all-translations.tar.gz (ou seja qual o nome do vosso ficheiro)
cd koha-3.00.06

perl Makefile.PL
Responder a questoes colocadas pelo ficheiro de instalacao.
Eu fiz assim:

Installation mode - Standard
Base installation directory - /usr/share/koha
User Account - koha
Group - koha
DBMS - Mysql
Database server - localhost
DMBS - 3306
Name of Database (criado em cima) - koha
Username - kohaadmin
password - <password>
Install zebra configuration files - yes
MARC Format for zebra indexing - <depende da vossa biblioteca>
Primary language - en
Authorities indexing mode - dom (mais recente, mais rapido)
Zebra database user - kohauser
zebra database password - zebrastripes
SRU cinfiguration files - yes
SRU database host - localhost
SRU port for bibliographic data - 9998
SRU port for authority data - 9999
PazPar2 - yes
Zebra bibliographic server host - localhost
PazPar2 port - 11001
PazPar2 host - localhost
PazPar2 port - 11002
Database test suit - no

O koha a seguir mostra as dependencias do perl que ainda nao estejam satisfeitas.
No meu caso, ele queixa-se do DBI que não encontra… mas ele está instalado.

make
make install

Seguindamente, a instalação pede-nos para definirmos duas variáveis de ambiente. O melhor local para as colocar será em /etc/profile

vi /etc/profile e acrescentar:

export KOHA_CONF=/etc/koha/koha-conf.xml
export PERL5LIB=/usr/share/koha/lib

Para as definir imediatamente, executem
source /etc/profile

Para definir as configurações para o servidor do koha

ln -s /etc/koha/koha-httpd.conf /etc/httpd/conf.d/

Para o koha funcionar bem, precisamos que o apache tenha o mod_rewrite activado. Para verificar,

grep mod_rewrite /etc/httpd/conf/httpd.conf

e tem que aparecer a seguinte linha:
LoadModule rewrite_module modules/mod_rewrite.so
Editar o ficheiro /etc/httpd/conf/httpd.conf e acrescentar:

(manter a linha Listen 80)
Listen 8080

Reiniciamos o apache
/etc/init.d/httpd restart

Servicos Zebra

Agora, temos que arrancar com o zebrasrv, mas vamos colocar em background (daemon mode):
zebrasrv -D -f /etc/koha/koha-conf.xml
e vamo-nos certificar que inicia sempre que efectuarmos um reboot ao servidor, adicionando a seguinte linha a /etc/rc.local

echo "/usr/local/bin/zebrasrv -D -f /etc/koha/koha-conf.xml" >> /etc/rc.local

Para finalizar, navegar ate:
http://<vosso_servidor_koha>:8080/ e finalizar a instalação

Problemas

O Koha mantem os logs em /var/log/koha. Se tiverem algum problema sera aqui que devem comecar a verificar a origem do mesmo.

Dependências de PERL
Se o koha se queixar de algum problemad de dependências, verifiquem se foi instalado o pacote do qual ele se queixa por RPM.
rpm -qa | grep -i <pacote | parte do nome>
Se obtiverem resultados, significa que foi instalado por RPM.
Neste caso, instalem o mesmo pacote pelo CPAN.
 

References

http://memcached.org/

http://wiki.centos.org/PackageManagement/Yum/Priorities

http://www.question-defense.com/2010/01/25/install-ncftp-ncftpget-ncftpput-using-yum-on-centos-linux-server

http://www.rpmrepo.org/RPMforge/Using