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.
👉 ¿Te gustó este post?
✉️ Suscríbete para recibir más contenido o mira más en YouTube.
☕ Apóyame con un café :)