深度商店从0到1:编译安装应用市场

📅 2026/8/21 21:08:18
深度商店从0到1:编译安装应用市场
深度商店从0到1:编译安装应用市场【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstoreDeepin Appstore 是深度操作系统的官方应用市场客户端,你可以在界面里搜索、浏览软件,一键完成下载和安装。跟着这篇文章走一遍,你就能从源码得到一个能用的应用商店,顺便搞懂 Linux 应用市场的整体架构。整个项目是三种语言拼起来的:C 配合 Qt 和 DTK 工具包做外壳,用 libqcef 内嵌浏览器渲染 Angular 写的 TypeScript 页面,管理下载与安装任务的后台服务 deepin-appstore-daemon 则是 Go 写的,三层之间全部通过 D-Bus 通信。动手前确认三件事你的系统是带图形界面的 Debian 系发行版,并且有 sudo 权限,因为全程要装系统级依赖包。机器架构最好是 amd64:前端资源的官方构建流程只在这一条路上是完整的,其他架构需要走跳过 Web 构建的备选路线。如果你想自己编译前端页面,需要准备 Node 10 左右的老版本运行时——前端用的是 Angular 8,新版本 Node 直接跑不起来。这里有个小提醒:这个仓库已经归档,不再活跃维护。在新系统上遇到编译错误属于正常现象,文末给出了应对思路。拉取代码与子模块安装构建依赖先把 CMake 构建系统、Qt5 与 DTK 相关开发库、libqcef 内嵌浏览器、Go 编译器和 Node 运行时一次性装好,这是后面所有构建步骤的基础。sudo apt install cmake pkg-config libdtkwidget-dev libdframeworkdbus-dev \ libqcef-dev libqt5webchannel5-dev libsass0 qttools5-dev qttools5-dev-tools \ libqt5sql5-sqlite golang-go golang-dlib-dev nodejs python3这里有个小提醒:较新的发行版源里可能找不到 Node 10,装到 18 及以上也没关系,后面配置 CMake 时加-DBUILD_WEB_RESOURCESOFF跳过前端编译即可。克隆仓库并同步子模块仓库里有一个名为src/web/vendor-deps的子模块,存放的是前端依赖,必须随主仓库一起拉下来,前端编译环节才不会缺东西。git clone https://gitcode.com/gh_mirrors/dee/deepin-appstore cd deepin-appstore git submodule update --init --recursive配置构建环境并编译用 CMake 初始化并选定构建路线CMake 里有两个开关决定这次构建的轻重。BUILD_WEB_RESOURCES默认是 ON,会在构建时调用 npm 编译 Angular 前端,这一步对 Node 版本敏感;改成 OFF 就跳过它,只编译 C 外壳和 Go 守护进程。Release 模式还会顺带生成翻译文件和桌面入口,是推荐的默认选择。mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease -DBUILD_WEB_RESOURCESOFF ..编译主程序与守护进程用 make 完成全部编译,主程序、守护进程、各语言翻译在这一步就绪,多核并行能省不少时间。make -j $(nproc)安装到系统安装布局很规整:deepin-appstore与deepin-appstore-daemon两个可执行文件进/usr/local/bin,Web 数据和翻译文件进share/deepin-appstore/目录,装完就能全局调用。sudo make install✅ 验证商店能正常启动在终端直接运行deepin-appstore,窗口打开并能看到市场页面,说明主程序、守护进程和 Web 资源三块都接通了。可以再跑一遍deepin-appstore-daemon,确认守护进程能正常注册 D-Bus 服务后退出,之后在界面里试着安装一个应用,走通从搜索到安装的完整链路。️ 避坑与后续依赖装不全怎么办?最常见的卡点是 libqcef 和 libdtkwidget 这类深度专属组件,通用发行版的官方源里没有。这个项目最省心的做法是在 Deepin 系统上构建,或者自行引入深度软件源;装不到这些库,主程序链接阶段会直接报找不到。归档项目在 Debian 12 上还能编译吗?C 部分问题不大,真正的老古董是前端工具链:Angular 8 配 Node 10。两条路可走,一是保持BUILD_WEB_RESOURCESOFF用预编译的 Web 数据,二是借助 Docker 跑老版 Node 环境,仓库里src/web/Makefile就记录了一条基于 Docker 的构建流程可以借鉴。守护进程连不上 D-Bus:deepin-appstore-daemon 依赖会话总线,无图形的 headless 环境里起不来,报 D-Bus 相关错误时,换到桌面会话里运行即可。遇到问题去哪问:仓库已归档,issue 区响应有限,建议去 Deepin 社区论坛搜索同类编译问题,这里涉及的开发包几乎都在深度生态里,历史帖子里往往藏着能用的解法。【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstore创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考