Instalación a partir de las fuentes

Versión corta

Para compilar asumiendo que tiene todas las dependencias en su ruta de búsqueda

git clone https://github.com/MobilityDB/MobilityDB
mkdir MobilityDB/build
cd MobilityDB/build
cmake  ..
make
sudo make install

Los comandos anteriores instalan la rama master. Si desea instalar otra rama, por ejemplo, develop, puede reemplazar el primer comando anterior de la siguiente manera:

git clone --branch develop https://github.com/MobilityDB/MobilityDB

También debe configurar lo siguiente en el archivo postgresql.conf según la versión de PostGIS que haya instalado (a continuación usamos PostGIS 3):

shared_preload_libraries = 'postgis-3'
max_locks_per_transaction = 128

Si no carga previamente la biblioteca PostGIS con la configuración anterior, no podrá cargar la biblioteca MobilityDB y obtendrá un mensaje de error como el siguiente:

ERROR:  could not load library "/usr/local/pgsql/lib/libMobilityDB-1.1.so":
  undefined symbol: ST_Distance

Puede encontrar la ubicación del archivo postgresql.conf de la manera siguiente.

$ which postgres
/usr/local/pgsql/bin/postgres
$ ls /usr/local/pgsql/data/postgresql.conf
/usr/local/pgsql/data/postgresql.conf

Como puede verse, los binarios de PostgreSQL están en el subdirectorio bin mientras que el archivo postgresql.conf está en el subdirectorio data.

Una vez que MobilityDB está instalado, debe habilitarse en cada base de datos en la que desee usarlo. En el siguiente ejemplo, usamos una base de datos llamada mobility.

createdb mobility
psql mobility -c "CREATE EXTENSION PostGIS"
psql mobility -c "CREATE EXTENSION MobilityDB"

Las dos extensiones PostGIS y MobilityDB también se pueden crear en un solo comando.

psql mobility -c "CREATE EXTENSION MobilityDB cascade"

Obtener las fuentes

La última versión de MobilityDB se puede encontrar en https://github.com/MobilityDB/MobilityDB/releases/latest

wget

Para descargar esta versión:

wget -O mobilitydb-1.0.tar.gz https://github.com/MobilityDB/MobilityDB/archive/v1.0.tar.gz

Ir a la “Versión corta” para las instrucciones de extracción y compilación.

git

Para descargar el repositorio

git clone https://github.com/MobilityDB/MobilityDB.git
cd MobilityDB
git checkout v1.0

Ir a la “Versión corta” para las instrucciones de compilación (no hay tar ball).

Habilitación de la base de datos

MobilityDB es una extensión que depende de PostGIS. Habilitar PostGIS antes de habilitar MobilityDB en la base de datos se puede hacer de la siguiente manera

CREATE EXTENSION postgis;
CREATE EXTENSION mobilitydb;

Alternativamente, esto se puede hacer con un solo comando usando CASCADE, que instala la extensión PostGIS requerida antes de instalar la extensión MobilityDB

CREATE EXTENSION mobilitydb CASCADE;

Dependencias

Dependencias de compilación

Para poder compilar MobilityDB, asegúrese de que se cumplan las siguientes dependencias:

  • Sistema de compilación multiplataforma CMake.

  • Compilador C gcc o clang. Se pueden usar otros compiladores ANSI C, pero pueden causar problemas al compilar algunas dependencias.

  • GNU Make (gmake o make) versión 3.1 o superior. Para muchos sistemas, GNU make es la versión predeterminada de make. Verifique la versión invocando make -v.

  • PostgreSQL versión 12 o superior. PostgreSQL está disponible en http://www.postgresql.org.

  • PostGIS versión 3 o superior. PostGIS está disponible en https://postgis.net/.

  • Biblioteca científica GNU (GSL). GSL está disponible en https://www.gnu.org/software/gsl/. GSL se utiliza para los generadores de números aleatorios.

Nótese que PostGIS tiene sus propias dependencias, como Proj, GEOS, LibXML2 o JSON-C y estas bibliotecas también se utilizan en MobilityDB. Consulte http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS para obtener una matriz de compatibilidad de PostGIS con PostgreSQL, GEOS y Proj.

Dependencias opcionales

Para la documentación del usuario

  • Los archivos DocBook DTD y XSL son necesarios para crear la documentación. Para Ubuntu, son proporcionados por los paquetes docbook y docbook-xsl.

  • El validador XML xmllint es necesario para validar los archivos XML de la documentación. Para Ubuntu, lo proporciona el paquete libxml2.

  • El procesador XSLT xsltproc es necesario para crear la documentación en formato HTML. Para Ubuntu, lo proporciona el paquete libxslt.

  • El programa dblatex es necesario para crear la documentación en formato PDF. Para Ubuntu, lo proporciona el paquete dblatex.

  • El programa dbtoepub es necesario para construir la documentación en formato EPUB. Para Ubuntu, lo proporciona el paquete dbtoepub.

Para la documentación de los desarrolladores

  • El programa doxygen es necesario para construir la documentación. Para Ubuntu, lo proporciona el paquete doxygen.

Ejemplo: instalar dependencias en Linux

Dependencias de base de datos

sudo apt-get install postgresql-14 postgresql-server-dev-14 postgresql-14-postgis

Dependencias de construcción

sudo apt-get install cmake gcc libgsl-dev

Configuración

MobilityDB usa el sistema cmake para realizar la configuración. El directorio de compilación deber ser diferente del directorio de origen.

Para crear el directorio de compilación

mkdir build

Para ver las variables que se pueden configurar

cd build
cmake -L ..

Construir e instalar

Nótese que la versión actual de MobilityDB solo se ha probado en sistemas Linux, MacOS y Windows. Puede funcionar en otros sistemas similares a Unix, pero no se ha probado. Buscamos voluntarios que nos ayuden a probar MobilityDB en múltiples plataformas.

Las siguientes instrucciones comienzan desde path/to/MobilityDB en un sistema Linux

mkdir build
cd build
cmake ..
make
sudo make install

Cuando cambia la configuración

rm -rf build

e inicie el proceso de construcción como se mencionó anteriormente.

Pruebas

MobilityDB utiliza ctest, el programa controlador de pruebas de CMake, para realizar pruebas. Este programa ejecutará las pruebas e informará los resultados.

Para ejecutar todas las pruebas

ctest

Para ejecutar un archivo de prueba dado

ctest -R '021_tbox'

Para ejecutar un conjunto de archivos de prueba determinados se pueden utilizar comodines

ctest -R '022_*'

Documentación

La documentación del usuario de MobilityDB se puede generar en formato HTML, PDF y EPUB. Además, la documentación está disponible en inglés y en otros idiomas (actualmente, solo en español). La documentación del usuario se puede generar en todos los formatos y en todos los idiomas, o se pueden especificar formatos y/o idiomas específicos. La documentación del desarrollador de MobilityDB solo se puede generar en formato HTML y en inglés.

Las variables utilizadas para generar la documentación del usuario y del desarrollador son las siguientes:

Tabla 1.1. Variables para la documentación del usuario y del desarrollador

VariableValor por defectoComentario
DOC_ALLBOOL=OFFLa documentación del usuario se genera en formatos HTML, PDF y EPUB.
DOC_HTMLBOOL=OFFLa documentación del usuario se genera en formato HTML.
DOC_PDFBOOL=OFFLa documentación del usuario se genera en formato PDF.
DOC_EPUBBOOL=OFFLa documentación del usuario se genera en formato EPUB.
LANG_ALLBOOL=OFFLa documentación del usuario se genera en inglés y en todas las traducciones disponibles.
ESBOOL=OFFLa documentación del usuario se genera en inglés y en español.
DOC_DEVBOOL=OFFLa documentación del desarrollador en inglés se genera en formato HTML

Generar la documentación del usuario y del desarrollador en todos los formatos y en todos los idiomas.

cmake -D DOC_ALL=ON -D LANG_ALL=ON -D DOC_DEV=ON ..
make doc
make doc_dev

Generar la documentación del usuario en formato HTML y en todos los idiomas.

cmake -D DOC_HTML=ON -D LANG_ALL=ON ..
make doc

Generar la documentación del usuario en inglés en todos los formatos.

cmake -D DOC_ALL=ON ..
make doc

Generar la documentación del usuario en formato PDF en inglés y en español.

cmake -D DOC_PDF=ON -D ES=ON ..
make doc