Tengo problemas con una aplicación web que estoy escribiendo:la aplicación web, que se ejecuta como usuario nobody , necesita iniciar un inkscape proceso para manipular algunos archivos SVG. Porque esto se ejecuta como usuario nobody , no hay directorio de inicio. Lo que estoy haciendo es crear un directorio temporal en /tmp y tratando de configurar eso como el directorio de inicio a través de export HOME=/tmp/someUniqueId . Luego configuro algunas cosas en ese directorio de inicio "temporal", como un enlace simbólico .fonts a la carpeta para usar los archivos de fuente.
Sé que esto funciona para encontrar ~/.fonts directorio. Pero cuando ejecuto Inkscape, todo lo que recibo es un mensaje que indica que Inkscape no pudo crear el .inkscape directorio:

No $HOME establecer la ubicación de mi directorio de inicio? ¿Por qué Inkscape sigue intentando acceder a /? como mi directorio de inicio?
Respuesta aceptada:
Inkscape, al ser una aplicación GTK, utiliza la función GLib g_get_home_dir para encontrar el directorio de inicio del usuario. Como se documenta en ese enlace, g_get_home_dir no consulta $HOME , sino /etc/passwd . Tendrías que parchear Inkscape para verificar $HOME primero (como se muestra en ese enlace).