在编写文档时经常会遇到这个问题,文档试图尽可能详尽,因此无法发现最简单的用例。
https://docs.appimage.org/packaging-guide/manual.html#creating-an-appdir-manually
这个文档看起来还不错,但是我很确定我不需要他们所声称的 99%。
我正处于从 Unity 构建某些内容的用例中。我有一个文件夹,里面包含我的主要二进制文件,然后还有大量其他垃圾文件。
当您单击二进制文件时,它会完美运行,并且带有图标等。
我如何将整个文件夹放入 .appimage 文件中,包括有关运行正确的二进制文件的说明?
似乎我需要做的就是创建一个名为 MyUnityGame.AppDir 的文件夹,里面有我提到的整个文件夹以及一个指向二进制文件的 .desktop 文件,对吗?
其余的一切听起来都像是适用于某些非自包含/具有依赖关系的东西,但这不是我的情况。
我有 .desktop 后下一步做什么?
(并且最能防错)使用此存储库中预编译的版本。
预编译的 AppRun 文件在哪里?
编辑:我猜是这个:https://github.com/AppImage/AppImageKit/blob/master/resources/AppRun
我可以将其作为:
#!/bin/sh
exec myunitygame.desktop "$@"
对我来说,其余的似乎都是多余的
答案1
我不明白你到底在找什么。这是我为 Brave 浏览器制作 Appimage 而创建的 bash 脚本。这假设你已经下载了 Brave 浏览器 deb 文件。你还需要下载 appimagetool。
#!/bin/bash -x
set +e
APP=Brave
patharch=x86_64
package="brave-browser_1.33.100_amd64.deb"
URL="https://github.com/brave/brave-browser/releases/"
if [ ! -f $package ]; then
wget -c $URL$package
else
echo "$package file exists"
fi
mkdir -p ./$APP.AppDir
rm -rf ./$APP.AppDir/*
cd $APP.AppDir/
find ../ -name *.deb -exec dpkg -x \{\} . \;
cp opt/brave.com/brave/product_logo_48.png ./Brave.png
# find . -name $APP.desktop -exec cp \{\} . \;
# find -name $APP.png -exec cp \{\} . \;
cat > $APP.desktop <<EOF
[Desktop Entry]
Type=Application
Name=brave-browser
Exec=brave-browser %U
StartupNotify=true
Icon=Brave
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
EOF
mkdir -p usr/bin/
mv ./opt/brave.com/brave/* usr/bin/ ; rm -rf ./opt
AppRun="AppRun"
if [ ! -f ../../$AppRun ]; then
wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/AppRun-${patharch} -O AppRun
else
cp ../../AppRun .
fi
chmod a+x AppRun
# generate_type2_appimage
cd ..
VERSION=""
VERSION=$VERSION ../appimagetool -v -n ./$APP.AppDir/
if [ -d "./$APP.AppDir/" ] ; then
rm -rf ./$APP.AppDir
fi
希望这可以帮助。