Flatpak

如何讓“flatpak enter”工作?

  • May 4, 2020

我正在嘗試使用flatpak enter進入沙盒 Steam 客戶端。要獲得 PID 或實例 ID,我這樣做:

$ flatpak ps
Instance   PID  Application             Runtime
2581746118 4294 com.valvesoftware.Steam org.freedesktop.Platform

但是,flatpak enter以 root 身份執行是行不通的:

# flatpak enter 4294 bash
error: 4294 is neither a pid nor an application or instance ID
# flatpak enter 2581746118 bash
error: 2581746118 is neither a pid nor an application or instance ID
# flatpak enter com.valvesoftware.Steam bash
error: com.valvesoftware.Steam is neither a pid nor an application or instance ID

此外,在flatpak enter僅顯示命令行選項後使用製表符完成,而不是enter.

問題是您需要 root 才能使用flatpak enter,因為它需要輸入各種容器名稱空間。更複雜的是sudo改變環境變數使 flatpak 不知道你的應用程序實例。

這導致了這種相當不明顯的用法:

sudo -E flatpak enter instance-id /bin/bash

我不想用 jQuery way™來做,但是目前(在 2020 年代初),這似乎仍然是一個未解決的問題,這應該可以解決大多數案例:

$ flatpak run --command=/bin/bash fake.application.Identity

它不需要root,也不需要解決方法。

我真的不知道有什麼flatpak enter區別。好吧,不同的是,它產生了一個新的“實例”,所以你不能直接與正在執行的 flatpak 中的其他程序互動。但是,由於您可能只是想嘗試沙箱或調查沙箱內的一些文件,那應該沒問題™。

引用自:https://unix.stackexchange.com/questions/500225