如何让一个glib应用程序在不同的路径中寻找“模式”?

如何让一个glib应用程序在不同的路径中寻找“模式”?

我已经构建并安装了一个使用 Glib-2.0 的应用程序到/opt/myapp.但是,当我运行它时,它会在/usr/share/glib-2.0/schemas.

如何告诉应用程序在其他地方查找架构文件?

笔记:

  • 运行时解决方案比编译时解决方案更可取。
  • 它是 nemo 4.8.6,使用介子构建。
  • 该发行版是 Devuan GNU/Linux Beowulf。

答案1

有一个环境变量控制 Glib 搜索“设置模式”的位置:GSETTINGS_SCHEMA_DIR。所以,执行:

export GSETTINGS_SCHEMA_DIR="/opt/myapp/share/glib-2.0/schemas:${GSETTINGS_SCHEMA_DIR}"

(假设这是您的应用程序的架构文件所在的位置)。

一个更“直接”的替代方案是添加环境变量的路径,但可能会解决其他一些问题XDG_DATA_DIRS;这些路径特别用作搜索模式的根。所以:

export XDG_DATA_DIRS="/opt/myapp/share/:${XDG_DATA_DIRS}"

感谢@steeldriver 的评论。

相关内容