El blog de Juan Palómez

6 septiembre 2011

Compilar mysql-udf-regexp en RHEL 6 x86_64

Filed under: Uncategorized — Etiquetas: , , , , , , — thisisoneball @ 21:14

Instrucciones para compilar las UDFs de expresiones regulares de https://launchpad.net/mysql-udf-regexp en RHEL 6 para x86_64

En la web no proporcionan ningún archivo donde se pueda bajar todo el paquete con las fuentes. Sugieren ejecutar el comando

bzr branch lp:mysql-udf-regexp

pero a mí no me funcionaba, solo me funcionó de esta manera:

bzr branch http://bazaar.launchpad.net/~vcs-imports/mysql-udf-regexp/trunk

En mi red tengo que salir a través de un proxy, y bzr requiere proxy HTTP y HTTPS, así que tuve que configurarlo en las variables de entorno http_proxy y https_proxy, instalar el paquete “bzr”, que viene en el repositorio principal de RHEL6, y ejecutar el comando anterior.

Esto deja las fuentes del proyecto en el directorio ./trunk/regexp

El programa requiere las fuentes de Mysql, o al menos los archivos include (.h) de éste para poder compilar. Si has instalado Mysql desde fuentes deberías tener estos archivos. En mi caso tengo instalado el paquete de binarios, pero he podido bajar el paquete de fuentes correspondiente a la misma versión de Mysql que tengo instalada, y ha funcionado.

Pero no basta con los ficheros .h del paquete de ficheros fuente, también necesita otros del paquete de binarios, sobre todo porque esa es la versión que se está ejecutando en el sistema, y contiene información de cómo está configurado el servidor. El script ./configure solo deja especificar uno de estos dos directorios, con la opcion --with-mysql-src, así que la única manera de especificar ambos que he encontrado es

(/usr/local/percona es donde está instalado el paquete de binarios, y /usr/local/Percona-Server-5.1.54-rel12.5 el de fuentes):

CFLAGS='-I/usr/local/percona/include/mysql' ./configure --with-mysql-src=/usr/local/Percona-Server-5.1.54-rel12.5

CFLAGS='-I/usr/local/percona/include/mysql' make

De esta manera ya compila, solo falta instalar la biblioteca. Por alguna razón la crea en un directorio oculto llamado .libs

Una forma de instalarlo es copiar la biblioteca dinámica al directorio plugin de Mysql:

cp .libs/regexp.so /usr/local/percona/lib/mysql/plugin/

Y crear las funciones en Mysql:


CREATE FUNCTION regexp_like RETURNS INTEGER SONAME "regexp.so";
CREATE FUNCTION regexp_substr RETURNS STRING SONAME "regexp.so";
CREATE FUNCTION regexp_instr RETURNS INTEGER SONAME "regexp.so";
CREATE FUNCTION regexp_replace RETURNS STRING SONAME "regexp.so";

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: