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).