1. 首先确认一下配置文件里是有包含 src 相关的源的

$ cat /etc/apt/sources.list |grep -v "^#" | grep "deb-src"
deb-src http://cn.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://cn.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://cn.archive.ubuntu.com/ubuntu/ precise multiverse


2. 获取源代码

$ apt-get source pkg_name


3. 参考

这里写了一个简单的脚本用于自动获取对应的命令的源文件。

#!/bin/sh

match_line=$(dpkg -S "$1" | grep ":" | head -1)
if [ $? != 0 ]; then
    echo "no pkg found!"
    exit 1
fi
match_pkg=$(echo $match_line | sed -e 's/:.*//')
echo "start to get source of $match_pkg ..."
apt-get source $match_pkg




使用说明:

$ sh /tmp/test.sh /usr/bin/msgfmt

sh /tmp/test.sh /usr/bin/msgfmt
start to get source of gettext ...
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
需要下载 15.2 MB 的源代码包。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ precise/main gettext 0.18.1.1-5ubuntu3 (dsc) [1,342 B]
获取:2 http://cn.archive.ubuntu.com/ubuntu/ precise/main gettext 0.18.1.1-5ubuntu3 (tar) [15.1 MB]