【小白课程】如何在openKylin中搭建自己的Flatpak软件源仓库
Flatpak是一个用于在各种Linux上分发桌面应用程序的框架,它可以让应用程序摆脱各种依赖包的版本限制,让开发者只需要构建一个Faltpak app,就可以在多种Linux系统中进行安装使用,Flatpak自带的沙箱将app与宿主系统其它部分隔离,并且可以支持一个应用的多个版本,这对用户的使用和app的开发者来说都带来了很大的方便,再也不用为依赖问题而发愁。
目前,Flatpak可以在大多数Linux发行版上安装使用,如openKylin、Arch、Debian等。Flathub是构建和托管Flatpak应用程序的主要仓库,一般下载Flatpak app都是从Flathub中进行的下载。Flathub是一个开源项目,它使用了falt-manager来管理软件源仓库。
在多数情况下,当我们只想在一个小范围内分发自己的Flatpak应用程序时,就需要搭建一个自己的Flatpak软件源,这篇文章就主要来介绍,如何使用flat-manager来搭建一个属于自己的简易软件源仓库, 下图是下载软件包时的一个简单流程:
PART.01
flat-manager 搭建
1.源码下载
源码使用flat-manager-0.3.7 版本,源码地址如下:
https://github.com/flatpak/flat-manager/releases/tag/0.3.7
下载完成后进行解压, 执行下面的命令:
tar -xf flat-manager-0.3.7.tar.gz2.安装依赖
源码包下载完成并解压后,需要安装软件包编译和使用所需要的依赖, 可以执行命令:
sudo apt-get install flatpak cargo python3-aiohttp ostree flatpak-builder postgresql-all libostree-dev libssl-dev git autoconf python3-tenacity python3-pbr libostree-dev这里面 python3-pbr 如果下载不到的话,可以从其它版本中下载deb包然后安装。
3.配置cargo 的国内源
在编译flat-manager时,需要下载软件包,这些软件包在国内下载的话会比较慢,所以可以配置成国内的软件源来进行下载。 新增文件: ~/.cargo/config, 文件内容为:
[source.crates-io] #指定镜像 replace-with="sjtu" #上海交通大学 [source.sjtu] registry="https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index" [net] git-fetch-with-cli=true4.开始编译
使用cargo 命令开始进行编译, 进入到flat-manager 的源码目录,在终端执行命令:
cargo build5.配置数据库
flat-manager需要使用到postgres数据库,可以在终端执行下面两个命令,来进行数据库创建:
sudo -u postgres createuser $(whoami) sudo -u postgres createdb --owner=$(whoami) repo 6.更改配置
配置 .evn文件, 可以执行下面的命令:
cp example.env .env配置config.json文件, 执行命令 :
cp example-config.json config.json根据本地电脑的ip,增加ip地址,不进行ip设置的话,会使用127.0.0.1,默认端口号为8080,在config.json 中增加host字段, 可以根据需要自行修改。
7.添加远程仓库
使用ostree 创建仓库, 执行命令:
ostree --repo=repo init --mode=archive-z28.启动应用程序
在终端开始flat-manger 服务端, 执行命令:
cargo run --bin=flat-managerPART.02
创建自己的 Flatpak 应用程序
1.编写源码文件
新建一个目录 test-build , 执行命令:
mkdir test-build新建hello.sh文件, 文件内容为:
#!/bin/bash echo "Hello World"2.编写配置文件
创建 org.flatpak.Hello.yml 文件, 文件内容为:
app-id: org.flatpak.Hello runtime:org.freedesktop.Platform runtime-version: '22.08' sdk:org.freedesktop.Sdk command: hello.sh modules: -name: hello buildsystem: simple build-commands: - install -D hello.sh /app/bin/hello.sh version: 1.0 sources: - type: file path: hello.sh tag: '1.0'3.编译Flatpak应用程序
首先我们需要先安装编译所需要的依赖, 需要依次执行下列命令:
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak --user install org.freedesktop.Platform.Locale//22.08 flatpak --user install org.freedesktop.Sdk.Locale//22.08 flatpak --user install org.freedesktop.Platform//22.08 org.freedesktop.Sdk//22.08注意事项:这些依赖中,带有Locale的软件包需要一个一个下载,一起下载会遇到下载失败的情况。
安装完依赖后就可以进行软件包编译, 执行命令:
flatpak-builder --repo=local-repo builddir org.flatpak.Hello.ymlPART.03
使用创建的仓库源进行提交和安装flatpak app
在flat-manager和自己的应用程序都配置完整后,这时候就可以将应用程序提交到仓库源中了,然后通过配置软件源来进行下载。
1.上传 flatpak app到搭建的仓库源中
首先,创建一个token令牌, 执行命令:
cargo run --bin=gentoken -- --secret=secret --repo=stable执行成功后会输出token, 是行很长的字符串,可以将这串字符串保存到 stable.token 文件中
创建请求,执行命令:
./flat-manager-client --token-file ./stable.token create http://172.30.50.56:8080 stable输出结果为 :
http://172.30.50.56:8080/api/v1/build/3这个结果在后面都需要用到, 需要记录下来。
push应用程序,执行命令:
./flat-manager-client --token-file ./stable.token push http://172.30.50.56:8080/api/v1/build/3 ./test-build/local-repo添加commit,执行命令:
./flat-manager-client --token-file ./stable.token commit http://172.30.50.56:8080/api/v1/build/3publish 发布应用程序,执行命令:
./flat-manager-client --token-file ./stable.token publish http://172.30.50.56:8080/api/v1/build/32.从自己创建的仓库源中下载Flatpak app
首先,在其它可以连接到仓库源地址的电脑中,添加自己配置的仓库源, 执行命令:
flatpak --user remote-add --no-gpg-verify my-flathub http://172.30.50.56:8080/repo/stable下载在上面章节已经发布的应用程序 org.flatpak.Hello
执行命令:
flatpak --user install -y my-flathub org.flatpak.Hello 执行应用程序,终端执行命令:
flatpak run org.flatpak.Hello 验证执行是否成功,如果执行成功,则会在终端输出: Hello World,如图:
到此,一个简单的本地Flatpak仓库源已经搭建完成,并且从仓库源中可以顺利的下载app软件到同一网段的用户环境中。通过这个过程,大家对Faltpak的仓库配置和使用有了一些基础的了解,想要更多更详细的配置,我们可以通过查看代码,修改配置文件,来搭建一个更深层次符合自己要求的服务端。
版权声明:
作者: FreeClashNode
链接: https://www.freeclashnode.com/news/article-2826.htm
来源: www.freeclashnode.com
文章版权归作者所有,未经允许请勿转载。
热门文章
- 11月2日免费节点分享|22.5M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 10月11日免费节点分享|18.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月13日免费节点分享|22.1M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 10月25日免费节点分享|18.1M/S,SSR节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月12日免费节点分享|22.7M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月10日免费节点分享|18.3M/S,V2ray节点/Singbox节点/Clash节点/SSR节点|免费上网梯子每天更新
- 10月27日免费节点分享|20M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 10月28日免费节点分享|22.8M/S,Singbox节点/SSR节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 10月21日免费节点分享|22M/S,Clash节点/Singbox节点/V2ray节点/SSR节点|免费上网梯子每天更新
最新文章
- 11月8日免费节点分享|21.3M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 当Vmess突然失效:一场技术与封锁的无声博弈
- 11月7日免费节点分享|22.9M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 梅林固件科学上网完全指南:从入门到精通,零成本解锁网络自由
- 11月6日免费节点分享|20.9M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 幸运破解器科学上网全解析:解锁数字世界的终极指南
- 11月5日免费节点分享|21.9M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 11月4日免费节点分享|18M/S,Clash节点/Singbox节点/SSR节点/V2ray节点|免费上网梯子每天更新
- 穿越数字迷雾:深度解析V2Ray中转迟滞之谜与极速优化指南
- 跨越数字边界:科学上网的终极指南与深度思考
- 从连接到掌控:深入理解 Quantumult 的工作流程与网络管理哲学
- 11月2日免费节点分享|22.5M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 深度解析《荒野冲突》:征服与策略的终极对决
- 11月1日免费节点分享|20.3M/S,V2ray节点/Shadowrocket节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 斐讯路由器刷机配置v2ray全攻略:打造安全高效的翻墙网络环境
- 10月31日免费节点分享|18.7M/S,Shadowrocket节点/Clash节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 谷歌浏览器科学上网扩展全攻略:从入门到精通
- 10月30日免费节点分享|20.4M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 苹果手机V2Ray完全指南:从零开始打造安全上网环境
- 10月29日免费节点分享|21.6M/S,SSR节点/Clash节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 探索数字世界的门户:电脑科学上网贴吧完全指南
- 10月28日免费节点分享|22.8M/S,Singbox节点/SSR节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 穿越数字边界:科学上网的全面指南与深度思考
- 10月27日免费节点分享|20M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 数字世界的破壁之旅:科学上网全指南与实用工具深度解析
- 10月26日免费节点分享|21.5M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 跨越知识边界:浙大学子的全球学术网络探索指南
- 10月25日免费节点分享|18.1M/S,SSR节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月24日免费节点分享|20.5M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 刘大猫科学上网全攻略:解锁全球网络的终极指南
- 10月23日免费节点分享|22.2M/S,Shadowrocket节点/Clash节点/Singbox节点/V2ray节点|免费上网梯子每天更新
- 全面解析Quantumult安卓版:功能、安装与配置教程
- 双重防护,畅享无界:AdGuard联手V2RayNG,打造极致安全的上网体验
- 10月22日免费节点分享|18.8M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 掌握Clash白名单设置:精准控制代理流量的艺术
- 10月21日免费节点分享|22M/S,Clash节点/Singbox节点/V2ray节点/SSR节点|免费上网梯子每天更新
- 突破网络边界:技术科学上网的终极安全指南
- 10月20日免费节点分享|22.9M/S,SSR节点/V2ray节点/Clash节点/Singbox节点|免费上网梯子每天更新
- Shadowrocket 选购指南:从入门到精通,找到你的专属代理神器
- 10月19日免费节点分享|19.3M/S,Singbox节点/V2ray节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- 深入解读:V2Ray为何比SSR更安全?一场网络隐私的全方位较量
- 10月18日免费节点分享|20.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 深度指南:Shadowrocket从入门到精通——iOS用户的网络自由密钥
- 10月17日免费节点分享|18M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 深入解析科学上网套:全方位使用指南与常见问题解答
- 10月16日免费节点分享|22M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月15日免费节点分享|21.2M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 全局掌控:安卓设备上 Clash 全局模式完整设置指南与深度解析
- 解锁全球游戏体验:育碧平台科学上网全攻略与深度解析
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
归档
- 2026-11 14
- 2026-10 61
- 2026-09 58
- 2026-08 63
- 2026-07 61
- 2026-06 55
- 2026-05 56
- 2026-04 51
- 2026-03 60
- 2026-02 52
- 2026-01 56
- 2025-12 59
- 2025-11 55
- 2025-10 56
- 2025-09 55
- 2025-08 49
- 2025-07 31
- 2025-06 30
- 2025-05 31
- 2025-04 30
- 2025-03 388
- 2025-02 360
- 2025-01 403
- 2024-12 403
- 2024-11 390
- 2024-10 403
- 2024-09 388
- 2024-08 402
- 2024-07 427
- 2024-06 442
- 2024-05 181
- 2024-04 33
- 2024-03 31
- 2024-02 29
- 2024-01 51
- 2023-12 52
- 2023-11 32
- 2023-10 32
- 2023-09 3