Skip to main content

如何在 Linux 上安装并启用 Flatpak 支持? | Linux 中国

目前,我们都在使用 Linux 发行版的官方软件包管理器来安装所需的软件包。
在 Linux 中,它做得很好,没有任何问题。(它不打折扣地很好的完成了它应该做的工作)
但在一些方面它也有一些限制,所以会让我们考虑其他替代解决方案来解决。
是的,默认情况下,我们不能从发行版官方软件包管理器获取到最新版本的软件包,因为这些软件包是在构建当前 OS 版本时构建的。它们只会提供安全更新,直到下一个主要版本发布。
那么,这种情况有什么解决办法吗?是的,我们有多种解决方案,而且我们大多数人已经开始使用其中的一些了。
有些什么呢,它们有什么好处?
◈ 对于基于 Ubuntu 的系统: PPA
◈ 对于基于 RHEL 的系统: EPEL 仓库[1]ELRepo 仓库[2]nux-dextop 仓库[3]IUS 社区仓库[4]RPMfusion 仓库[5] 和 Remi 仓库[6]
使用上面的仓库,我们将获得最新的软件包。这些软件包通常都得到了很好的维护,还有大多数社区的推荐。但这些只是建议,可能并不总是安全的。
近年来,出现了一下通用软件包封装格式,并且得到了广泛的应用。
◈ Flatpak:它是独立于发行版的包格式,主要贡献者是 Fedora 项目团队。大多数主要的 Linux 发行版都采用了 Flatpak 框架。
◈ Snaps:Snappy 是一种通用的软件包封装格式,最初由 Canonical 为 Ubuntu 手机及其操作系统设计和构建的。后来,更多的发行版都接纳了它。
◈ AppImage:AppImage 是一种可移植的包格式,可以在不安装和不需要 root 权限的情况下运行。
我们之前已经介绍过 Snap 包管理器和包封装格式[7]。今天我们将讨论 Flatpak 包封装格式。
什么是 Flatpak?
Flatpak(以前称为 X Desktop Group 或 xdg-app)是一个软件实用程序。它提供了一种通用的包封装格式,可以在任何 Linux 发行版中使用。
它提供了一个沙箱(隔离的)环境来运行应用程序,不会影响其他应用程序和发行版核心软件包。我们还可以安装并运行不同版本的软件包。
Flatpak 的一个缺点是不像 Snap 和 AppImage 那样支持服务器操作系统,它只在少数桌面环境下工作。
比如说,如果你想在系统上运行两个版本的 php,那么你可以轻松安装并按照你的意愿运行。
这就是现在通用包封装格式非常有名的地方。
如何在 Linux 中安装 Flatpak?
大多数 Linux 发行版官方仓库都提供 Flatpak 软件包。因此,可以使用它们来进行安装。
对于 Fedora 系统,使用 DNF 命令[8] 来安装 flatpak。
  1. $ sudo dnf install flatpak
对于 Debian/Ubuntu 系统,使用 APT-GET 命令[9] 或 APT 命令[10] 来安装 flatpak。
  1. $ sudo apt install flatpak
对于较旧的 Ubuntu 版本:
  1. $ sudo add-apt-repository ppa:alexlarsson/flatpak
  2. $ sudo apt update
  3. $ sudo apt install flatpak
对于基于 Arch Linux 的系统,使用 Pacman 命令[11] 来安装 flatpak。
  1. $ sudo pacman -S flatpak
对于 RHEL/CentOS 系统,使用 YUM 命令[12] 来安装 flatpak。
  1. $ sudo yum install flatpak
对于 openSUSE Leap 系统,使用 Zypper 命令[13] 来安装 flatpak。
  1. $ sudo zypper install flatpak
如何在 Linux 上启用 Flathub 支持?
Flathub 网站是一个应用程序商店,你可以在其中找到 flatpak 软件包。它是一个中央仓库,所有的 flatpak 应用程序都可供用户使用。
运行以下命令在 Linux 上启用 Flathub 支持:
  1. $ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
为 GNOME 桌面环境安装 Software Flatpak 插件。
  1. $ sudo apt install gnome-software-plugin-flatpak
此外,如果你使用的是 GNOME 桌面环境,则可以启用 GNOME 仓库。它包含所有 GNOME 核心应用程序。
  1. $ wget https://sdk.gnome.org/keys/gnome-sdk.gpg
  2. $ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/
如何列出已配置的 flakpak 仓库?
如果要查看系统上已配置的 flatpak 仓库列表,运行以下命令:
  1. $ flatpak remotes
  2. Name Options
  3. flathub system
  4. gnome-apps system
如何列出已配置仓库中的可用软件包?
如果要查看已配置仓库中的可用软件包的列表(它将显示所有软件包,如应用程序和运行环境),运行以下命令:
  1. $ flatpak remote-ls | head -10
  2. org.freedesktop.GlxInfo gnome-apps
  3. org.gnome.Books gnome-apps
  4. org.gnome.Builder gnome-apps
  5. org.gnome.Calculator gnome-apps
  6. org.gnome.Calendar gnome-apps
  7. org.gnome.Characters gnome-apps
  8. org.gnome.Devhelp gnome-apps
  9. org.gnome.Dictionary gnome-apps
  10. org.gnome.Documents gnome-apps
  11. org.gnome.Epiphany gnome-apps
仅列出应用程序:
  1. $ flatpak remote-ls --app
列出特定的仓库应用程序:
  1. $ flatpak remote-ls gnome-apps
如何从 flatpak 安装包?
运行以下命令从 flatpak 仓库安装软件包:
  1. $ sudo flatpak install flathub com.github.muriloventuroso.easyssh
  2. Required runtime for com.github.muriloventuroso.easyssh/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.30) found in remote flathub
  3. Do you want to install it? [y/n]: y
  4. Installing in system:
  5. org.gnome.Platform/x86_64/3.30 flathub 4e93789f42ac
  6. org.gnome.Platform.Locale/x86_64/3.30 flathub 6abf9c0e2b72
  7. org.freedesktop.Platform.html5-codecs/x86_64/18.08 flathub d6abde36c0be
  8. com.github.muriloventuroso.easyssh/x86_64/stable flathub 337db43043d2
  9. permissions: ipc, network, wayland, x11, dri
  10. file access: home, xdg-run/dconf, ~/.config/dconf:ro
  11. dbus access: ca.desrt.dconf
  12. com.github.muriloventuroso.easyssh.Locale/x86_64/stable flathub af837356b222
  13. Is this ok [y/n]: y
  14. Installing: org.gnome.Platform/x86_64/3.30 from flathub
  15. [####################] 1 metadata, 14908 content objects fetched; 228018 KiB transferred in 364 seconds
  16. Now at 4e93789f42ac.
  17. Installing: org.gnome.Platform.Locale/x86_64/3.30 from flathub
  18. [####################] 4 metadata, 1 content objects fetched; 16 KiB transferred in 2 seconds
  19. Now at 6abf9c0e2b72.
  20. Installing: org.freedesktop.Platform.html5-codecs/x86_64/18.08 from flathub
  21. [####################] 26 metadata, 131 content objects fetched; 2737 KiB transferred in 8 seconds
  22. Now at d6abde36c0be.
  23. Installing: com.github.muriloventuroso.easyssh/x86_64/stable from flathub
  24. [####################] 191 metadata, 3633 content objects fetched; 24857 KiB transferred in 117 seconds
  25. Now at 337db43043d2.
  26. Installing: com.github.muriloventuroso.easyssh.Locale/x86_64/stable from flathub
  27. [####################] 3 metadata, 1 content objects fetched; 14 KiB transferred in 2 seconds
  28. Now at af837356b222.
所有已安装的应用程序都将放在以下位置:
  1. $ ls /var/lib/flatpak/app/
  2. com.github.muriloventuroso.easyssh
如何运行已安装的应用程序?
运行以下命令以启动所需的应用程序,确保替换为你的应用程序名称:
  1. $ flatpak run com.github.muriloventuroso.easyssh
如何查看已安装的应用程序?
运行以下命令来查看已安装的应用程序:
  1. $ flatpak list
  2. Ref Options
  3. com.github.muriloventuroso.easyssh/x86_64/stable system,current
  4. org.freedesktop.Platform.html5-codecs/x86_64/18.08 system,runtime
  5. org.gnome.Platform/x86_64/3.30 system,runtime
如何查看有关已安装应用程序的详细信息?
运行以下命令以查看有关已安装应用程序的详细信息:
  1. $ flatpak info com.github.muriloventuroso.easyssh
  2. Ref: app/com.github.muriloventuroso.easyssh/x86_64/stable
  3. ID: com.github.muriloventuroso.easyssh
  4. Arch: x86_64
  5. Branch: stable
  6. Origin: flathub
  7. Collection ID: org.flathub.Stable
  8. Date: 2019-01-08 13:36:32 +0000
  9. Subject: Update com.github.muriloventuroso.easyssh.json (cd35819c)
  10. Commit: 337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
  11. Parent: 6e49096146f675db6ecc0ce7c5347b4b4f049b21d83a6cc4d01ff3f27c707cb6
  12. Location: /var/lib/flatpak/app/com.github.muriloventuroso.easyssh/x86_64/stable/337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
  13. Installed size: 100.0 MB
  14. Runtime: org.gnome.Platform/x86_64/3.30
  15. Sdk: org.gnome.Sdk/x86_64/3.30
如何更新已安装的应用程序?
运行以下命令将已安装的应用程序更新到最新版本:
  1. $ flatpak update
对于特定应用程序,使用以下格式:
  1. $ flatpak update com.github.muriloventuroso.easyssh
如何移除已安装的应用程序?
运行以下命令来移除已安装的应用程序:
  1. $ sudo flatpak uninstall com.github.muriloventuroso.easyssh
进入 man 页面以获取更多细节和选项:
  1. $ flatpak --help

via: https://www.2daygeek.com/how-to-install-and-enable-flatpak-support-on-linux/

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...