# Flatpak工具安装软件
1. 安装Flatpak : `sudo xxx-cmd install flatpak`,其中`xxx-cmd`可以是` apt-get/yum/zypper`。
2. 添加`Flathub`软件源库: `flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo`
3. 重启操作系统后即可使用`Flatpak`安装应用程序了。
## Flatpak的基本概念
![](../images/001_102_001_flatpak_framework.svg)
### 运行时(runtime)
运行时提供应用程序使用的基本依赖项。每个应用程序都必须针对运行时构建,并且这个运行时必须安装在主机系统上,以便应用程序运行(Flatpak可以自动安装应用程序所需的运行时)。可以同时安装多个不同的运行时以及同一运行时的不同版本。
运行时是发行版无关的,而且不依赖发行版的特定版本。这意味着他们为应用程序提供了一个稳定、跨发行版的基础,这使得应用程序可以不管操作系统的升级
### 捆绑库
如果一个应用程序要求的依赖不在他的运行时里,这些依赖可以作为应用程序的一部分。这给了应用程序开发人员关于他们使用的依赖关系的灵活性,包括使用:
- 某个发行版或运行时不可用的库
- 某个发行版或运行时包含的库的另一版本
- 某个库的补丁版本
### 门户
门户是一种机制,通过它,应用程序可以在沙箱中与宿主环境进行交互。它们提供了与数据、文件和服务交互的能力,这不需要添加沙箱权限
可以通过门户访问的功能示例包括通过文件选择器对话框打开文件或打印。接口工具包可以实现对门户的直接支持,从而实现对沙箱外资源的安全、便捷的访问。
更多关于门户的学习资源可以在 沙箱权限 找到。
### 沙箱
使用Flatpak的每个应用程序都构建和运行在被称为“沙箱”的独立环境。
每个沙箱包含一个应用和它的运行时。默认情况下应用只能访问沙箱里面的内容。要访问用户文件、网络、图形套接字、总线上的子系统和设备必须被显式地授权。访问其它的东西,比如其它进程,是故意被设计成不可能的。
一些沙箱的内部资源需要对外暴露,被宿主操作系统使用。这些被称为“导出”,因为它们是从沙箱中导出的文件,包括应用程序的“.desktop”文件和图标。
### 仓库
Flatpak应用和运行时通常使用仓库存储和发布,这个仓库和git仓库类似。一个Flatpak仓库可以包含单个或者多个对象,而且每个对象都是版本化的,可以升级和降级。
每个使用Flatpak的系统都可以配置多个远程仓库。一旦一个系统被配置成可以访问某个远程仓库,这个远程仓库的内容就可以被检测和搜索,它也可以被用作应用和运行时的源。
执行更新时,应用和runtime会从相关的远程下载。和git一样,只有不同的部分会下载,使得升级过程十分高效。
## 常用的flatpak命令
1. 查找应用 : `flatpak search gimp`
2. 安装应用-根据ID : `flatpak install flathub org.gimp.GIMP`
3. 安装应用-根据本地文件`com.netease.CloudMusic.flatpakref` : `flatpak install com.netease.CloudMusic.flatpakref`
4. 安装应用-根据远程文件`https://dl.flathub.org/repo/appstream/com.netease.CloudMusic.flatpakref` : `flatpak install https://dl.flathub.org/repo/appstream/com.netease.CloudMusic.flatpakref`
5. 运行应用: `flatpak run org.gimp.GIMP`
6. 更新所有应用和运行时到最新版本: `flatpak update`
7. 列出已安装应用和运行时: `flatpak list`
8. 仅列出安装的应用: `flatpak list --app`
9. 移除应用: `flatpak uninstall org.gimp.GIMP`
如果你有兴趣了解如何自己构建flatpak软件包可以阅读[构建你的第一个flatpak应用](https://docs.flatpak.org/zh_CN/latest/first-build.html)进行深入学习。
---
- 前言
- 第一章 开始吧
- 1.0 选择适合你的Linux发行版
- 1.1 开始制作启动U盘
- 1.2 安装你的第一个Linux操作系统
- 1.3 安装Linux系统后要做的事情
- 1.4 什么是root用户
- 1.5 Linux下使用终端执行Shell命令
- 1.6 Linux软件安装方法介绍
- 1.7 Linux常用软件推荐
- *安装Manjaro发行版系统
- *安装Manjaro后要做的配置工作
- Flatpak安装软件方法
- 为什么Linux系统普及成都落后于Windows和MacOS?
- 第二章 Linux上的基础命令
- 2.0 环境变量及配置相关命令
- 2.1 文件及目录操作相关命令
- 2.2 文本处理相关命令
- 2.3 进程任务管理相关命令
- 2.4 用户管理相关命令
- 第三章 开发环境的部署
- 3.0 学习Shell编程
- 3.1 环境变量配置实例_如何配置JDK环境
- Python编程环境
- C语言编程环境
- 第四章 深入理解Linux系统
- 关于Linux不得不说的CopyLeft