ArchLinux: Flatpakのインストール方法と作成方法

Flatpakのインストール方法と作成方法について記載します。

xdg-appsからFlatpakに名前が変更されました。

これはFedora 24の方法とほとんど同じです。

 

1 flatpakのインストール

リポジトリとパッケージをアップデートしてからwgetとflatpakをインストールします。

$ sudo pacman -Syu --noconfirm
$ sudo pacman -S --noconfirm wget flatpak

これ以降はFedora 24の場合と同様です。

wgetとflatpakのインストール込みの以下のスクリプトを実行することで、geditが起動するようになります。Fedora 24の場合と同様、org.gnome.Platformとorg.gnome.Sdkのインストールで問題が発生するのを回避する為に、インストールを再実行しています。

#!/bin/sh

sudo pacman -Syu --noconfirm
sudo pacman -S --noconfirm wget flatpak

wget https://sdk.gnome.org/keys/gnome-sdk.gpg
flatpak --user remote-add --gpg-import=gnome-sdk.gpg gnome \
        https://sdk.gnome.org/repo/
flatpak --user remote-add --gpg-import=gnome-sdk.gpg gnome-apps \
        https://sdk.gnome.org/repo-apps/

flatpak_user_install()
{
  flatpak --user list --runtime --app | grep ${2} > /dev/null && return 0
  while : ; do
    flatpak --user install $@ &
    pid=$!
    sleep 300
    ps -p ${pid} | awk '{ print $1 }' | grep ${pid} > /dev/null || break
    sudo kill -KILL ${pid}
  done
}

flatpak --user install gnome-apps org.gnome.gedit stable
flatpak_user_install gnome org.gnome.Platform 3.20
flatpak_user_install gnome org.gnome.Sdk 3.20

sudo reboot

2 アプリケーションの作成

Fedora 24と同様です。ここでは作成するスクリプトを記載します。

2.1 flatpak buildなし(非推奨)

#!/bin/sh

# Create directory for this package.
mkdir shell
mkdir shell/files
mkdir shell/files/bin
mkdir shell/export

# Create the command in this package.
cat <<EOF > shell/files/bin/shell.sh
#!/bin/sh

if [ \$# -eq 0 ]; then
  PS1="shell> " /bin/sh
else
  echo "shell> \$@"
  eval "\$@"
fi

EOF
chmod a+x shell/files/bin/shell.sh

# Create the metadata in this package.
cat <<EOF > shell/metadata
[Application]
name=com.example.shell
runtime=org.gnome.Platform/x86_64/3.20
command=shell.sh

[Context]
filesystems=host;

EOF

# Create repository.
flatpak build-export repo shell

# Install this package to user.
flatpak --user remote-add --no-gpg-verify example-repo repo
flatpak --user install example-repo com.example.shell

2.2 flatpak buildあり(推奨)

#!/bin/sh

# Initialize flatpak build
flatpak build-init tetris com.hiroom2.tetris org.gnome.Sdk \
        org.gnome.Platform 3.20

# Download source code
git clone https://github.com/hiroom2/tetris-sdl-and-ncurses
cd tetris-sdl-and-ncurses/

# Build source code via flatpak build
flatpak build ../tetris make all install DESTDIR=/app
cd ..

# Finalize flatpak build
flatpak build-finish tetris --command=ncurses

# Create repository.
flatpak build-export repo tetris

# Install this package to user.
flatpak --user remote-add --no-gpg-verify tetris-repo repo
flatpak --user install tetris-repo com.hiroom2.tetris