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