FlatpakでGUIアプリケーションにCLIツールを実行させる方法は?

FlatpakでGUIアプリケーションにCLIツールを実行させる方法は?

flatpak内で実行されているGUIアプリケーションが/bin別々にバイナリにアクセスして実行することを許可できますか/var/bin

フルシステムアクセス()を許可しても、--filesystem=hostそこにあるファイルを表示または検索することはできません。

私のユースケースは実行ですshellcheck

答え1

さまざまな方法があります:

  • Flatpakにアクセスできる場合は.ie。にインストールをhost実行できます。/usr/local/bin/example/var/run/host/usr/local/bin/example/usr/local/var/run/host/usr/local
  • ただし、ライブラリが正しい場所にないなどの理由でまだ失敗する可能性があります。したがって、環境変数が機能するように調整するか、以下の説明に従って実行する必要があります。

flatpak 外部からコマンドを生成する

あなたはそれを使用することができますflatpak-spawnさまざまな環境でコマンドを実行してください。
しかし、ホストシステムにコマンドを伝播してサンドボックスから外したい場合がよくあります。これを行うには、flatpakのサンドボックスを弱める必要があります。次の権限を追加してください。

flatpak override com.packagename.App --talk-name=org.freedesktop.Flatpak

flatpak-spawn --hostその後、ホストシステムでflatpakの外部でコマンドを実行できます。

実際にこれをGUIで使用するには、実行したいバイナリのパスを変更する方法が必要です。追加のパラメータを渡し、最終的に小さなラッパースクリプトを作成する必要があるため、これは複雑になる可能性があります。
私の場合はそうだった、ここで見つけることができます。。私の場合は、Atom(しかしすべてのIDEで利用可能)を実行するshellcheckgpg...

答え2

org.freedesktop.Flatpak.Development Dbus インターフェイスの HostCommand メソッドを使用できます。https://github.com/platpak/platpak/blob/master/data/org.freedesktop.Flatpak.xml#L43

Pythonを使用した例:https://stackoverflow.com/questions/39494813/pass-file-descriptor-via-a-dbus-function-call-from-python-aka-call-platpaks-ho

関連情報