libvmdk

Del nabo…, del nabo.


Introducción

Según se lee en el repositorio de este proyecto (o la buena intención que pudiera tener quien está detrás), el estado de este proyecto es apenas «alfa». ¿Por qué entonces aparece la biblioteca mencionada en varias otras aplicaciones, como The Sleuth Kit? Ah… misterios, misterios de la vida.

A primera vista, uno podría decir que es uno como muchos otros proyectos open source, pero yo por el momento sólo lo puedo catalogar como «una buena intención». Hay mucho que debe trabajarse para que lo que actualmente provee pueda utilizarse sin muchos problemas.

Aquí relato los pasos que he seguido para construir esta biblioteca. He optado por crear un fork de esta para evitar la reedición de un script debido a las múltiples pruebas que preveo que tendré que hacer. Aunque el relato cubre la mencionada edición y bien puede seguirse clonando el repositorio original, las instrucciones parten de la descarga del fork (ver notas).

Construcción

Iniciamos clonando el mencionado fork, cambiándonos al directorio que se crea.

$ git clone https://github.com/errodriguez/libvmdk.git
$ cd libvmdk/

En este punto, se procederá a editar el archivo autogen.sh para incluir:

if ! test -x "${BINDIR}/aclocal";
then
# Default location of Homebrew installed binaries.
# If not in your "profile", execute:
# eval "$(/opt/homebrew/bin/brew shellenv)"
# To add all required env variables to your session.
BINDIR="$HOMEBREW_PREFIX/bin";
fi

Justo antes de la última validación:

if ! test -x "${BINDIR}/aclocal";
then
echo "Unable to find autotools";

exit ${EXIT_FAILURE};
fi

Como podrá leerse en el código que se agrega, es para que se considere la ubicación de las bibliotecas de las Autotools para quienes las hayan agregado mediante Homebrew (opción no considerada en el script). Posteriormente, encontrarán en mi fork que esta actualización ya ha sido realizada y no será necesario repetirla.

Con la modificación del script hecha, se procede a:

$ ./synclibs.sh
$ ./autogen.sh

y así, se podrá:

$ ./configure --enable-verbose-output --enable-debug-output --prefix=/usr/local

Por defecto la instalación ocurre en /usr/local, pero esto puede cabiarse mediante la opción --prefix. Aunque parezca reiterativo aquí, dado el desorden que ha resultado este proyecto, no me he confiado y he decidido remarcar el punto 😉.

Tras esto, sólo bastará hacer:

$ make

y proceder con el correspondiente:

$ sudo make install

Desinstalación

Para la desinstalación de la biblioteca se hace uso de la opción «uninstall» del Makefile.

$ sudo make uninstall

Si además se busca retirar el directorio de trabajo (donde se realizó la compilación), se recomienda que, antes, se aplique la opción de limpieza y luego se borre el directorio.

$ make clean

Notas

  1. 2025.11.01.- La rama de desarrollo se ha fusionado con la rama principal de mi fork. Se ha generado un pull request para ver si el autor del sitio original lo incorpora a su proyecto.

Referencias

  1. «libvmdk«, cybersecuritystash.com, web. Visited: 2025.10.27. URL: https://cybersecuritystash.com/tools/libvmdk/
  2. «libvmdk«, github.com, repository. Visited: 2025.10.27. URL: https://github.com/libyal/libvmdk
  3. Joachim Metz, «Building«, github.com, wiki. Updated: 2022.07.14; visited: 2025.10.27. URL: https://github.com/libyal/libvmdk/wiki/Building.
  4. Joachim Metz, «Building. Using macOS pkgbuild«, github.com, wiki. Updated: 2022.07.14; visited: 2025.10.27. https://github.com/libyal/libvmdk/wiki/Building#using-macos-pkgbuild.


Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Ávila
Creación: 2025.10.26
Última actualización: 2025.11.01
El contenido de este sitio puede ser copiado y reproducido libremente, siempre que no se altere y se cite su origen. Marcas y productos registrados se citan por referencia y sin fines de lucro ni dolo. Todas las opiniones son a título personal del o de los autores de estas y, salvo que se exprese de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello de lo que se trata. Para conocer más sobre la posición de privacidad y responsabilidad respecto de lo que se presenta en este sitio web y de cómo se ha obtenido, consulte la declaración al respecto.