Ho problemi con un'applicazione web che sto scrivendo:l'applicazione web, che viene eseguita come utente nobody
, deve avviare un inkscape
processo per manipolare alcuni file SVG. Perché questo viene eseguito come utente nobody
, non esiste una home directory. Quello che sto facendo è creare una directory temporanea in /tmp
e provando a impostarla come directory home tramite export HOME=/tmp/someUniqueId
. Quindi ho impostato alcune cose in quella home directory "temporanea", come un collegamento simbolico .fonts
nella cartella per i file dei font da utilizzare.
So che funziona per trovare il ~/.fonts
directory. Ma quando lancio Inkscape, tutto ciò che ricevo è un messaggio che Inkscape non è stato in grado di creare il .inkscape
directory:
Non $HOME
impostare la posizione della mia home directory? Perché Inkscape sta ancora tentando di accedere a /
come la mia home directory?
Risposta accettata:
Inkscape, essendo un'applicazione GTK, utilizza la funzione GLib g_get_home_dir per trovare la home directory dell'utente. Come documentato in quel link, g_get_home_dir
non consulta $HOME
, ma piuttosto /etc/passwd
. Dovresti correggere Inkscape per controllare $HOME
prima (come mostrato in quel link).