news 2026/8/21 19:24:18

深度商店 deepin-appstore 上手指南:把 Deepin 官方应用商店跑起来

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度商店 deepin-appstore 上手指南:把 Deepin 官方应用商店跑起来

深度商店 deepin-appstore 上手指南:把 Deepin 官方应用商店跑起来

【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstore

Deepin 应用商店(deepin-appstore)是 Linux Deepin 发行版的官方软件中心,负责在桌面环境里搜索、下载、安装和管理 deb 与 flatpak 两种格式的软件包。想弄清"点一下安装"背后发生了什么,或者想在本地跑一份源码改改界面,这份指南按模块带你走一遍。

一个商店,三层分工

对开发者来说,理解分层比任何界面细节都重要。deepin-appstore 把工作拆给了三种语言:

技术栈职责
UI 壳C++ / Qt窗口、标题栏、D-Bus 桥接
页面前端TypeScript / Angular首页、详情页、应用列表
包管理守护进程Go实际执行 deb / flatpak 安装卸载

Qt 壳通过 QCEF 内嵌网页视图加载 Angular 页面;页面上的安装请求经 D-Bus 发给 Go 守护进程,再由它调用 APT 完成真正的安装。换句话说:改"长什么样"看 src/ui/ 和 src/web/src/app/,改"能干什么"看 src/daemon/。

环境准备与第一次构建

流程只有三步:拿源码、装依赖、编译。

下面的命令拉取源码,并初始化 vendor-deps 子模块(前端构建依赖放在里面):

git clone https://gitcode.com/gh_mirrors/dee/deepin-appstore.git cd deepin-appstore git submodule update --init --recursive git submodule update --remote

接着安装 Qt 与 DTK(Deepin 工具包)相关的系统包:

sudo apt install cmake libdtkwidget-dev libqcef-dev libqt5webchannel5-dev \ libsass0 qttools5-dev-tools libqt5sql5-sqlite qttools5-dev

最后用 CMake 编译:

mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc)

正式打包参数以 debian/rules 和项目最新文档为准。

核心机制:dpk:// 链接如何定位一个软件

前端页面不会直接写死包名,而是使用一种自定义协议——dpk 链接(DPK 在这里是包格式的标记,与文件扩展名 .dpk 无关)。比如dpk://deb/gedit表示 deb 格式的 gedit,dpk://flatpak/gedit则指 flatpak 格式。链接分三段:协议名dpk、包格式、应用名;要求全小写 ASCII 字符,同一个应用可以有多个 dpk 链接对应不同格式。规则细节见 docs/dpk.md。

⚠️ 新手容易卡住的 3 个坑

  1. Web 资源构建需要 Node 环境。src/web/Makefile 用 Docker 里的node:10镜像分别构建 china 和 international 两个版本。不改页面时,可以加-DBUILD_WEB_RESOURCES=OFF跳过,省掉整个前端构建。
  2. 守护进程脱离桌面跑不起来。Go 程序注册的是 D-Bus 会话服务com.deepin.AppStore.Daemon,没有 Deepin 桌面会话就没有总线。它的缓存和配置分别在~/.cache/deepin/deepin-appstore-daemon~/.config/deepin/deepin-appstore,排查问题时先看这两个目录的日志。
  3. 非 x86 平台构建参数不同。debian/rules 里非 amd64 架构会自动关闭 DXCB 与多线程。若在 ARM 机器上编译报错,先对照这里的参数差异。

下一步:从哪里开始参与

  • 译者看 translations/,已覆盖 30 多种语言;CMake 提供upload-i18ndownload-i18n两个 target,用 lupdate 提取字符串后同步到翻译平台。
  • 想读安装主流程,从 src/daemon/deb.go 开始,配合deb_job.go能看清一个安装任务的完整生命周期。
  • 遇到问题或提交补丁前,先翻一遍 CHANGELOG,带上你的系统版本信息再提 Issue,会省很多来回。

【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstore

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 19:21:43

离线环境下的安全推理:Toto-2.0-4m-npu 本地化部署清单与注意事项

离线环境下的安全推理:Toto-2.0-4m-npu 本地化部署清单与注意事项 【免费下载链接】toto-2.0-4m-npu 项目地址: https://ai.gitcode.com/atlasleong/toto-2.0-4m-npu 在数据安全要求日益严格的今天,越来越多的模型推理需要脱离公网、在隔离的离线…

作者头像 李华
网站建设 2026/8/21 19:16:02

滑动窗口双指针:日志频次统计的O(N)解法

1. 这道题不是考“日志”,是考你能不能把滑动窗口想明白 “蓝桥杯国赛每日一题:日志统计(双指针)”——看到这个标题,很多刚刷蓝桥杯的同学第一反应是:“哦,处理文本日志?是不是要sp…

作者头像 李华
网站建设 2026/8/21 19:14:43

ZEN模型结构拆解:12层字符编码器与6层N-gram编码器如何协同工作

ZEN模型结构拆解:12层字符编码器与6层N-gram编码器如何协同工作 【免费下载链接】ZEN A BERT-based Chinese Text Encoder Enhanced by N-gram Representations 项目地址: https://gitcode.com/gh_mirrors/zen10/ZEN 中文NLP模型往往面临一个尴尬的处境&…

作者头像 李华