如何 15 分钟跑通 Deepin AppStore:深度商店从克隆到启动的完整实操
【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstore
Deepin AppStore 是 Deepin 系统的图形化软件商店,帮你搜索、下载、安装和管理 Linux 应用。下面在 15 分钟内,把它从源码编译到启动跑起来。
⚙️ 跑起来之前:准备构建环境
| 名称 | 最低版本 | 一句话用途 |
|---|---|---|
| cmake | 3.10 | 生成构建脚本 |
| Qt5 | 5.12 | C++ 界面框架 |
| libdtkwidget-dev | 1.0 | Deepin 官方控件库,仅 Deepin 软件源提供 |
| libqcef-dev | 1.0 | 内嵌 Chromium 的 Qt 库,仅 Deepin 软件源提供 |
| node | 8.11 | 构建 Angular 8 前端(版本锁定,不能高) |
| npm | 6 | 前端依赖与构建工具 |
| go | 1.13 | 编译 Go 编写的商店 daemon |
| git | 1.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 libsass0macOS(Homebrew)只能装通用工具,Deepin 控件库需另行准备:
brew install cmake golang libsass node@8 qt@5macOS 拿不到libdtkwidget-dev和libqcef-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 首页,包含推荐位、轮播图和分类导航。
🎯 真正用起来:三个高频场景
场景:搜索并安装应用
- 在窗口顶部搜索框输入应用名,按回车。
- 点进搜索结果进入详情页,核对版本与说明。
- 点"安装",按钮转为进度条,完成后变为"打开"。
预期效果:进度条走完,应用出现在"我的应用"里。
场景:安装本地 .dpkg 文件
- 打开"我的应用"。
- 点"安装 .dpkg 文件",选择本机文件。
- 在弹出的列表中勾选目标包,点确认。
预期效果:所选 .dpkg 进入安装队列,进度完成后出现在已安装列表。
场景:管理已装应用
- 进入"我的应用",在本地应用列表里批量勾选。
- 执行卸载或更新。
- 查看可用更新,点"全部更新"。
预期效果:列表实时刷新,更新与卸载共用一条进度反馈。
⚠️ 别踩这些坑
现象:非 Deepin 系统
cmake报Could NOT find package dtkwidget / libqcef。原因:libdtkwidget-dev、libqcef-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),仅供参考