Tabla de Contenidos
Procedimiento para actualizar el OPAC
Durante un tiempo (aprox. 2006-2008), el proceso de actualización se realizó ejecutando tres scripts en mi PC:
./download-db.sh bibima ./update-db.sh bibima ./upload-db.sh bibima
Luego de los cambios realizados a OpacMarc alrededor de octubre de 2008, la situación se despelotó y se interrumpieron las actualizaciones.
Ya es hora de volver a la normalidad.
Pero para eso hay que clarificar la situación: cuáles son los pasos y los scripts involucrados, qué hay que hacer manualmente y debería ser automatizado, etc.
Descarga de las bases
Todo empieza con la obtención de los datos originales:
- la base bibliográfica propia (base bibima)
- la base bibliográfica con nuestros registros de seriadas (base serial), extraidos de la base colectiva de publicaciones seriadas (base carpc)
- el archivo con las existencias asociadas a nuestras publicaciones seriadas (archivo EMA.001)
La base serial
fue generada en el servidor mediante un script serial.sh
, que simplemente hace esto:
QUERY="-CREADO_POR=FG or -CREADO_POR=LG or -CREADO_POR=ESA or -CREADO_POR=AES" mx $BASE_CARPC "$QUERY" "proc='d1106'" create=$BASE_SERIAL now -all
Es una incomodidad tener que correr este script manualmente cada vez que vamos a hacer una actualización del OPAC. — Pero no hay que correrlo manualmente, podemos ejecutar comandos en forma remota con ssh.
Descargamos las bases del servidor de esta manera:
$ cd ~/dev/opacmarc/local-testdata/bin $ ./download-db.sh bibima
El script download-db.sh
hace esto:
- descarga
bibima/biblio.{mst,xrf}
- descarga
bibima/serial.{mst,xrf}
⇐ acerca del origen de esta base, ver arriba - hace backup local de ambas bases (formato
.id.gz
) - crea una base temporal de holdings, a partir de
EMA.001
(ver abajo), y envía al diccionario el identificador del registro bibliográfico - agrega los holdings en un campo 866 a los registros de serial
- une (append) las bases serial y biblio
- elimina la base temporal
Este es el contenido del directorio local que aloja las bases (~/dev/opacmarc/local-testdata/bases/bibima/db/original
):
~/dev/opacmarc/local-testdata$ ll -tr bases/bibima/db/original/ -rw-r--r-- 1 fernando fernando 133269 2006-10-18 20:31 bibima-secstitle-20061018.zip -rw-r--r-- 1 fernando fernando 16896 2006-12-14 15:56 biblio-clean.xrf -rw-r--r-- 1 fernando fernando 3290624 2006-12-14 15:56 biblio-clean.mst -rw-r--r-- 1 fernando fernando 42938 2007-06-12 17:19 EMA.001-20070612 -rw-r--r-- 1 fernando fernando 89254 2007-06-12 21:19 secs20070612.zip -rw-r--r-- 1 fernando fernando 139599 2007-06-12 21:30 bibima-secstitle-20070612.zip -rw-rw-rw- 1 fernando fernando 328696 2007-08-10 17:56 title-20070810.id -rw-r--r-- 1 fernando fernando 2560 2007-08-10 17:57 secstitle-20070810.xrf -rw-r--r-- 1 fernando fernando 315904 2007-08-10 17:57 secstitle-20070810.mst -rw-r--r-- 1 fernando fernando 328674 2007-08-10 17:57 secstitle.id.20070612 -rw-rw-rw- 1 fernando fernando 42317 2007-08-10 18:02 EMA.001-20070810 -rw-r--r-- 1 fernando fernando 2560 2008-04-17 15:26 secstitle-20080417.xrf -rw-r--r-- 1 fernando fernando 333312 2008-04-17 15:26 secstitle-20080417.mst -rw-r--r-- 1 fernando fernando 149004 2008-04-17 16:13 bibima-secstitle-20080417.zip -rw-r--r-- 1 fernando fernando 149344 2008-05-02 15:38 secs-20080502.zip -rw-rw-rw- 1 fernando fernando 3072 2008-06-03 15:59 secstitle.xrf -rw-rw-rw- 1 fernando fernando 349184 2008-06-03 15:59 secstitle.mst -rwxrwxrwx 1 fernando fernando 45191 2008-09-30 16:13 EMA.001-20080417 -rwxrwxrwx 1 fernando fernando 154680 2008-09-30 16:13 bibima-secstitle-20080603.zip drwxr-xr-x 2 fernando fernando 4096 2008-09-30 16:13 webcheck -rw-r--r-- 1 fernando fernando 527551 2008-10-01 15:58 serial.iso lrwxrwxrwx 1 fernando fernando 16 2008-10-16 18:41 EMA.001 -> EMA.001-20080417 lrwxrwxrwx 1 fernando fernando 29 2008-10-16 18:41 bibima-secstitle.zip -> bibima-secstitle-20080603.zip -rw-r--r-- 1 fernando fernando 16896 2009-05-07 18:35 serial.xrf -rw-r--r-- 1 fernando fernando 873984 2009-05-07 18:35 serial.mst -rw-r--r-- 1 fernando fernando 24064 2009-05-07 18:35 biblio.xrf -rw-r--r-- 1 fernando fernando 7792128 2009-05-07 18:35 biblio.mst
Habría que limpiar un poco esa carpeta.
El archivo EMA.001
(holdings) es generado desde SeCS en la PC de Leticia. Dos cuestiones para automatizar, una vez que este archivo llega a mi PC:
- Aplicar
dos2unix
(en Ubuntu, instalartofrodos
) EMA.001
debe ser un link simbólico al más reciente de los archivosEMA.001-<fecha>
La base en mi OPAC local
Para ejecutar la actualización en mi instalación local, necesito “crear” la base bibima
en dicha instalación:
$ cd ~/dev/opacmarc/test-install/app/bin $ python add_db.py bibima
Creo links simbólicos al archivo maestro que tengo en local-testdata
:
$ cd ~/dev/opacmarc/test-install/local-data/bases/bibima/db/original $ ln -s /home/fernando/dev/opacmarc/local-testdata/bases/bibima/db/original/biblio.mst . $ ln -s /home/fernando/dev/opacmarc/local-testdata/bases/bibima/db/original/biblio.xrf .
ATENCION: si modificamos el código del OPAC, hay que volver a ejecutar test.sh
, y crear la base local bibima.
Conectar esta parte con la documentación en Entorno de desarrollo para OpacMarc.
La actualización
Ejecutamos la actualización:
$ cd ~/dev/opacmarc/test-install/app/bin $ python update_db.py bibima
Para acceder a la actualización abrimos esta página:
http://192.168.242.60:8081/cgi-bin/wxis?IsisScript=xis/opac.xis&db=bibima&showForm=simple
Nota: 192.168.242.60 es el IP de mi PC; 8081 el puerto asociado a la instalación de OpacMarc (esos números podrían variar). Si pruebo directamente sobre mi PC, puedo entrar a:
http://127.0.0.1:8081/cgi-bin/wxis?IsisScript=xis/opac.xis&db=bibima&showForm=simple
Subida de datos al servidor
~/dev/opacmarc/local-testdata/bin/upload-db.sh bibima
El script upload-db.sh
hace esto:
- Copia los archivos generados
- Copia los archivos
msc2000/msc.{mst,xrf}
Las imágenes (tapas de libros) las veníamos subiendo manualmente, usando mc
. Sólo subíamos las más recientes.
Pruebas
El 18/05/2009 hice la primera actualización usando este esquema de trabajo. (La anterior había sido el 16/09/2008.) Hubo un error al subir la base msc:
/home/fernando/dev/opacmarc/test-install/local-data/bases/bibima/db/public/msc2000/msc.mst: No such file or directory /home/fernando/dev/opacmarc/test-install/local-data/bases/bibima/db/public/msc2000/msc.xrf: No such file or directory
Repasemos lo que sucede con la base msc (o msc2000).
En el código svn de opacmarc, carpeta bin/install/data/
, tenemos el archivo msc2000.id (un archivo de texto con los datos “puros”).
En el script de instalación, install.py
, tenemos la función setup_msc(), que realiza lo siguiente:
- a partir de
msc2000.id
crea la base isisapp/util/msc2000/msc2000
- genera el archivo invertido de esa base, usando
msc.fst
- AGREGAR: genera diccionario para agrep
ATENCION: esta función es invocada en forma condicional, dependiendo de cómo fue llamado el script install.py
:
python install.py => no crea la base python install.py msc => crea la base
Creo que no es un buen método; podríamos crear la base en forma incondicional, y usarla sólo cuando se la necesite.
El script de actualización, update_db.py
, se mete con la base msc en dos ocasiones:
- función build_agrep_dictionaries(), ejecutada sólo cuando DB_NAME == 'bibima' OJO: ya no necesita generar el dict (lo hizo install.py), basta con copiarlo
- función build_aux_files(): Actualiza los postings para cada código MSC, en base a lo que encuentre en la base biblio; también sólo cuando DB_NAME == “bibima”. Esta función modifica “in place” la base msc. OJO: ahora no altera la base msc, crea una copia con los postings.
Este script encuentra la base msc mediante el archivo cipar. terminar la explicación.
Propuesta: el diccionario para agrep (archivo de texto) puede generarse por única vez desde Propuesta semi-implementada; testearla!!
install.py
, luego de crear la base msc y generar su archivo invertido. Luego en update_db.py
build_aux_files() debería crear una base nueva que contenga los postings, pero dejando inalterada la base msc “pura”; es decir, en vez de mx … copy
, usaríamos mx … create
.
Imágenes
El 23-jun-2009 veo que no aparecen las imágenes de los libros.