Como montar uma biblioteca virtual para uso em uma Intranet 30 de janeiro de 2009
No laboratório onde pesquiso, na UFRN (http://www.ufrn.br/), surgiu a necessidade de uma pequena estrutura de biblioteca virtual para indexar e catalogar nossas teses, dissertações e artigos publicados. Precisávamos agilizar e facilitar a busca por palavras chaves e facilmente acessar e ler o trecho ou o artigo todo que havia sido publicado.
Para resolver essa necessidade resolvi implantar uma pequena biblioteca virtual de teses para uso interno usando o Swish-E (http://www.swish-e.org/). Segue abaixo o passo a passo utilizado para a implantação do mesmo, a fim de que outras instituições de ensino e pesquisa possam utilizar-se desse manual para seus próprios propósitos. Favor, caso utilize este tutorial, deixe um recado para sabermos qual a utilidade que este artigo proporcionou para você.
Primeiramente é preciso ter uma máquina Linux instalada, para este tutorial eu estou utilizando um Desktop com o Ubuntu 8.10 Desktop instalado, é uma das máquinas do laboratório, nada muito sofisticado. Para saber como instalar o Linux procure no Google, este manual não se propõe a isto.
Devemos instalar um servidor web para executar os códigos do Swish-E, você pode utilizar qualquer servidor que execute Perl, o mais conhecido servidor web utilizado no Linux é o Apache, portanto para instalar o apache execute:
$ sudo su -
Para mudar para o modo super usuário
# aptitude install apache2
Depois precisamos dos códigos do Swish-E, por sorte nessa versão do Ubuntu ele já está disponível no repositório. Para instalar execute:
# aptitude install swish-e
Na ocasião da instalação do apache deve ter sido criada uma pasta /var/www , acessaremos ela para criar o site da biblioteca
# cd /var/www
# mkdir swishe
# cd swishe
Em seguida criaremos o arquivo de configuração da nossa biblioteca virtual
# touch swishe.conf
E copie o conteúdo abaixo para o arquivo
#
# Swish-e Configuration File
# by Allan Garcia (allan.garcia@gmail.com)
#
WordCharacters abcdefghijklmnopqrstuvwxyz\&#;0123456789.@|,-'"[](~!@$%^{}_+?
IndexFile ./swishe.index
IndexDir ./biblioteca/
IndexOnly .pdf
IndexReport 1
FilterDir /usr/share/doc/swish-e/examples/filter-bin
FileFilter .pdf /usr/bin/pdftotext "'%p' -"
IndexContents TXT* .pdf
Neste caso eu estou indexando apenas arquivos PDF, para indexar outros tipos de arquivo consulte o site do Swish-E e veja a documentação.
OBS: Nesta versão o binário pdftotext já vem instalado por padrão, se isso não for verdade para você instale o pacote xpdf.
Vamos criar agora o diretório que armazenará os arquivos pdf.
# mkdir biblioteca
Copie os arquivo desejados para esta pasta via SSH ou crie um compartilhamento do SAMBA ou ainda instale um servidor FTP. Eu estou usando o SSH por ser mais simples.
Apartir de uma outra máquina Linux abra o Nautilus e digite na barra de endereços:
sftp://<ipdoservidor>/var/www/swishe/biblioteca/
Agora é só copiar os arquivos para este diretório.
Vamos instalar agora o cgi do swish-e. Lembre-se que estamos ainda na pasta /var/www/swishe.
# pwd
/var/www/swishe
# cp /usr/share/doc/swish-e/examples/swish.cgi .
Altere as permissões para execução
# chmod +x swish.cgi
Para facilitar o processo de indexação, eu criei um pequeno script para ser agendado no cron.
# touch make_index.sh
Copie o conteúdo seguinte para este arquivo.
#!/bin/bash # # Swish-e Index make file # by Allan Garcia (allan.garcia@gmail.com) # CURRDIR="/var/www/swishe" LOGFILE="swish.log" cd $CURRDIR echo "Iniciando o backup..." > $LOGFILE date +%Y-%m-%d_%H:%M:%S >> $LOGFILE swish-e -c swishe.conf >> $LOGFILE date +%Y-%m-%d_%H:%M:%S >> $LOGFILE
Para criar o primeiro índice execute o script criado.
# ./make_index.sh
Agora vamos configurar o apache. Acesse o diretório de configuração na pasta e crie o arquivo do site.
# cd /etc/apache2/site-available/
# touch swishe
Copie o conteúdo abaixo
# # Web Configuration for Biblios Search Engine # by Allan Garcia (allan.garcia@gmail.com) # <VirtualHost *:80> ServerAdmin root@labsis.ufrn.br DirectoryIndex swish.cgi AddHandler cgi-script cgi pl DocumentRoot /var/www/swishe/ <Directory /var/www/swishe/> AuthType Basic AuthName "Area protegida do LabSIS AuthUserFile /var/www/swishe/.htpasswd Require valid-user Options Indexes FollowSymLinks MultiViews +ExecCGI AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/swishe-error.log LogLevel warn CustomLog /var/log/apache2/swishe-access.log combined Alias /biblioteca/ "/var/www/swishe/biblioteca/" <Directory "/var/www/swishe/biblioteca/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
Faça as adaptações necessárias para funcionar no seu servidor
Agora habilite o site, desabilite o default e reinicie o apache
# a2ensite swishe
# a2dissite default
# /etc/init.d/apache2 restart
Falta agora apenas um passo adicional, criar um mini-sistema de autenticação para pedir login e senha para acessar o site.
Volte para a pasta do site
# cd /var/www/swishe
Crie um arquivo de senhas e configure uma senha desejada
# htpasswd -c .htpasswd login
New password: ****
Re-type new password: ****
Se tudo correu bem você poderá agora testar o serviço de biblioteca. Acesse pelo navegador:
http://<ipdoservidor>/
Digite seu login e senha e você deverá se deparar com a seguinte tela:
Por último, isso é opcional e depende do seu objetivo, vamos agendar no cron a execução da indexação dos arquivos. Adicione a seguinte linha no cron.
00 12 * * * root /var/www/swishe/make_index.sh
Não se esqueça de comentar se este arquivo lhe for útil.

Olá Felicitações pelo Projeto:
Estou desenvolvendo projetos para o setor público municipal para oferecer a secretarias de educação do municípios do estado da Bahia, gostaria de manter contato para trocarmos esperiencia e adquirir com você sobre uma Biblioteca Digital.
Marcelo Alexandrino
Consultor Tecnológica
Não sou da área da informática. Como o pessoal dessa área sempre diz não para as minhas observações, resolvi, por conta própria, pesquisar. Receio que a instituição em que trabalho perca a memória, pois, embora existam projetos de gestão de documentos, ainda acho falha no resgate do documento. Não basta, e já tenho experiência, a busca da plavra no texto, pois nunca se sabe que palavra a pessoa que o criou usou. Existe um método de armazenamento, já testado, contendo, por exemplo, um tesauro ou sei eu o que, de forma que não se fique na dependência da pessoa que criou o texto ? (as vezes só ela sabe a palavra que usou, ou às vezes, até, ela esqueceu). Ficar nessa dependência significa voltar às origem, ou seja, como era antigamente no serviço público “eu sou o dono das fichinhas”
Cara Eloísa, estou enviando minha resposta por aqui pois não consegui fazê-lo por email.
Se eu acho que entendi sua questão, você está precisando indexar o documento com outras palavras, é isso? realmente o Switch-E não faz isso, mas como é um software aberto, seria relativamente simples incluir uma opção de indexar por outras palavras. Atualmente ele apenas indexa as palavras de dentro do texto, bem como o nome do arquivo e outros detalhes.