pkg2appimageを使ってAppimageを作成する方法。
まずはpkg2appimageのインストール
$ git clone https://github.com/AppImage/AppImages.git appimages
- Fedora 37ではこれ以外に、dpkgとlibmdが必要。
# dnf install dpkg libmd
- ※はまりポイントとしてFedora提供のdpkgはバージョンが古い。
- 対策としては http://ftp.debian.org/debian/pool/main/d/dpkg/ から dpkg_1.21.20_amd64.deb をダウンロードしてバイナリを使うとよい。
- ln -s /usr/lib64/libbz2.so /usr/lib64/libbz2.so.1.
AppImage化したいアプリのymlを作成する
- 例: shashlikをAppImage化したい場合。
app: shashlik # アプリ名
ingredients:
packages: # ここにdebファイルを列挙する
dist: kinetic
sources: # debファイルの取得元
- deb http://security.ubuntu.com/ubuntu kinetic-security main
- deb http://security.ubuntu.com/ubuntu kinetic main
script:
- cp -a /tmp/shashlik/opt .
- touch shashlik.svg # FIXME
- cat > shashlik.desktop <<\EOF
- [Desktop Entry]
- Type=Application
- Terminal=true
- Name=shashlik
- Exec=./opt/shashlik/bin/shashlik-run com.atomicadd.tinylauncher "Desktop"
- Categories=Development;
- Icon=shashlik
- EOF
- # ADD AppRun
- cat > ./AppRun <<\EOF
- #!/bin/sh
- HERE=$(dirname $(readlink -f "${0}"))
- PKG_DIR=$HERE/opt
- cd ${HERE}/opt
- export LD_LIBRARY_PATH=${HERE}/usr/lib:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
- ${HERE}/opt/shashlik/bin/shashlik-run com.atomicadd.tinylauncher "Desktop"
- EOF
- chmod a+x ./AppRun
- # Set Version
- echo "0.9.3" > ../VERSION
- find ./opt/ -type f -exec sed -i -e "s@/opt/@././@g" {} \;
パッケージ化する
$ ARCH=x86_64 ./pkg2appimage shashlik.yml