Pasos para compilar darktable en Ubuntu 22.04LTS
Probado con darktable 3.8, 3.8.1 y 3.9
Hay que seguir más pasos que en versiones anteriores de Ubuntu, pero se puede hacer igual.
Esta compilación activa todas las dependencias y funcionalidades opcionales, por lo que el resultado final es una versión algo más completa que si simplemente instalamos darktable con sudo apt install darktable
. Tambien nos puede servir para instalar versiones más nuevas que aún no están en nuestra distribución de Linux.
Para los curiosos, aquí estan las dependecias oficiales del paquete darktable
en Jammy (Ubuntu 22.04LTS) y vereis que faltan algunas de las que incluyo más abajo.
1. Actualizamos el sistema
sudo apt update && sudo apt upgrade -y
2 Instalamos todas las dependencias menos openexr y jasper (explicado el porqué, más abajo):
sudo apt install -y \
git \
gcc \
cmake \
perl \
g++ \
xsltproc \
json-schema-test-suite \
intltool \
clang \
po4a \
libxml2-utils \
libimage-exiftool-perl \
zlib1g-dev \
llvm-13-dev \
libjson-glib-dev \
libgtk-3-dev \
libavif-dev \
libpugixml-dev \
libjpeg-dev \
libgphoto2-dev \
liblensfun-dev \
libheif-dev \
libsqlite3-dev \
libwebp-dev \
librsvg2-dev \
libcurl4-openssl-dev \
liblcms2-dev \
libexiv2-dev \
libsoup2.4-dev \
libopenjp2-7-dev \
libsecret-1-dev \
libcolord-dev \
libgraphicsmagick1-dev \
libgmic-dev \
liblua5.4-dev \
libosmgpsmap-1.0-dev \
libcolord-gtk-dev \
libsdl2-dev \
libcups2-dev \
libglib2.0-dev \
librsvg2-dev
Notas sobre dependencias:
-
Si instalas llvm sin más, se instala la versión 14, que por algún motivo no lo detecta darktable, por eso especificamos instalar la versión 13 con llvm-13-dev en vez.
-
En Ubuntu 22.04
libopenexr-dev
instala la versión 2.5.7 de OpenEXR pero darktable necesita la versión 3.0. Para solucionar este problema instalaremos OpenEXR directamente de su repositorio más adelante. -
En Ubuntu 22.04 el paquete
jasper
es la versión 0.69 y no es válida para darktable, por lo que procedemos en vez a instalarlo directamente de la fuente más adelante (versión 3.0.3)
3 Instalamos Openexr 3.1.5 del código fuente
cd
wget https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.1.5.tar.gz
tar xf v3.1.5.tar.gz && rm v3.1.5.tar.gz
mkdir openexr-build && cd openexr-build
cmake ../openexr-3.1.5
sudo make
sudo make install
cd && rm -rf openexr-build && rm -rf openexr-3.1.5
4 Instalamos Jasper 3.0.3 del código fuente
cd
wget https://github.com/jasper-software/jasper/archive/version-3.0.3/jasper-3.0.3.tar.gz
tar xf jasper-3.0.3.tar.gz && rm jasper-3.0.3.tar.gz
cd jasper-version-3.0.3
mkdir BUILD && cd BUILD
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_INSTALL_RPATH=YES \
-DJAS_ENABLE_DOC=NO \
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-3.0.3 \
..
make
sudo make install
cd && rm -rf jasper-3.0.3
5. Clona el repositorio darktable con sus submódulos
git clone --recurse-submodules https://github.com/darktable-org/darktable.git
6. Adelantate a un fallo
Debido a una incidencia en Git explicada aquí, es posible que después de la instalación, darktable se quede etiquetado como versión desconocida.
Sale esto…
$ ./darktable --version
this is darktable unknown-version
en vez de algo como esto…
$ ./darktable --version
this is darktable 3.8.1+dirty
Para evitar este fallo (hasta que se solucione) podemos arreglar simplemente marcando como carpeta segura a la carpeta donde hemos clonado el repositorio. En mi caso es /home/alejandro/darktable
sudo git config --global --add safe.directory /home/alejandro/darktable
7. Selecciona la versión que deseas instalar. En el momento de este escrito la última versión estable es la 3.8.1
cd darktable
git checkout release-3.8.1
Opcionalmente puedes escribir git tag
para ver el listado de los releases actuales.
Recordemos que las versiones pares (3.6, 3.8) son las versiones estables y las impares (3.7, 3.9), las de desarrollo. Por lo que si queremos la última versión estable deberíamos seleccionar el último release par.
Finalmente compilamos:
./build.sh
Nota: Si ya has realizado un build anteriormente borra la carpeta build
antes de ejecutar el comando anterior.
Cuando termine te indicará el comando que tienes que poner para finalmente instalar la aplicación. Ejecutalo con sudo:
[100%] Built target manpages
darktable finished building.
To actually install darktable you need to type:
$ cmake --build "/home/alejandro/darktable/build" --target install -- -j1
sudo cmake --build "/home/alejandro/darktable/build" --target install -- -j1
8. ¡Disfrutar de darktable!
Ya tendrás darktable instalado en la carpeta /opt/darktable
.
Puedes abrirlo ejecutando /opt/dartable/bin/darktable
o crearte un enlace directo al mismo para mayor comodidad
sudo ln -s /opt/darktable/share/applications/darktable.desktop /usr/share/applications/darktable.desktop
9. Actualizar versión y/o desinstalar
Darktable utiliza 2 carpetas:
-
/opt/darktable
para almacenar la aplicación en sí. -
~/.config/darktable
para almacenar tu configuración personal y tu base de datos.
Si más adelante deseas compilarte e instalarte un versión más nueva, querrás borrar la carpeta /opt/darktable
solamente, para que así mantengas tu base de datos y configuración en la versión nueva.
Si en cambio quieres eliminar darktable por completo de tu sistema y empezar con una instalación limpia (borrando por tanto tu configuración actual), entonces borra ambas carpetas antes de volver a compilar e instalar de nuevo.
¿Problemas?
Si te encuentras con cualquier problema pide ayuda.
Puedes crear un fichero log de cualquier comando anexando | tee ficherolog.txt
a tu comando. Por ejemplo si te falla el comando ./build.sh
, puedes en vez escribir /.build.sh | tee ficherolog.txt
y te creara un fichero llamado ficherolog.txt
con todo lo que ha salido en tu ventana de comandos.
Muy útil para luego compartir este fichero en el foro y explicar mejor donde te está fallando.