appimage - 如何将 shell 程序打包到 AppImage 中?
问题描述
我通过以下方式制作了 AppImage:
linuxdeploy --appdir AppDir --icon-file icon.png --desktop-file desktop.desktop --executable myExecutable --output appimage
运行良好。但是,我打包的程序 ( ) 在运行时myExecutable
进行 shell 调用(比如 to shellProgram1
、shellProgram2
、 ...),以利用不一定在每个发行版上的各种程序。
问题:(或其他一些 AppImage 实用程序)是否linuxdeploy
提供了一种将这些程序打包到 AppImage 中的简单方法,以便myExecutable
在运行时调用它们时保证它们可用?
解决方案
要实现这样的目标,您需要将所有发行版中可能不存在的所有二进制文件部署到 AppDir 中,并设置 PATH 环境以使其在运行时可用。
您必须手动将linuxdeploy
文件复制到 AppDir 并为主二进制文件创建一个包装器以设置 PATH。像这样的东西
$!/bin/bash
export PATH="$APPDIR/usr/bin:$PATH"
exec $APPDIR/usr/bin/my_program
您还可以使用appimage-builder为您创建这样的包装器。在项目示例文件夹中,您可以找到几个可用于灵感的食谱。