You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux/Unix系统中编译程序源码存储位置及/sbin/ping源码查找

编译程序源码的存储位置与Linux/Unix下的查找方法

首先得明确:编译程序的源码并没有统一固定的存储位置,得看具体情况:

  • 如果是你自己手动编译安装的程序,源码通常是你下载后解压的那个目录,比如很多人会习惯放在~/src或者自定义的/opt/src这类路径下,完全由你自己决定;
  • 如果是系统预装的编译好的程序(比如你提到的/sbin/ping),它的源码不会直接存在系统里,需要通过对应发行版的包管理器去获取。

接下来重点说说在Linux/Unix系统里,怎么找到像/sbin/ping这类程序的精确源码,以主流发行版为例:

步骤1:确定程序所属的软件包

不同发行版的命令不一样:

  • Debian/Ubuntu系列:用dpkg -S /sbin/ping,执行后会输出类似iputils-ping: /sbin/ping,这就说明ping属于iputils-ping这个软件包;
  • RHEL/CentOS/Fedora系列:用rpm -qf /sbin/ping,会得到类似iputils-20160308-10.el7.x86_64的结果,对应的源码包就是iputils。

步骤2:获取对应软件包的源码

同样分发行版操作:

  • Debian/Ubuntu系列:先确保你开启了源码仓库(编辑/etc/apt/sources.list,把带deb-src的行注释去掉),然后执行sudo apt update,接着用apt source iputils-ping,系统会自动下载该包的源码并解压到当前目录;
  • RHEL/CentOS/Fedora系列:先安装yum-utils工具(sudo yum install yum-utils),然后执行sudo yumdownloader --source iputils,下载完成后会得到一个.src.rpm文件,用rpm -ivh iputils-*.src.rpm解压,源码会被放到~/rpmbuild/SOURCES目录下,同时对应的spec文件在~/rpmbuild/SPECS里。

其他补充方法

  • 如果是你自己编译的程序,忘了源码在哪,可以看看程序的版本信息(比如ping -V),然后根据版本号去对应的开源项目仓库下载对应版本的源码;
  • 有些程序的man页里会提到源码的项目线索,比如man ping里可能会有相关说明,你可以留意一下。

内容的提问来源于stack exchange,提问作者Július Marko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:52:06