apt-get source 下载源码需四步:确认精确包名与版本、启用并验证 deb-src 源、下载后校验 .dsc 签名与 changelog 一致性、在最小化构建环境中按 debian 标准流程加固定制。

直接用 apt-get source 拉取与当前系统完全匹配的官方组件源码,是安全加固和定制开发的前提。关键不在于“能不能下”,而在于“下得准、验得严、改得稳”。下面分四步讲清楚实操要点。
确认目标组件的精确包名与系统版本对应关系
很多开发者卡在第一步——输错包名。系统里显示的程序名(如 dde-control-center)不等于源码包名,更不等于内核源码包名。
- 先查已安装组件的完整包名和版本:
apt list --installed | grep -i control-center或dpkg -l | grep dde-control-center - 对内核源码,不能只写
linux-source-5.15;必须带 flavor,例如:linux-source-5.15.0-107-generic,可通过uname -r和apt-cache search linux-source联合确认 - 若不确定包是否存在,用
apt-cache policy查看是否在启用的源中可命中
启用并验证 deb-src 源(必须步骤,不可跳过)
apt-get source 默认只读二进制源(deb),源码必须从 deb-src 行下载。未启用会报错:E: You must put some 'deb-src' URIs in your sources.list。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 编辑
/etc/apt/sources.list或/etc/apt/sources.list.d/*.list,将对应行的# deb-src去掉注释,确保协议为https,且与deb行的域名、发行版代号(如focal、eagle)完全一致 - 运行
sudo apt update后,检查输出中是否有Get:xx ... Sources行;没有则说明deb-src未生效 - 统信UOS、Deepin 等定制系统需特别注意:其
deb-src地址可能独立于主源,例如https://professional-packages.chinauos.com/...,不可直接套用 Debian/Ubuntu 镜像地址
下载源码并立即校验完整性与签名
源码包下载后不校验,等于把后门主动放进开发环境。
- 执行
apt-get source(例如apt-get source dde-control-center),源码将解压到当前目录下的同名文件夹(如dde-control-center-5.7.36.4) - 检查下载生成的
.dsc文件是否含有效 GPG 签名:gpg --verify _.dsc;若提示NO_PUBKEY,须手动导入发行方密钥(如统信用curl -fsSL https://keyring.chinauos.com/... | sudo gpg --dearmor -o /usr/share/keyrings/chinauos-archive-keyring.gpg) - 对比
debian/changelog中的版本号、打包时间,与apt list输出是否一致,防止拉错分支或测试版
加固与定制前的最小化环境准备
二次开发不是直接改代码就编译,而是要复现原始构建上下文,避免引入意外依赖或行为偏移。
- 进入源码目录后,先运行
mk-build-deps --install --remove(需devscripts包),自动安装debian/control中声明的构建依赖,比手动apt-get build-dep更精准 - 禁止修改
debian/rules外的构建逻辑,如需加补丁,应走标准debian/patches/流程,并更新debian/patches/series - 企业内部发布前,必须用原始签名密钥重新签署 deb 包:
debsign ../*.changes,并部署到自有 APT 仓库,配合signed-by配置强制终端校验










