有馬総一郎のブログ

(彼氏の事情)

2023年06月14日 21:25:34 JST - 3 minute read - Linux

GNOMEソフトウェアでFlakpakのアプリケーションをsystemでなくuserでインストールする

open.Yellow.osflakpakでインストールしていて気付いたけど、システムにアプリケーションをインストールしている。 Pop!_OSのようにユーザとしてインストールしたい。

GNOMEソフトウェア

flakpakは設定ファイルのパスは変らないが、flatpak install アプリケーションの時、--userを付けずインストールした場合、バイナリーのパスはシステム配下/var/lib/flatpak/exports/bin/となる。しかし、--userを付けてflatpak --user install アプリケーションとインストールした場合は、ユーザ配下~/.local/share/flatpak/exports/bin/となる。

Gnome Software plugin - install to –user? : flatpakを見ると同様の思いを持った人もいるみたいで、GNOMEソフトウェアで制御することできないようだ。

you could simply remove the system flathub remote.
システムの flathub リモートを削除するだけで済みます。

といっているが、うーんそうなのか?1

$ flatpak remotes
Name    Options
flathub system

確認すると確かにシステムとして flathub リポジトリが追加されている。削除して本当に良いのか怖かったが、やってみた。

flatpak remote-delete flathubはシステムなので出来ないのでsudoを付けた。

$ sudo flatpak remote-delete flathub
$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak --user remotes
Name    Options
flathub user

リポジトリだけでなく、flakpakアプリケーションも一気に削除される。削除した直後だとGNOMEソフトウェアの内容が更新されていないようなので、再起動した。

GNOMEソフトウェア

GNOMEソフトウェア上でもユーザとしてインストールするようになったようだ。

実際にインストールされたバイナリをみても/var/lib/flatpak/exports/binではなく~/.local/share/flatpak/exports/bin配下にインストールされるようになった。

ただ、例えば、nextcloudはGNOMEソフトウェアから検索できないようなってしまったが、コマンドflatpak --user install flathub com.nextcloud.desktopclient.nextcloudで普通にインストールできる。よく分からん…いきなりリポジトリ削除はあれだったかな…

GNOMEソフトウェアプラグインを使ってやれそうな気もして、ググって以下のページを見付けたけど

Flatpak and GNOME Software – Technical Blog of Richard Hughes

良くわからず…なら、いっそオプション--user付けずにデフォルトをユーザに出来ないのかな?とか思ったが Default to user installation · Issue #4099 · flatpak/flatpak · GitHubをみるかぎり、

you can simply only configure remotes in your user installation. The Flatpak CLI will then use the user installation without requiring you specify –user.
リモートを構成するだけで済みます。 Flatpak CLI は、指定を必要とせずにユーザー インストールを使用します。

とやはりリポジトリを構成することで制御してくれとある。なので上では--userを付けたがシステムからリポジトリを削除してしまえば、付けなくてもユーザインストールしてくれるようだ。


  1. リポジトリの管理については Flatpak - ArchWikiに細かい記述がある ↩︎