
深度商店 deepin-appstore 上手指南把 Deepin 官方应用商店跑起来【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstoreDeepin 应用商店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 与 DTKDeepin 工具包相关的系统包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_TYPERelease .. make -j$(nproc)正式打包参数以 debian/rules 和项目最新文档为准。核心机制dpk:// 链接如何定位一个软件前端页面不会直接写死包名而是使用一种自定义协议——dpk 链接DPK 在这里是包格式的标记与文件扩展名 .dpk 无关。比如dpk://deb/gedit表示 deb 格式的 geditdpk://flatpak/gedit则指 flatpak 格式。链接分三段协议名dpk、包格式、应用名要求全小写 ASCII 字符同一个应用可以有多个 dpk 链接对应不同格式。规则细节见 docs/dpk.md。⚠️ 新手容易卡住的 3 个坑Web 资源构建需要 Node 环境。src/web/Makefile 用 Docker 里的node:10镜像分别构建 china 和 international 两个版本。不改页面时可以加-DBUILD_WEB_RESOURCESOFF跳过省掉整个前端构建。守护进程脱离桌面跑不起来。Go 程序注册的是 D-Bus 会话服务com.deepin.AppStore.Daemon没有 Deepin 桌面会话就没有总线。它的缓存和配置分别在~/.cache/deepin/deepin-appstore-daemon与~/.config/deepin/deepin-appstore排查问题时先看这两个目录的日志。非 x86 平台构建参数不同。debian/rules 里非 amd64 架构会自动关闭 DXCB 与多线程。若在 ARM 机器上编译报错先对照这里的参数差异。下一步从哪里开始参与译者看 translations/已覆盖 30 多种语言CMake 提供upload-i18n、download-i18n两个 target用 lupdate 提取字符串后同步到翻译平台。想读安装主流程从 src/daemon/deb.go 开始配合deb_job.go能看清一个安装任务的完整生命周期。遇到问题或提交补丁前先翻一遍 CHANGELOG带上你的系统版本信息再提 Issue会省很多来回。【免费下载链接】deepin-appstore项目地址: https://gitcode.com/gh_mirrors/dee/deepin-appstore创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考