你在哪里下载Linux源代码?

时间:2009-01-11 20:49:47

标签: linux

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

8 个答案:

答案 0 :(得分:14)

您还可以找到包含源代码的下载包含二进制文件的包。

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

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

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

第二个命令会将源(包括用于构建程序包的补丁)下载并解压缩到当前目录,因此应该在专用目录或临时目录中执行。

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

答案 1 :(得分:9)

我所做的是输入

man factor

然后到底部找到'GNU coreutils 6.10'。所以我用谷歌搜索了'coreutils'并且......发现了joschi刚刚链接到的网站。

答案 2 :(得分:5)

要查找二进制文件包,在基于rpm的系统中,您可以键入:

$ rpm -qf /usr/bin/factor

将打印包名称。相反,使用:

$ rpm -qif /usr/bin/factor

您将获得有关包裹的信息,包括许多情况下的主页。

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

在大多数系统上,/ usr / share / doc /还包含有关该程序的一些文档,并且网站链接经常出现在那里,可能在README中。

答案 3 :(得分:4)

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

答案 4 :(得分: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中提供。

答案 5 :(得分:3)

另一种非常好的方法是使用Google Code Search。例如,搜索factor coreutils(请参阅手册页或factor --help以查看它来自coreutils)会将包作为第二个结果。两次点击即可在线浏览factor.c

Google Code Search搜索大多数公共源代码。您可以使用regexp和许多高级搜索选项,包括按语言和许可限制。

答案 6 :(得分:2)

我通常会在freshmeat上搜索来找到源,主页和其他有用信息的链接。

答案 7 :(得分:-1)

您可以查看SourceForge.net