常见运行问题
应用运行读取
/usr/share下应用安装资源文件,为什么读取失败?玲珑应用是在容器环境中运行,应用数据会挂载到
/opt/apps/<appid>/下,/usr/share目录下只会存在系统数据,不会存在应用相关数据。因此直接读取/usr/share会失败。建议处理:采用XDG_DATA_DIRS环境变量读取资源,/opt/apps/<appid>/files/share会存在在此环境变量搜索路径中。应用运行时找不到字体库文件?为什么
deb包安装时能读取到对应的字体库?deb包安装时,会依赖带入对应的字体库文件。而玲珑包格式采用自给自足打包格式。除了基本的系统库,runtime里面提供的Qt库与DTK库文件不用自己提供外,其他依赖数据文件,均需自己提供。建议对应的数据文件放入files/share下,采用环境变量XDG_DATA_DIRS读取路径。玲珑应用
runtime里面有什么?能不能往里面添加一些库文件进去?目前玲珑应用依赖的
runtime里面提供的是Qt库与DTK库。因runtime有严格的大小限制。目前不允许往runtime里面添加额外的库文件。应用在容器内运行,运行过程中能不能往容器任意路径下创建配置文件?
可以在
XDG_CONFIG_HOME下创建配置文件。应用数据保存到哪里?在容器外哪里能找到?
因玲珑应用遵循互不干涉原则,
XDG_DATA_HOME、XDG_CONFIG_HOME、XDG_CACHE_HOME环境变量被定义到宿主机~/.linglong/<appid>/对应的路径下,因此用户应用数据会保存在此路径下,应用运行过程中写入数据时,也应该读取对应的环境变量写入数据。禁止读写其它应用的配置。应用提供了
dbus service文件,如何放置?Exec字段写什么?应用提供
dbus service文件时,需要放到entries/dbus-1/services目录下,如果Exec执行玲珑包内二进制,使用--exec选项参数执行对应的二进制。应用安装后,启动器无法找到?
TryExec=xxx, 当xxx 在 $PATH 路径中不存在时,会认为该应用不存在不予显示。
为什么图标显示为小黑点?
desktop 写了 Icon 字段,Icon 字段名称错误或者使用了绝对路径。
为什么图标显示为齿轮?
desktop 未提供 Icon 字段。
图标存放在哪个路径?
svg → $PREFIX/share/icons/hicolor/scalable/apps/
其他格式按分辨率存放,如16X16
png/xpm → $PREFIX/share/icons/hicolor/16X16/apps/
应用自带的
xdg-open、xdg-email为什么失效?runtime中玲珑特殊处理了xdg-open、xdg-email,因此应用禁止执行自己携带的xdg-open、xdg-email可执行文件或者脚本。应用使用系统环境变量未生效,为什么?
当使用环境变量时,需要确认容器内是否存在对应的环境变量,如果没有,需要联系玲珑团队处理。
应用运行需要的库文件没找到,如何提供?
应用需要使用的资源文件,与库文件需要应用自身提供。库文件放到
$PREFIX/lib路径下。应用运行时,为什么
Qt WebEngine渲染进程已崩溃?因系统升级了
glibc,导致应用使用内置浏览器时失败,需要应用重新适配。临时解决方案是设置环境变量:export QTWEBENGINE_DISABLE_SANDBOX=1。应用运行时,找不到
libqxcb.so库或者qtwebengine报错?存在
qt.conf文件时,在文件中配置正确路径,或者使用QTWEBENGINEPROCESS_PATH、QTWEBENGINE_RESOURCES_PATH、QT_QPA_PLATFORM_PLUGIN_PATH、QT_PLUGIN_PATH环境变量配置搜索路径。应用能否自己携带数据库文件,并在运行中往数据库中写入数据?
容器内文件系统是只读文件系统,不允许往应用资源文件中写入数据。
为什么执行携带
suid、guid权限二进制失效?玲珑容器为保证系统安全,容器内禁止执行此类权限二进制。
uab离线包格式在 Debian、Ubuntu 下输入法无法使用?
建议安装
fictx输入法后体验。怎么知道容器环境中安装了哪些包?
ll-builder run --exec bash进入容器环境,使用cat /var/lib/dpkg/status | grep "^Package: "命令查看预装的软件包,另外源码编译的库可以使用cat /runtime/packages.list查看。