【问题标题】:Where do you download Linux source code? [closed]你在哪里下载 Linux 源代码? [关闭]
【发布时间】:2025-04-24 05:50:02
【问题描述】:

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

【问题讨论】:

    标签: linux


    【解决方案1】:

    您还可以找出二进制文件来自哪个软件包,该软件包来自打包源代码的下载。

    在 Debian(以及 Ubuntu 和任何其他基于 Debian 的系统)上,您可以这样做:

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

    第一个命令将检查哪个包包含您正在搜索的文件(使用“which factor”来找出当您只需键入“factor”时执行的二进制文件)。

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

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

    【讨论】:

    • 谢谢,这是一个不错的非 Google 选项。我知道 Google 将永远存在,但出于某种原因,我仍然喜欢知道如何在没有它的情况下生活。
    • 我觉得它很方便,因为我什至不必启动我的浏览器。它只是得到我想要的任何东西。
    【解决方案2】:

    我所做的是打字

    man factor
    

    然后走到底部发现'GNU coreutils 6.10'。所以我用谷歌搜索了“coreutils”,然后……找到了 joschi 刚刚链接到的网站。

    【讨论】:

    • 谢谢,这(关于如何找到给定程序的源代码的一般说明)是我所追求的。
    • 这对所有事情来说可能都不是一个好主意。一些发行版可能已经修改了其发行版的原始版本。使用系统附带的包管理软件可能是一个更好的主意(包管理可以获取源代码和二进制文件)请参阅下面的“Saua”。
    【解决方案3】:

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

    $ rpm -qf /usr/bin/因子

    这将打印包名称。取而代之的是:

    $ rpm -qif /usr/bin/因子

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

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

    在大多数系统上,/usr/share/doc/ 也包含有关该程序的一些文档,并且网站链接经常可以在某个地方找到,可能在自述文件中。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 感谢您提供链接。
      【解决方案5】:

      在 Gentoo 上,只需查看您使用 :D 编译包的 ebuild。

      如果你不确定?

      # 哪个因素 /usr/bin/因子 # 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 中可能仍然可用。

      【讨论】:

        【解决方案6】:

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

        Google 代码搜索搜索大多数公开源代码。您可以使用正则表达式和许多高级搜索选项,包括按语言和许可进行限制。

        【讨论】:

        • 不错。我真正喜欢这一点的一点是,任何#included 文件都在源代码中显示为链接,这使得在复杂的源代码中导航变得非常容易。
        【解决方案7】:

        我通常通过搜索freshmeat 找到指向源、主页和其他有用信息的链接。

        【讨论】:

          【解决方案8】:

          您可能想查看SourceForge.net

          【讨论】: