你从哪里下载Linux源代码?

6

如果我对某个Linux工具的源代码感兴趣,比如factor,那么在哪里可以找到该工具的源代码呢?

8个回答

14

你也可以找到该二进制文件对应的软件包并下载其源代码。

在Debian(以及Ubuntu和任何基于Debian的操作系统)上,你可以这样做:

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

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

第二个命令将下载并解压缩软件包的源代码(包括构建软件包所应用的补丁),解压后的文件会存放在当前目录下,因此请在专门的或临时的目录中执行该命令。

我相信基于rpm的发行版也有类似的机制,但我不知道它们的命令是什么。


1
谢谢,这是一个不错的非谷歌选项。我知道谷歌永远都在,但出于某种原因,我仍然喜欢知道如何在没有它的情况下生活。 - Bill the Lizard
1
我觉得这很方便,因为我甚至不用打开浏览器,它就能获取我想要的一切。 - Joachim Sauer

10

我的操作是输入

man factor

我找到了 "GNU coreutils 6.10" 并查找了 "coreutils",...发现了 joschi 刚才链接的网站。


2
谢谢,这正是我想要的(关于如何找到给定程序的源代码的一般解释)。 - Bill the Lizard
这可能并不是所有事情的好主意。一些发行版可能已经修改了原始版本以适应他们的分发。最好使用随系统提供的软件包管理软件(软件包管理可以获取源代码和二进制文件)。请参见下面的'Saua'。 - Martin York

5
在基于rpm的系统中,要找到二进制文件所属的软件包,你可以输入以下命令:
$ rpm -qf /usr/bin/factor
这将打印出软件包名称。相反,使用以下命令:
$ rpm -qif /usr/bin/factor
你将得到有关软件包的信息,包括它的主页(在许多情况下)。
还有源代码软件包,但如何获取取决于在RPM之上使用的高级软件包管理器(yum,urpmi,apt-get4 for rpm等)。
在大多数系统上,/usr/share/doc/还包含有关程序的某些文档,并且网站链接通常可以在那里的README中找到。

4
通常情况下,如果程序是开源的,您可以在其网站上找到源代码。在这种情况下,因为factor是coreutils的一部分,所以在这里找到它的源代码。

感谢提供链接。 - Bill the Lizard

3
在 Gentoo 上,只需查看您编译软件包的 ebuild 文件即可 :D。
如果您不确定?
# which factor /usr/bin/factor # 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 中可用。

3
另一个非常好的方法是使用Google Code Search。例如,搜索factor coreutils(请参阅man页面或factor --help以查看它来自coreutils)会得到该软件包作为第二个结果。只需两次点击,我就可以在线浏览factor.c
Google Code Search可以搜索大多数公共源代码。您可以使用正则表达式和许多高级搜索选项,包括按语言和许可证限制。

很好。我真正喜欢的是,任何 #included 文件在源代码中都显示为链接,使得浏览复杂的源代码非常容易。 - Bill the Lizard

2

我通常通过在freshmeat上搜索来找到源代码链接、主页和其他有用信息。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接