创建 AppImage 的步骤

创建 AppImage 的步骤

在编写文档时经常会遇到这个问题,文档试图尽可能详尽,因此无法发现最简单的用例。

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

希望这可以帮助。

相关内容