# 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的基本概念

### 運行時(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