ubuntu 获取 package source code

ubuntu是开源系统,系统里的所有package也都是开源的,如何方便的获取package的source code?

1. 修改/etc/apt/sources.list,打开deb-src (默认是注释掉的)

2. 更新src source的源

$sudo apt update

3. 获取package 名字

在获取source code之前,你需要知道package的名字,可以通过dpkg -l的方式查看。如果你不知道包名,只知道包安装以后文件的位置,可以先通过这些文件获取包名。这些文件可以是so,bin,甚至是头文件。举几个例子,比如我们想获取Xserver的package名字:

a) 通过dpkg -l查看

$dpkg -l | grep xserver

可以看到xserver-xorg-core-hwe-16.04,这个就是包名

b)通过命令查找包名

$which Xorg
/usr/bin/Xorg
$dpkg -S /usr/bin/Xorg
xserver-xorg-core-hwe-16.04: /usr/bin/Xorg

你甚至可以通过头文件来找到对应的package,比如:

$dpkg -S /usr/include/drm/drm.h
linux-libc-dev:amd64:/usr/include/drm/drm.h

输出:

linux-libc-dev就是package 名字。

4. 根据package名字获取source code

$apt source xserver-xorg-core-hwe-16.04

通过这种方式获取的source code会自动帮你解压。

如果apt source这种方法有问题,那么可以手动去发行版的网站上下载package的source code,这里仍然以ubuntu 16.04的xserver为例。ubuntu的source code都在launchpad上:

https://launchpad.net/ubuntu

package直接搜索xserver-xorg,找到后进入:

https://launchpad.net/ubuntu/+source/xorg-server

ubuntu 16.04的发行版代号是 xenial,目前的最新版是1.18.4,点进去

https://launchpad.net/ubuntu/+source/xorg-server/2:1.18.4-0ubuntu0.8

Downloads那里就可以下载source code了,注意要下载三个文件,一个都不能少。

File Size SHA-256 Checksum
xorg-server_1.18.4.orig.tar.gz 8.0 MiB 4ba0e6c2c96650f1d1606572196143054005eb88d31c33b15a81d50886f26713
xorg-server_1.18.4-0ubuntu0.8.diff.gz 316.3 KiB bc2ae3f1f64796688f1c0c4166fc04a5a0a196936dbda3f753bdb8b5508dab68
xorg-server_1.18.4-0ubuntu0.8.dsc 5.0 KiB 348252eff7d774c35712a1e142929d7c7efe86f7be0d1c6bf0ea31ecbfa85bfc

下载完以后,进入文件目录,运行命令解压source code:

$dpkg-source -x *.dsc

效果和apt source是一样的。

拿到source code以后你可能需要修改source code并重新生成包。发行版对应的source code都是用quilt来管理,所以需要通过quilt来修改code,具体方法可以参考这篇文章

发布了32 篇原创文章 · 获赞 6 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/scutth/article/details/105116365