Ich habe Probleme mit einer Webanwendung, die ich schreibe:Die Webanwendung, die als Benutzer nobody
ausgeführt wird , muss ein inkscape
starten Prozess, um einige SVG-Dateien zu manipulieren. Denn dieser läuft als Benutzer nobody
, es gibt kein Home-Verzeichnis. Ich erstelle ein temporäres Verzeichnis unter /tmp
und versuchen, dies über export HOME=/tmp/someUniqueId
als Home-Verzeichnis festzulegen . Ich habe dann ein paar Dinge in dieses „temporäre“ Home-Verzeichnis gesetzt, wie einen Symlink .fonts
in den Ordner für die zu verwendenden Schriftdateien.
Ich weiß, dass dies funktioniert, um die ~/.fonts
zu finden Verzeichnis. Aber wenn ich Inkscape starte, bekomme ich nur eine Meldung, dass Inkscape die .inkscape
nicht erstellen konnte Verzeichnis:
Nicht $HOME
den Speicherort meines Home-Verzeichnisses festlegen? Warum versucht Inkscape immer noch, auf /
zuzugreifen als mein Home-Verzeichnis?
Akzeptierte Antwort:
Inkscape, eine GTK-Anwendung, verwendet die GLib-Funktion g_get_home_dir, um das Home-Verzeichnis des Benutzers zu finden. Wie in diesem Link dokumentiert, g_get_home_dir
konsultiert $HOME
nicht , sondern /etc/passwd
. Sie müssen Inkscape patchen, um $HOME
zu überprüfen zuerst (wie in diesem Link gezeigt).