据我所知,Linux是一个开源项目,这意味着我们可以找到构建这个系统的所有代码。
但这对我来说太难了。
有没有一种简单的方法可以检查任何命令的源代码?比如功能hostname
。我觉得它会写信息到它的配置文件(也可能是不/etc/sysconfig/network
中的CentOS 6.3,我认为)。我希望找到真正的配置文件。那么如何hostname
通过简单的方法找到一个命令(如)的源代码呢?
没有简单的方法。但是对于属于 RPM 一部分的文件是可行的:
rpm -qf
对于给定的文件名标识包rpm -qi
对于给定的包,可以稍微说明程序的来源。如果它不在 RPM 中,除非您知道文件是如何到达那里的,否则很难找到源。对于非 CentOS 包,打包者可能会识别源位置,可能不会。
例如,您的示例hostname
可能由coreutils提供,但 RPM 表示它不是:
$ rpm -qi `rpm -qf /usr/bin/hostname`
Name : hostname
Version : 3.13
Release : 3.el7
Architecture: x86_64
Install Date: Fri Jul 4 13:23:13 2014
Group : System Environment/Base
Size : 19449
License : GPLv2+
Signature : RSA/SHA256, Thu Jul 3 21:54:35 2014, Key ID 24c6a8a7f4a80eb5
Source RPM : hostname-3.13-3.el7.src.rpm
Build Date : Mon Jun 9 17:48:44 2014
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://packages.qa.debian.org/h/hostname.html
Summary : Utility to set/show the host name or domain name
Description :
This package provides commands which can be used to display the system's
DNS name, and to display or set its hostname or NIS domain name.
Run Code Online (Sandbox Code Playgroud)
由于供应商是CentOS
,您可以在 CentOS 的站点上找到源代码。或者您可以遵循给定的 URL(这可能需要一些工作)。在这种情况下,Debian 提供了一个链接来浏览源代码,因为 Debian 维护该程序。在他们没有的情况下,通常一个焦油球是你能找到的最好的。