你在哪里下载Linux源代码?

假设我对某个特定Linux实用程序的源代码感兴趣,比如factor 。 我在哪里可以find该实用程序的源代码?

我所做的是键入

 man factor 

并发现了“GNU coreutils 6.10”。 所以我搜索了'coreutils'和…发现该网站joschi刚刚挂钩。

你也可以找出哪个软件包来自下载软件包的源代码。

在Debian上(以及Ubuntu和其他基于Debian的东西),你可以这样做:

 $ dpkg -S / usr / bin / factor
 coreutils:/ usr / bin / factor
 $ apt-get source coreutils

第一个命令将检查哪个软件包中包含正在搜索的文件(使用“ which factor ”来确定在输入“ factor ”时执行哪个二进制文件)。

第二个命令将下载并解压源代码(包括构建包的补丁)到当前目录,所以它应该在专用或临时目录中执行。

我很确定基于rpm的分发版本有类似的机制,但我不知道他们的命令。

要找到一个二进制文件,在基于rpm的系统中,你可以输入:

 $ rpm -qf / usr / bin / factor

这将打印包名称。 相反,与:

 $ rpm -qif / usr / bin / factor

你会得到一个包的信息,包括它的主页在许多情况下。

源rpms也存在,但如何得到它们取决于在RPM(yum,urpmi,apt-get4 for rpm,…)上使用的高级包管理器。

在大多数系统上,/ usr / share / doc /也包含一些关于程序的文档,而且网站链接经常在某处出现,可能在README中。

通常你会在程序的网站上找到源代码,如果它是开源的。 在这种情况下,因为因素是coreutils的一部分。

在Gentoo上,只需查看你编译软件包的ebuild:D。

如果你不确定?

     #哪个因素 
    在/ usr /斌/因子
     #grep'/ usr / bin / factor'/ var / db / pkg / * / * / CONTENTS
     /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj / usr / bin / factor 5aaf903daa4345efb11618b3cb47e9a5 1224224574
     /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/lib64/debug/usr/bin/factor.debug 517d965636850633e9b15926dde8c222 1224224575
     #cat /var/db/pkg/sys-apps/coreutils-6.12-r2/SRC_URI
     ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.12.tar.lzma mirror://gnu/coreutils/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12.tar.lzma mirror ://gentoo/coreutils-6.12-patches-1.0.tar.lzma http://dev.gentoo.org/~vapier/dist/coreutils-6.12-patches-1.0.tar.lzma
     #cat /var/db/pkg/sys-apps/coreutils-6.12-r2/HOMEPAGE
     http://www.gnu.org/software/coreutils/

但是,当然,源码可能仍然在/usr/portage/distfiles可用。

另一个非常好的方法是使用谷歌代码搜索 。 例如,搜索因子coreutils (请参阅手册页或factor --help帮助查看它来自coreutils)作为第二个结果提出了该程序包。 点击两下,我正在浏览factor.c在线。

谷歌代码搜索大多数公共源代码。 您可以使用正则表达式和许多高级搜索选项,包括通过语言和许可证进行限制。

我通常通过搜索新鲜食物来查找源代码,主页和其他有用信息的链接。

你可能想看看SourceForge.net 。