Llevaba tiempo intentando compilar darktable y hasta ahora no lo habia conseguido con éxito. Había seguido las indicaciones de nuestro compañero @criadoperez en sus artículos, pero supongo que mi desconocimiento del lenguaje y de la complejidad de GNU/Linux, habian hecho fracasar en los intentos; en diversas distribuciones.
Últimamente he visonado un video de Aurelien Pierre sobre la optimización de darktable y siguiendo sus pasos (que es lo que pone en la pagina de github de darktable) he conseguido mi objetivo.
Vista mi dificultad y ver que lo que conseguido, dejo las instrucciones en su totalidad de la web de Github por si alguien más quiere probar. Segun Aurelien, la compilación es la mejor manera para optimizar darktable con nuestro hardware.
Tabla de contenido
(estos enlaces van a la web de Github, V.O.)
- ¿Por qué no se detecta mi cámara cuando está enchufada?
- ¿Por qué mi lente no es detectada/corregida en el cuarto oscuro?
- ¿Por qué las miniaturas en la vista de la mesa de luz se ven diferentes a la vista previa en la vista del cuarto oscuro?
Documentación
El manual de usuario de darktable se mantiene en el repositorio de dtdocs .
La documentación de la API de Lua se mantiene en el repositorio de luadocs .
Sitio web
El sitio web ( https://www.darktable.org/ ) se mantiene en el repositorio dtorg .
Requisitos
Plataformas compatibles
- Linux (64 bits)
- BSD gratuito (64 bits)
- Windows 8 (64 bits), Windows 10 (64 bits)
- Mac OS
Las plataformas de 32 bits no son oficialmente compatibles; es posible que funcionen o no.
El soporte de Windows aún es joven y sufre de errores que no afectan a Linux. Si es posible, prefiera usar darktable en Linux.
Hardware
(mínimo viable / mínimo recomendado ):
- RAM: 4GB / 8GB
- Procesador: Intel Pentium 4 / Intel Core i5 4 × 2,4 GHz
- GPU: ninguna / Nvidia con 1024 núcleos CUDA, 4 GB, compatible con OpenCL 1.2
- espacio libre en disco: 250 MB / 1 GB
darktable puede ejecutarse en configuraciones livianas (incluso en una Raspberry Pi), pero espera que módulos como reducción de ruido, contraste local, ecualizador de contraste, retoque o licuar sean más lentos que utilizables.
Una GPU no es obligatoria, pero se recomienda encarecidamente para una experiencia más fluida. Las GPU Nvidia se recomiendan por seguridad porque algunos controladores AMD se comportan de manera poco confiable con algunos módulos (por ejemplo, contraste local).
Instalando
Si la última versión aún no está disponible como un paquete prediseñado para su distribución, puede compilar el software usted mismo siguiendo las instrucciones a continuación .
Último lanzamiento
3.8.1 (estable)
- Descargar ejecutable para Windows
- Descargar ejecutable para Mac OS
- Instalar paquetes y repositorios nativos para Linux
- Instalar el paquete Flatpak para Linux
- Más información sobre la instalación de darktable en cualquier sistema
Cuando utilice un paquete prediseñado, asegúrese de que se haya creado con compatibilidad con Lua, OpenCL, OpenMP y Colord. Estos son opcionales y no evitarán que darktable se ejecute si faltan, pero su ausencia degradará la experiencia del usuario. En particular, algunos paquetes Flatpak, Snap y Appimage carecen de compatibilidad con OpenCL y Lua.
Instantánea de desarrollo
La instantánea de desarrollo refleja el estado actual de la rama principal. Está diseñado para pruebas y generalmente no es seguro. Consulte las notas a continuación para conocer las advertencias y precauciones sobre el uso de la rama principal.
- Instale paquetes y repositorios nativos para Linux (una instantánea por día).
- No se proporcionan paquetes precompilados para la rama maestra en macOS y Windows. Vea cómo construirlo manualmente a continuación.
Actualización desde versiones anteriores
Al actualizar darktable desde una versión anterior, solo necesita instalar la versión más reciente. Los archivos existentes se conservarán.
Sin embargo, las versiones más recientes ocasionalmente necesitan cambiar la estructura de la base de datos de la biblioteca (que contiene la lista completa de imágenes conocidas por darktable, con su historial de edición). Si esto sucede, se le pedirá que actualice la base de datos o que cierre el software.
La migración a una estructura de base de datos más nueva/versión más nueva significa que sus ediciones (tanto nuevas como antiguas) ya no serán compatibles con versiones anteriores de darktable. Las actualizaciones son definitivas. Las versiones más nuevas siempre son compatibles con las ediciones anteriores, pero las ediciones más recientes generalmente no son compatibles con las versiones anteriores.
darktable automáticamente realiza una copia de seguridad de la base de datos de la biblioteca cuando una nueva versión hace que se actualice ( ~/.config/darktable/library.db-pre-3.0.0
por ejemplo), para que pueda volver a la versión anterior restaurando esta copia de seguridad si es necesario (simplemente cámbiele el nombre a library.db
).
Si intenta abrir una base de datos más nueva con una versión anterior del software, se descartarán todas las partes de sus ediciones que se realizaron con nuevas funciones y las perderá. Esto también se aplica a los archivos XMP sidecar.
Si planea cambiar regularmente entre dos versiones (nueva/inestable y antigua/estable), consulte a continuación los detalles sobre cómo hacerlo de manera segura.
Obtención de extensiones
Las extensiones y complementos utilizan el lenguaje de secuencias de comandos Lua y se pueden descargar aquí . El soporte de Lua es opcional en darktable, así que asegúrese de tener el lua
intérprete y sus archivos de desarrollo (paquete lua-dev
o lua-devel
, dependiendo de las distribuciones) instalados en su sistema mientras construye o asegúrese de que el paquete que está usando haya sido construido con esta biblioteca.
Las extensiones permiten exportar para varios medios y sitios web, fusionar/apilar/combinar HDR, panoramas o horquillado de enfoque, aplicar reconocimiento facial basado en IA, administrar etiquetas y datos de GPS, etc.
Edificio
dependencias
Compiladores compatibles:
- Sonido: 8, 9, 10
- CCG: 8, 9, 10
- Mingw64: 6, 7
Dependencias requeridas (versión mínima):
- CMake 3.10
- GTK 3.22
- simplista 2.40
- SQLite 3.15 (pero 3.24 muy recomendable)
Dependencias opcionales (versión mínima):
- OpenMP 4.5 (para subprocesos múltiples de CPU y vectorización SIMD)
- LLVM 3.9 (para comprobaciones de OpenCL en tiempo de compilación)
- OpenCL 1.2 (para computación acelerada por GPU)
- Lua 5.4 (para complementos y secuencias de comandos de extensión)
- libavif 0.7.2 (para importación/exportación AVIF)
- WebP 0.3.0 (para exportaciones WebP)
Dependencias opcionales (sin requisito de versión):
- Gphoto2 (para conexión de cámara)
- Lensfun (para la corrección automática de lentes)
- OpenEXR (para importación y exportación EXR)
- OpenJPEG (para exportación Jpeg2000)
- Colord, Xatom (para obtener el perfil de color de la pantalla del sistema)
- G’Mic (para compatibilidad con gmz lut comprimido)
- PortMidi (para soporte de entrada MIDI)
- SDL2 (para soporte de entrada de gamepad)
Para instalar todas las dependencias en sistemas Linux, puede utilizar los repositorios fuente de su distribución (siempre y cuando estén actualizados):
Fedora y RHEL
sudo dnf builddep darktable
abrirSuse
sudo zypper si -d darktable
ubuntu
sed -e ‘/^#\sdeb-src /s/^# *//;t;d’ “/etc/apt/sources.list”
| sudo tee /etc/apt/sources.list.d/darktable-sources-tmp.list > /dev/null
&& (
sudo apt-get update
sudo apt-get build-dep darktable
)
sudo rm /etc/apt/sources.list.d/darktable-sources-tmp.list
Debian
sudo apt-get build-dep darktable
Instalar las dependencias que faltan
Si faltan dependencias obligatorias en su sistema, la compilación del software fallará con errores como Package XXX has not been found
o Command YYY has no provider on this system
. Si ve uno de estos errores, debe averiguar qué paquete proporciona el paquete/comando faltante en su distribución y luego instalarlo. Por lo general, esto se puede hacer en su administrador de paquetes (no en el administrador de aplicaciones que se proporciona habitualmente de forma predeterminada en su distribución) o desde Internet con un motor de búsqueda. Es posible que primero deba instalar un administrador de paquetes (como Synaptic en Debian/Ubuntu o DNF Dragora en Fedora/RHEL).
Este proceso puede ser tedioso, pero solo necesita hacerlo una vez. Consulte esta página sobre la creación de darktable para ver los comandos de una línea que instalarán la mayoría de las dependencias en las distribuciones de Linux más comunes.
Obtener la fuente
Rama maestra (inestable)
La rama maestra contiene la última versión del código fuente y está destinada a:
- como base de trabajo para los desarrolladores,
- para que los probadores beta persigan errores,
- para usuarios dispuestos a sacrificar la estabilidad por nuevas funciones sin esperar la próxima versión.
La rama maestra viene sin garantía de estabilidad y puede corromper su base de datos y archivos XMP, provocar la pérdida de datos e historial de edición o interrumpir temporalmente la compatibilidad con versiones y confirmaciones anteriores.
¿Qué tan peligroso es? La mayor parte del tiempo, es bastante estable. Al igual que con cualquier tipo de implementación de lanzamiento continuo, los errores aparecen con más frecuencia, pero también se solucionan más rápido. A veces, sin embargo, estos errores pueden provocar pérdidas o inconsistencias en el historial de edición de sus imágenes. Esto está bien si no necesita volver a abrir sus ediciones en el futuro, pero tal vez no si administra un patrimonio.
Después de hacer una copia de seguridad de su ~/.config/darktable
directorio y los archivos .XMP de sidecar de cualquier imagen que pretenda abrir con la rama maestra, puede obtener la fuente de la siguiente manera:
git clone --recurse-submodules --depth 1 GitHub - darktable-org/darktable: darktable is an open source photography workflow application and raw developer
cd darktable
Vea a continuación (en “Uso”) cómo iniciar una instalación de prueba de la versión inestable sin dañar su instalación y archivos estables habituales.
Última versión estable
3.8.1
El proyecto darktable lanza dos versiones principales cada año, a mediados de verano y en Navidad, etiquetadas con números pares (por ejemplo, 3.0, 3.2, 3.4, 3.6). Las revisiones menores se etiquetan con un tercer dígito (por ejemplo, 3.0.1, 3.0.2) y en su mayoría proporcionan correcciones de errores y compatibilidad con la cámara. Es posible que desee compilar estas versiones estables usted mismo para obtener un mejor rendimiento para su computadora en particular:
git clone --recurse-submodules --depth 1 GitHub - darktable-org/darktable: darktable is an open source photography workflow application and raw developer
cd darktable
git fetch --tags
git checkout tags/release-3.8.1
Obtener submódulos
Tenga en cuenta que LibXCF , OpenCL , rawspeed , whereami y LibRaw se rastrean a través de submódulos de git, por lo que después de revisar darktable, también debe actualizar/revisar los submódulos:
git submodule update --init
Compilar
Camino fácil
ADVERTENCIA: si ha compilado darktable anteriormente, no olvide eliminar completamente ( rm -R
) los directorios build
y /opt/darktable
para evitar archivos en conflicto de diferentes versiones. Se han informado muchos comportamientos extraños y errores transitorios que se pueden rastrear hasta el caché de compilación que no invalida correctamente las dependencias modificadas, por lo que la forma más segura es eliminar por completo los archivos binarios compilados previamente y comenzar de nuevo desde cero.
darktable proporciona un script de shell que automáticamente se encarga de compilar en Linux y macOS para casos clásicos en un solo comando.
./build.sh --prefix /opt/darktable --build-type Release --install --sudo
Si desea instalar una versión de prueba junto con su versión regular/estable, cambie el prefijo de instalación:
./build.sh --prefix /opt/darktable-test --build-type Release --install --sudo
Esto crea el software solo para su arquitectura, con:
-O3
nivel de optimización,- Compatibilidad con SSE/AVX si se detecta,
- Compatibilidad con OpenMP (multihilo y vectorización) si se detecta,
- Compatibilidad con OpenCL (descarga de GPU) si se detecta,
- Soporte de secuencias de comandos Lua si se detecta.
Si desea que se muestre dartkable junto con sus otras aplicaciones, solo necesita agregar un enlace simbólico:
ln -s /opt/darktable/share/applications/darktable.desktop /usr/share/applications/darktable.desktop
Ahora, su darktable personalizada está lista para usarse como cualquier software preempaquetado.
forma manual
Alternativamente, puede usar una compilación manual para pasar argumentos personalizados.
Linux/mac OS
mkdir build/
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/darktable/ …
make
sudo make install
ventanas
Consulte https://github.com/darktable-org/darktable/blob/master/packaging/windows/BUILD.md
Utilizando
Versión de prueba/inestable
Para usar una versión de prueba de darktable sin dañar los archivos y la base de datos de su versión regular/estable, inicie darktable en una terminal con:
/opt/darktable-test/bin/darktable --configdir “~/.config/darktable-test”
y asegúrese de configurar la opción “escribir archivo sidecar para cada imagen” en “nunca” en preferencias → almacenamiento → XMP. De esta manera, su versión regular/estable guardará sus archivos de configuración en ~/.config/darktable
, como de costumbre, la versión de prueba/inestable guardará en ~/.config/darktable-test
, y las dos versiones no producirán conflictos en la base de datos.
Versión normal/estable
Simplemente inícielo desde el menú de su aplicación de escritorio o, desde una terminal, ejecute darktable
o /opt/darktable/bin/darktable
. Si la instalación no creó un lanzador en su menú de aplicaciones, ejecute:
sudo ln -s /opt/darktable/share/applications/darktable.desktop /usr/share/applications/darktable.desktop
Puede encontrar archivos de configuración de darktable en formato ~/.config/darktable
. Si experimenta bloqueos al inicio, intente iniciar darktable sin OpenCL, desde una terminal, con darktable --conf opencl=FALSE
.
Otras lecturas
Hay una lista completa de instrucciones de compilación para distribuciones relacionadas con Ubuntu/Debian o para Fedora y distribuciones relacionadas . Estas instrucciones de compilación se pueden adaptar fácilmente a muchas otras distribuciones de Linux.
contribuyendo
Hay muchas maneras de contribuir al proyecto darktable:
- escribir un blog sobre mesa oscura
- Crear un tutorial para darktable
- Ayudar a expandir la wiki del usuario o el manual del usuario
- Responda preguntas en la lista de correo de usuarios o en los foros de pixls.us
- Comparta sus ideas en la lista de correo de desarrolladores
- Lanzamientos de prueba
- Revisar solicitudes de incorporación de cambios
- Comience a piratear en darktable y vea la guía del desarrollador
Preguntas más frecuentes
¿Por qué no se detecta mi cámara cuando está enchufada?
Compruebe que tiene instalada la biblioteca gphoto2 más reciente para admitir las cámaras más nuevas.
¿Por qué mi lente no es detectada/corregida en el cuarto oscuro?
Los perfiles de corrección de lentes son proporcionados por Lensfun, que consta de 2 partes: un programa y una base de datos. La mayoría de las distribuciones de Linux brindan una versión lo suficientemente reciente del programa, pero brindan una versión obsoleta de la base de datos. Si Lensfun está correctamente instalado, actualice su base de datos en una terminal ejecutando:
lensfun-update-data
o alternativamente
/usr/bin/g-lensfun-update-data
¿Por qué las miniaturas en la vista de la mesa de luz se ven diferentes a la vista previa en la vista del cuarto oscuro?
Para los archivos RAW que nunca se han editado en darktable (cuando acaba de importarlos), la vista de lighttable, de manera predeterminada, muestra la vista previa JPEG colocada en el archivo RAW por su cámara. La carga de este archivo JPEG es más rápida y hace que la vista de la mesa de luz responda mejor al importar grandes colecciones de imágenes.
Sin embargo, esta miniatura JPEG es procesada por el firmware de la cámara, con algoritmos patentados y colores, nitidez y contraste que pueden no tener el mismo aspecto que el procesamiento de mesa oscura (que es lo que ve al abrir la imagen en la vista del cuarto oscuro). Los fabricantes de cámaras no publican los detalles del procesamiento de píxeles que realizan en su firmware, por lo que su aspecto no se puede reproducir de forma exacta o sencilla con otro software.
Sin embargo, una vez que las imágenes RAW se han editado en la mesa oscura, la miniatura de la mesa de luz debe coincidir exactamente con la vista previa del cuarto oscuro, ya que se procesan de la misma manera.
Si nunca desea ver la miniatura JPEG incrustada en la vista de mesa de luz, para archivos RAW, debe configurar la opción “usar archivo sin formato en lugar de JPEG incrustado del tamaño” a “nunca” en preferencias → mesa de luz.
P.D. Para completar este articulo os dejo el video sobre la optimización de darktable (está en inglés, sí)