在 Debian 系统中获取并“解压”源码,通常有两种常见场景:解压单个源码包(.dsc + orig.tar. + debian.tar.*)* 和 从 Debian 仓库获取并解压源码。下面分别说明。
你手头如果有这些文件:
xxx.dscxxx.orig.tar.xzxxx.debian.tar.xzdpkg-source(最标准)sudo apt install dpkg-dev
dpkg-source -x xxx.dsc
执行后会在当前目录生成一个源码目录,例如:
xxx-1.2.3/
里面包含完整的上游源码和 Debian 补丁。
✅ 这是 Debian 官方推荐方式
如果你只是想“看源码”,可以手动解压:
tar -xf xxx.orig.tar.xz
tar -xf xxx.debian.tar.xz
但这样不会自动应用补丁,也不符合 Debian 构建规范。
编辑 /etc/apt/sources.list,确保有 deb-src:
deb-src http://deb.debian.org/debian bookworm main
然后更新:
sudo apt update
sudo apt install dpkg-dev devscripts
apt source 包名
例如:
apt source vim
会自动完成:
.dscorig.tar.*debian.tar.*结果:
vim_9.0.1378.orig.tar.xz
vim_9.0.1378.debian.tar.xz
vim-9.0.1378/
进入源码目录:
cd vim-9.0.1378
ls debian/patches
查看补丁应用情况:
cat debian/patches/series
You must put some 'deb-src' URIs in your sources.list→ 没配置源码源(见上面)
dpkg-source: error: cannot read xxx.dsc→ 文件损坏或路径错误
| 场景 | 命令 |
|---|---|
| 解压 .dsc | dpkg-source -x xxx.dsc |
| 从仓库获取 | apt source 包名 |
| 查看补丁 | ls debian/patches |
| 构建依赖 | sudo apt build-dep 包名 |
如果你愿意,可以告诉我:
我可以给你更精确的命令。