news 2026/8/22 7:53:43

如何 15 分钟跑通 Deepin AppStore:深度商店从克隆到启动的完整实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何 15 分钟跑通 Deepin AppStore:深度商店从克隆到启动的完整实操

如何 15 分钟跑通 Deepin AppStore:深度商店从克隆到启动的完整实操

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

Deepin AppStore 是 Deepin 系统的图形化软件商店,帮你搜索、下载、安装和管理 Linux 应用。下面在 15 分钟内,把它从源码编译到启动跑起来。

⚙️ 跑起来之前:准备构建环境

名称最低版本一句话用途
cmake3.10生成构建脚本
Qt55.12C++ 界面框架
libdtkwidget-dev1.0Deepin 官方控件库,仅 Deepin 软件源提供
libqcef-dev1.0内嵌 Chromium 的 Qt 库,仅 Deepin 软件源提供
node8.11构建 Angular 8 前端(版本锁定,不能高)
npm6前端依赖与构建工具
go1.13编译 Go 编写的商店 daemon
git1.8拉取前端子模块 vendor-deps

Ubuntu / Debian(Deepin)一条命令装齐 C++ 侧依赖:

sudo apt update sudo apt install -y git cmake qt5-default qttools5-dev qttools5-dev-tools \ libqcef-dev libdtkwidget-dev libqt5webchannel5-dev libqt5sql5-sqlite libsass0

macOS(Homebrew)只能装通用工具,Deepin 控件库需另行准备:

brew install cmake golang libsass node@8 qt@5

macOS 拿不到libdtkwidget-devlibqcef-dev,这两个库只存在于 Deepin 官方软件源。想完整跑通,优先在 Deepin 桌面系统内编译;其他系统可先加-DBUILD_WEB_RESOURCES=OFF跳过前端构建,但链接阶段仍会卡在这两个库上。

🚀 从零到启动:最小可运行路径

① 克隆仓库,拿到全部源码:

git clone https://gitcode.com/gh_mirrors/dee/deepin-appstore cd deepin-appstore

② 初始化子模块,补齐前端构建需要的 vendor 依赖:

git submodule update --init --recursive

③ 配置并编译 Release 版本,CMake 会自动连带编译前端与 daemon:

mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_RESOURCES=ON cmake --build . -j4

④ 运行主程序(daemon 与 web 资源在 Release 模式下已一并产出,无需手动启动):

./src/deepin-appstore

启动成功,你应该看到 Deepin 商店窗口:顶部标题栏加"深度商店"显示名,主区域是内嵌 Chromium 渲染的 Angular 首页,包含推荐位、轮播图和分类导航。

🎯 真正用起来:三个高频场景

场景:搜索并安装应用

  1. 在窗口顶部搜索框输入应用名,按回车。
  2. 点进搜索结果进入详情页,核对版本与说明。
  3. 点"安装",按钮转为进度条,完成后变为"打开"。

预期效果:进度条走完,应用出现在"我的应用"里。

场景:安装本地 .dpkg 文件

  1. 打开"我的应用"。
  2. 点"安装 .dpkg 文件",选择本机文件。
  3. 在弹出的列表中勾选目标包,点确认。

预期效果:所选 .dpkg 进入安装队列,进度完成后出现在已安装列表。

场景:管理已装应用

  1. 进入"我的应用",在本地应用列表里批量勾选。
  2. 执行卸载或更新。
  3. 查看可用更新,点"全部更新"。

预期效果:列表实时刷新,更新与卸载共用一条进度反馈。

⚠️ 别踩这些坑

  • 现象:非 Deepin 系统cmakeCould NOT find package dtkwidget / libqcef原因libdtkwidget-devlibqcef-dev只发布在 Deepin 软件源,普通 apt 源搜不到。解法:在 Deepin 系系统编译,或把 Deepin 官方软件源加进/etc/apt/sources.list后重装这两个开发包。

  • 现象:前端构建报node-sass编译失败或ng build崩溃。原因:前端是 Angular 8,依赖旧版 node-sass,Node 12 以上直接不兼容。解法:用nvm install 8.11.0 && nvm use 8.11.0固定 Node 8;或-DBUILD_WEB_RESOURCES=OFF跳过前端构建,直接用现成 web 资源调试 C++ 壳。

📖 继续深入

  • dpkg 文件操作说明:docs/dpk.md —— 想弄清商店怎么处理本地 .dpkg 时读它
  • 前端源码:src/web/ —— 要改界面、交互,先看 Angular 模块结构
  • 后端 daemon:src/daemon/ —— 要懂软件安装元数据,读 Go 代码
  • DBUS 接口:src/dbus/ —— 想接外部应用控制商店时看这里
  • 翻译文件:translations/ —— 提交多语言前先看目录组织

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

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

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

C++算法面试:从两数之和看哈希表优化与工程实践

1. 从“两数之和”这道题,聊聊算法面试的敲门砖如果你刚开始接触C,或者正准备刷题备战面试,那么“两数之和”这道题,大概率是你算法之路上的第一个“正式”对手。在力扣(LeetCode)上,它的编号是…

作者头像 李华
网站建设 2026/8/22 7:53:32

SSM框架人才招聘系统开发实战与优化经验

1. 项目概述这个基于SSM框架的人才招聘管理系统是我最近完成的一个毕业设计项目,采用SpringSpringMVCMyBatis技术栈实现。作为一个完整的Web应用,它包含了企业招聘和求职者应聘的全流程功能模块。在实际开发过程中,我遇到了不少技术难点&…

作者头像 李华
网站建设 2026/8/22 7:53:15

RFdiffusion 蛋白质设计实操指南:从环境搭建到 5 类生成任务

RFdiffusion 蛋白质设计实操指南:从环境搭建到 5 类生成任务 【免费下载链接】RFdiffusion Code for running RFdiffusion 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion RFdiffusion 是一款基于扩散模型的蛋白质骨架生成工具:它把目…

作者头像 李华
网站建设 2026/8/22 7:53:12

群晖安装百度网盘客户端完整教程:套件部署、容器原理与排障

群晖安装百度网盘客户端完整教程:套件部署、容器原理与排障 【免费下载链接】synology-baiduNetdisk-package 项目地址: https://gitcode.com/gh_mirrors/sy/synology-baiduNetdisk-package 想让百度网盘的下载、备份跑在群晖NAS上、全天候不打扰&#xff1…

作者头像 李华
网站建设 2026/8/22 7:52:35

Node.js生产级服务底座搭建:Express+CORS+MySQL+bcryptjs一体化实践

1. 这不是“新建文件夹”,而是构建一个可交付的Node服务起点你搜“如何创建一个node项目”,点开前十个结果,大概率会看到类似“mkdir myapp && cd myapp && npm init -y”这种三行命令。我试过——它确实能跑起来&#xff0c…

作者头像 李华
网站建设 2026/8/22 7:46:35

深圳泛955不加班公司名单解析与求职指南

1. 项目背景与价值解析"泛955不加班公司名单"这个概念最早起源于程序员社区,指的是那些基本遵循标准工作时间(早9点至晚5点,每周5天)、加班文化相对温和的互联网科技企业。这份深圳地区的名单整理,本质上是对…

作者头像 李华