我想找到Linux/Unix系统中编译程序的确切源代码。
举例说明:
computer:/ username$ whereis ping
/sbin/ping
任务是找到源代码/sbin/ping。
答案1
已编译的二进制文件的源代码可能在您的系统上不可用。
在开放BSD(不是 Linux),完整的基本系统的源代码(包括内核和实用程序,如ping
)可通过 CVS 获得。
对于可通过 Web 浏览的 OpenBSD 存储库,请参阅https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/
来源ping
位于src/sbin/ping
。
这网络BSD项目(同样,不是 Linux)有一个可浏览的 CVS 存储库,位于http://cvsweb.netbsd.org/bsdweb.cgi/src/
的来源ping
位于src/sbin/ping
在那棵树中,对于 OpenBSD 来说。
这自由BSD项目(也不是 Linux)有一个 GitHub 存储库:https://github.com/freebsd/freebsd
源代码ping
位于sbin/ping
在那棵树上。
在这些 BSD 系统上,只有当用户签出相应的存储库时,基本实用程序和内核的源代码才在系统上可用。
(带有构建说明的 Makefile)第三方工具包/端口保存在所有这三个操作系统的单独存储库中,并且如果有人决定,通常从相关工具的主要分发站点获取源代码自己编译该工具,而不是使用现成的二进制包/端口。
请参阅相关 Unix 提供的文档,了解如何使用其包/端口系统。
对于 Linux 实用程序源代码,您必须首先弄清楚该实用程序来自哪个包,然后(如果可能)使用包管理器软件获取该包的源代码。或者,查找包维护者在创建二进制包时从哪里获取源代码。根据您使用的 Linux 和包管理器软件,这会有所不同。