ubuntu 获取 package source code

在Ubuntu中获取开源软件的源代码,首先需要修改sources.list启用deb-src,更新源,然后通过dpkg命令查找包名。获取源代码可以使用apt source或者直接从Launchpad下载,如xserver-xorg的例子所示,确保下载所有必要文件并使用quilt进行代码修改和打包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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了,注意要下载三个文件,一个都不能少。

FileSizeSHA-256 Checksum
xorg-server_1.18.4.orig.tar.gz8.0 MiB4ba0e6c2c96650f1d1606572196143054005eb88d31c33b15a81d50886f26713
xorg-server_1.18.4-0ubuntu0.8.diff.gz316.3 KiBbc2ae3f1f64796688f1c0c4166fc04a5a0a196936dbda3f753bdb8b5508dab68
xorg-server_1.18.4-0ubuntu0.8.dsc5.0 KiB348252eff7d774c35712a1e142929d7c7efe86f7be0d1c6bf0ea31ecbfa85bfc

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

$dpkg-source -x *.dsc

效果和apt source是一样的。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值