- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的构建系统使用介子,将我的应用程序需要的一些文件放在 AppDir/usr/share/myapp/resources
下的 AppDir 上。应用程序在运行时需要读取和写入这些文件。当我查看这些文件时,这些文件位于 AppDir 中,但是当生成 .AppImage 时,独立运行的可执行文件无法访问这些文件。将应用程序与桌面集成时,应用程序安装在 ~/Applications
中,但它不包含这些文件。
这是在不使用 AppImage (ninja install
) 的情况下将应用程序安装到系统上时的可视化效果
🗀 usr
🗀 share
🗀 myapp
🗀 resources
🖹 MainWindow.glade
🖹 dataCache.json
当我执行 DESTDIR=AppDir ninja install
时,结构像这样结束
🗀 AppDir
🗀 usr
🗀 share
🗀 myapp
🗀 resources
🖹 MainWindow.glade
🖹 dataCache.json
当应用程序 (MyApp.AppImage) 与 AppImageLauncher 集成到用户桌面时,它只将 AppImage 复制到 Applications 目录中。没有其他文件夹或文件。
编辑:我正在使用 ./linuxdeploy-x86_64.AppImage --appdir AppDir
创建目录 AppDir。然后我使用 DESTDIR=AppDir ninja install
将应用程序安装到 AppDir,然后我使用 ./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage
创建应用图片
一旦应用程序被捆绑,人们将如何访问 AppDir 中的那些文件?或者如何让应用程序集成将这些文件复制到应用程序文件夹,以便应用程序可以在应用程序运行时访问它们?
最佳答案
要在运行时解析 AppImage 挂载点,您可以使用 APPDIR
环境变量。例如,如果你想解析 usr/share/icons/hicolor/myicon.png
你需要使用下面的路径 $APPDIR/usr/share/icons/hicolor/myicon.png
。
建议您修改应用程序,使其能够根据二进制位置解析其资源。作为替代方案,您可以使用自定义环境变量来设置主二进制文件旁边的路径或配置文件。
关于在 AppImage 中写入文件。这在设计上是不可能的。 AppImage 是在运行时挂载的只读 SquashFS 镜像。任何应用程序数据都应写入 $HOME/.config
或 $HOME/.local/share
,具体取决于它是配置数据还是其他类型的数据。推荐的工作流程是在第一次运行时复制此类数据。
有关是否复制您的申请数据的更多信息,请参阅 https://www.freedesktop.org/wiki/Software/xdg-user-dirs/
关于appimage - 如何使 AppDir 文件可用于 AppImage 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61147355/
是否可以在 JavaScript 中检索 %APPDIR% 的路径(在 Windows XP 中: C:\Documents and Settings\UserName\Application Dat
我正在尝试将 .py 脚本转换为 .exe cx_Freeze 成功编译了 exe。但是,当我运行 exe 文件时,它会抛出此错误: ImportError: The 'appdirs' packag
我正在尝试获取一个名为 hangoutsbot 的程序在我的 Linux 服务器上工作。我目前正在使用 digital ocean 服务器。但是,每次我尝试运行脚本时,它都会给我一个错误: Impor
我的构建系统使用介子,将我的应用程序需要的一些文件放在 AppDir/usr/share/myapp/resources 下的 AppDir 上。应用程序在运行时需要读取和写入这些文件。当我查看这些文
我的构建系统使用介子,将我的应用程序需要的一些文件放在 AppDir/usr/share/myapp/resources 下的 AppDir 上。应用程序在运行时需要读取和写入这些文件。当我查看这些文
我创建了 virtualenv,在其中安装了 Django pip install django==1.9.8 之后 pip freeze 产生 appdirs==1.4.0 Django==1.9.
我是一名优秀的程序员,十分优秀!