Linux系统下使用apt下载系统组件对应版本的源码
前言:在Linux操作系统端进行软硬件适配时,某些场景需要对系统已有的程序组件进行修改与编译,但许多开源的操作系统对关键程序组件进行开源维护时因为一定的原因并未直接在github等平台完全开源,如github上开源的版本与系统端使用的程序组件版本并不一致,这将对软硬件的有效适配造成一定的困扰。
实例举例:版本号为1070的统信UOS操作系统上的控制中心(dde-control-center)使用的版本为5.7.36.4-1,可以使用apt list dde-control-center命令查看,具体如下:
uos@uos-PC:~$ apt list dde-control-center
正在列表... 完成
dde-control-center/未知,now 5.7.36.4-1 amd64 [已安装]
dde-control-center/未知 5.7.36.4-1 i386
控制中心dde-control-center为统信UOS系统的开源程序,开源于github,开源地址为:linuxdeepin/dde-control-center: Control panel of Deepin Desktop Environment.
开源仓库中更新了多个版本,但并没有发现UOS1070系统端所对应的版本,具体如下:
解决方法:使用apt source命令在deb-src源下载源码,若对应的程序组件在deb-src源上开源的话(不理解deb-src上为啥有版本号对应的源码版本,有博友知道原因的话请告知【手动拱手】),可以下载到与当前系统程序组件所对应版本的源码,操作流程如下:
1、首先确保deb-src源已经启用,未启用状态下使用apt source命令会有相应提示~E: 您必须在 sources.list 中指定代码源(deb-src) URI,按照提示对/etc/apt/sources.txt中deb-src源解注释即可,具体如下:
## Generated by deepin-installer
deb https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
# deb-src https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
2、使用apt source下载对应包
# 使用apt source下载指定程序源码(必须指定程序全名)
apt source <program-full-name># 以下载dde-control-center源码为例
# 正确用法--指定程序全名
apt source dde-control-center # 下载完成后,使用ls -l即可看到所对应的源码
uos@uos-PC:/home/uos/Downloads/dde-control-center-source$ ls -l
总用量 23028
drwxr-xr-x 21 sdt sdt 4096 7月 24 16:34 dde-control-center-5.7.36.4
-rw-r--r-- 1 sdt sdt 12852 1月 9 2025 dde-control-center_5.7.36.4-1.debian.tar.xz
-rw-r--r-- 1 sdt sdt 1686 1月 9 2025 dde-control-center_5.7.36.4-1.dsc
-rw-r--r-- 1 sdt sdt 23552644 1月 9 2025 dde-control-center_5.7.36.4.orig.tar.xz# --------------------------------------------------------------------------
# 注意:apt source与apt list命令不同,不能像apt list那样使用字符*进行模式匹配检索
# 错误用法--使用字符*匹配()
apt source dde-control*
# --------------------------------------------------------------------------