Compilar DuckDB en sistemas de 32 bits


¿Necesitas utilizar DuckDB en una Raspberry Pi o en un sistema Linux de 32 bits?

En este post te voy a mostrar como realizar el proceso de compilación de DuckDB en sistemas Linux de 32 bits (Raspbian). Ya que, al momento de escribir este post, no se cuenta con una forma simple y sencilla para obtener DuckDB para sistemas de 32 bits.

El primer paso es descargar el repositorio del proyecto en Github, para ello utilizamos git con el siguiente comando:

git https://github.com/duckdb/duckdb.git

Ahora debemos instalar los programas requeridos para realizar la compilación, estos son:

  • CMake
  • GCC
  • Ninja (es opcional pero te recomiendo utilizarlo)

Para instalarlos en Raspbian ejecutamos los siguientes comandos en la terminal:

sudo apt-get update
sudo apt-get install -y git g++ cmake ninja-build libssl-dev

Si estás utilizando otra distro puedes checar el comando correspondiente aquí

Ahora si podemos comenzar el proceso de compilación, para ello nos pasamos a la carpeta duckdb que acabamos de descargar:

cd duckdb

Y ejecutamos el siguiente comando:

GEN=ninja make

Con esto empezará el proceso de compilación que puede tardar bastante tiempo (poco más de 1 hora aproximadamente).

Puedes ver todo el proceso en el siguiente video:

Cerca de terminar el proceso de compilación nos botará un error, esto sucede porque el archivo que construye el proyecto no está preparado para sistemas de 32 bits.

Pero no te preocupes ya que lo podemos resolver de una forma muy sencilla y el proceso final de construcción del proyecto podrá retomarse sin mayor problema.

En la carpeta duckdb tenemos un archivo llamado CMakeLists.txt, con tu editor de preferencia debes abrirlo y en la línea donde se invoque la función:

target_link_libraries(${LIBRARY } ${EXT_NAME}_extension)

Debes añadir -latomic, quedando de la siguiente forma:

target_link_libraries(${LIBRARY } ${EXT_NAME}_extension -latomic)

Una vez modificado, guardamos los cambios y volvemos a ejecutar el comando make:

GEN=ninja make

Con esto terminará el proceso de construcción y podremos encontrar DuckDB dentro de la carpeta ./build/release/duckdb

Y así es como podemos compilar DuckDB en sistemas linux de 32 bits.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *