Saya mengalami masalah dengan aplikasi web yang saya tulis:Aplikasi web, yang berjalan sebagai pengguna nobody , perlu meluncurkan inkscape proses untuk memanipulasi beberapa file SVG. Karena ini berjalan sebagai pengguna nobody , tidak ada direktori home. Apa yang saya lakukan adalah membuat direktori sementara di bawah /tmp dan mencoba mengaturnya sebagai direktori home melalui export HOME=/tmp/someUniqueId . Saya kemudian mengatur beberapa hal di direktori home "sementara" itu, seperti symlink .fonts ke folder untuk file font yang akan digunakan.
Saya tahu ini berfungsi untuk menemukan ~/.fonts direktori. Tetapi ketika saya meluncurkan Inkscape, yang saya dapatkan hanyalah pesan bahwa Inkscape tidak dapat membuat .inkscape direktori:

Bukan $HOME atur lokasi direktori home saya? Mengapa Inkscape masih mencoba mengakses / sebagai direktori home saya?
Jawaban yang Diterima:
Inkscape, sebagai aplikasi GTK, menggunakan fungsi GLib g_get_home_dir untuk menemukan direktori home pengguna. Seperti yang didokumentasikan dalam tautan itu, g_get_home_dir tidak berkonsultasi dengan $HOME , melainkan /etc/passwd . Anda harus menambal Inkscape untuk memeriksa $HOME pertama (seperti yang ditunjukkan pada tautan itu).