Diccionarios en red
He puesto en marcha un diccionario en red para poder efectuar consultas desde cualquier cliente, a pesar de que las bases de datos en español son escasas y los diccionarios bilingües más bien cortitos.
Configuración en el servidor
El servidor funciona bajo Debian, versión estable (Etch
en estos
momentos), y dispone de un buen número de bases de datos complementarias.
Instalación de paquetes
Para instalarlo he procedido con lo siguiente:
# apt-get install dictd
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Paquetes sugeridos:
dict-gcide dict-web1913 dict-wn dict-jargon dict-foldoc
Se instalarán los siguientes paquetes NUEVOS:
dictd
0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0B/147kB de archivos.
Se utilizarán 385kB de espacio de disco adicional después de desempaquetar.
Seleccionando el paquete dictd previamente no seleccionado.
(Leyendo la base de datos ...
49910 ficheros y directorios instalados actualmente.)
Desempaquetando dictd (de .../dictd_1.10.2-3.1_amd64.deb) ...
Configurando dictd (1.10.2-3.1) ...
Starting dictionary server: dictd.
después he añadido diccionarios que considero útiles en mi trabajo:
# apt-get install dict-gcide dict-jargon dict-vera dict-foldoc
...
y luego he encontrado los diccionarios bilingüe que más falta me hacían:
# apt-get install dict-freedict-eng-spa dict-freedict-spa-eng
Configurando dict-freedict-eng-spa (1.3-3) ...
The parameter --locale=xx_YY.utf-8 was not set in your /etc/default/dictd,
so after installing this package dictd may stop working.
tomando nota de la anterior advertencia en la siguiente fase.
Configuración del servidor
El servidor carga su configuración del archivo /etc/dictd/dictd.conf
, el
cual suele incluir una línea extra que hace referencia a una lista de
diccionarios que se mantiene aparte, en /var/lib/dictd/db.list
.
Para actualizar este archivo, que contiene los diccionarios disponibles en el servidor, se usa:
# dictdconfig -w
aunque en la instalación del programa y en las actualizaciones de diccionarios ya se efectúa automáticamente. Advierten, eso sí, que versiones muy antiguas de éstos puede que no lo hagan, por lo que es conveniente saber cómo llevarlo a cabo.
El orden de los diccionarios se puede cambiar en el archivo
/etc/dictd/dictd.order
, como veremos después.
Ahora editamos el archivo principal, /etc/dictd/dictd.conf
, recordando que
el servidor lo lee al comenzar su ejecución y no vuelve a mirarlo a menos que
reciba una señal SIGHUP
.
Sus características son:
- Los comentarios comienzan con un caracter almohadilla (#).
- Las palabras clave son sensibles a mayúsculas y minúsculas y admite un conjunto limitado de ellas.
- Los valores que contengan espacios en blanco deben ir entrecomillados (comillas dobles).
- Las líneas pueden continuarse mediante una barra atrás al final de la misma (lo habitual).
- Está dividido en secciones que comienzan por el nombre de la misma y agrupan su contenido entre llaves.
sección global
Define valores globales tales como qué registro de mensajes utilizar y qué juego de caracteres emplear.
port número_o_nombre
Puerto en el que escuchar las peticiones. El valor predeterminado lo fija el protocolo DICT y es el 2628.
listen_to direccion_ip
Atiende peticiones en la dirección IP indicada. Por defecto lo hace en
127.0.0.1
.
delay número_de_segundos
Determina el tiempo de inactividad que espera el servidor antes de cerrar la conexión con el cliente. Por defecto son 600 segundos, diez minutos.
limit número_de_demonios
Indica cuántos demonios pueden estar funcionando simultáneamente; cada uno atiende a un cliente, y aquellos que no puedan serlo reciben un código 420. El valor por defecto es 100.
timestamp número_de_minutos
Cuán a menudo se graba una marca de tiempo en los registros, medido en minutos, útil sólo cuando dicho registro ó la depuración están activos.
log_option opción_de_registro
Determina qué eventos registrar.
debug_option opción_de_depuración
Activa opciones de depuración, son bastantes, y útiles en la práctica para desarrolladores.
locale texto
Especifica el lenguaje y el juego de caracteres utilizados en la búsqueda. Si
es omite se usará C
.
Este valor debería ser el mismo que con el que se construyó el diccionario (más concretamente, con el que se contruyó el índice), puesto que se usa para las búsquedas, y a menos que la versión del servidor sea igual ó mayor a 1.01 no será posible incluír diccionarios con juegos de caracteres mezclando UTF-8 y 8bit.
add_strategy
default_strategy
disable_strategy
syslog
syslog_facility
log_file
pid_file
fast_start
without_mmap
depth número
Fija la longitud de la cola para la llamada al sistema listen(2)
. En
GNU/Linux suele estar fijada en 128.
sección site
Incluye una única directiva, site
, que apunta bien a un archivo, bien a un
texto plano con el mensaje a mostrar cuando se solicita información al
servidor sobre sí mismo con la orden SHOW SERVER
del protocolo DICT. Si
aparece debe ser la primera sección del archivo.
sección access
Esta sección debe ir en segundo lugar y contiene las restricciones de acceso tanto al servidor mismo como a los diferentes diccionarios si se da el caso.
En las directivas de acceso se puede usar un asterisco para coincidir con un grupo de caracteres (*) y un cierre de interrogación (?) para coincidir con uno solo; los siguientes textos son válidos: 10.0.0.* y *.taquiones.net.
También es posible emplear direcciones IP
, rangos y máscaras de red al uso
habitual, como en 10.0.0.0:10.0.0.255 y 10.0.0.0/24.
Las directivas pueden aparecer varias veces pero no deben mezclar en sus parámetros