如何获取 Ubuntu 源代码?

Posted

技术标签:

【中文标题】如何获取 Ubuntu 源代码?【英文标题】:How do I get the Ubuntu source code? 【发布时间】:2011-06-13 15:51:35 【问题描述】:

在哪里可以找到最新 Ubuntu 版本的源代码?

另外,我将如何查看代码?我可以在 Visual Studio 中查看大量 .cpp 和 .h 文件吗?

【问题讨论】:

谢谢,我选择 dists 子文件夹了吗?在这一点上,我看到了大量的子文件夹?这些都是操作系统的一部分吗? 子集:askubuntu.com/questions/106818/… 【参考方案1】:

您可以从此处选择源图像(本例中为 16.04):http://cdimage.ubuntu.com/releases/16.04/release/source/

你也可以选择你想要的版本。

参考:https://askubuntu.com/a/167472

【讨论】:

在我的情况下,我想要源代码,而不是图像【参考方案2】:

ubuntu 的源代码按包划分 - 从正在运行的 ubuntu 系统中,您可以通过以下操作轻松检索任何包的源代码:

apt-get source (package name)

否则,请转到launchpad,并搜索有问题的包。例如,这里是特定版本 curl 的源代码的下载页面:https://launchpad.net/ubuntu/+source/curl/7.21.2-4ubuntu1

也就是说,如果你已经在 Linux 系统上,那就容易多了——包源分为原始源 tarball 和 ubuntu 补丁,所以如果你不使用apt-get source,你需要手动将补丁应用到源代码。而新式包甚至被分成多个包。

更重要的是,这些包通常不是为从非 Linux 系统交叉编译而设计的。即使你下载它们并在 VS 中打开它们,你也无法从 Windows 系统构建它们。

最后,请注意,并非所有内容都使用 C 和 C++ - 几乎所有您能想象到的语言都有包。但我想它们中的大多数都可以在 VS 中作为文本文件打开 :)

注意:如果您真的,真的想要所有这些,我怎么强调都不过分地下载所有东西来开始学习系统,您可以使用 ubuntu 中提供的debmirror 工具来执行此操作:

debmirror -a none \
          --source \
          -s main \
          -d lucid,lucid-security,lucid-updates \
          -r /ubuntu \ 
          --progress \
          -e http \
          -h archive.ubuntu.com \ ## or other ubuntu archive mirror
          destpath

这将是一个绝对巨大的下载。有几十 GB 的可用空间。请注意,这只会下载核心包 - 将 -s main 替换为 -s main,universe,multiverse,restricted 以获取所有内容。

获得包文件后,您可以通过在感兴趣的 .dsc 文件上运行 dpkg-source -x 来提取源代码。

【讨论】:

有没有办法把它们全部搞定,因为我真的不能说我知道我想要哪些“包”?我只是想了解 Linux 作为操作系统的工作原理 把它们全部搞定会让你不知所措——我们在这里谈论的是千兆字节。我建议从已安装的 ubuntu 系统开始,使用 shell,当您发现有兴趣了解更多信息时,使用 apt-get source 就可以了。 也许您应该添加源已下载到当前工作目录。【参考方案3】:
    archive.ubuntu.com 其中大部分是 .c 和 .h 文件(不确定 C++),但肯定不是全部(一些 perl、一些 Python 等)。还会有很多文档文件不是用 .txt 保存的,比如READMELICENSE

【讨论】:

以上是关于如何获取 Ubuntu 源代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SuperBible 获取 GLTools 库以在 Ubuntu 中工作?或替代方案? [关闭]

如何获取ubuntu源码包里面的源码进行编译

如何获取ubuntu源码包里面的源码进行编译

ubuntu 下如何获取USB接口相机的uri路径

Ubuntu上,忘记了phpstudy登录密码如何获取修改

如何在我的 docker ubuntu 映像中获取 nvidia 驱动程序?