如何从源代码编译Ubuntu?

你好,我想知道如何获取Ubuntu源代码并自己编译。

基本上,我想尝试一下,请问有人可以帮助我编译完整的Ubuntu系统的步骤吗?

相比于安装预编译二进制文件,这样做是否有益处呢?


1如果你可以使用一个更精简的操作系统,Buildroot是一个可行的选择。你可以参考这个例子:https://stackoverflow.com/questions/47557262/how-to-download-the-torvalds-linux-kernel-master-recompile-it-and-boot-it-wi/49349237#49349237 ,它确实会从源代码编译所有内容。不过,与Debian相比,它的软件包数量较少。 - Ciro Santilli OurBigBook.com
1个回答

从源代码编译的好处很少。如果你坚决要这样做,那么最好切换到一个专为此类用户设计的Linux发行版,比如Gentoo。它是围绕用户从源代码编译而设计的,因此更适合你。

Ubuntu只是将一系列开源工具组合在一起,以便人们使用的优秀操作系统。它不是一个需要编译的单一软件。如果你想从源代码编译Ubuntu系统,你需要自己找到Ubuntu使用的所有软件(内核、X窗口系统以及其他所有软件),然后进行编译。还需要添加像apt这样的软件包管理工具。

除非有充分的理由尝试这样做,否则我不会费心去做。正如我之前所说,如果你想自己编译所有东西,最好切换到Gentoo,而不是选择Ubuntu。


即使是官方的Ubuntu也很少进行完全重建。单独的软件包在更新时进行重新构建。据我所知,最新发布版本中可能存在数年前的软件包! - ams
@ams: 我不太确定你说的是否正确。我认为每次有新版本发布时,软件包都会重新构建。这样做有助于检查软件包是否可以从源代码构建(否则你必须提交一个标记为“FTBFS”(无法从源代码构建)的错误报告)[1] http://en.wikipedia.org/wiki/FTBFS [2] http://qa.ubuntuwire.org/ftbfs/ - Savvas Radevic
@medigeek 是的,它们已经构建好了,但并没有重新发布,据我所知也不是完全的引导重建。也就是说,一旦证明它们可以被重建,新的构建就会被丢弃。 - ams
@ams:你有相关的参考资料吗?编译器/优化器经常会进行改进(尤其是为了提高性能)。重新编译可以让所有可执行文件受益于这些改进。 - Nicolas Raoul
这是一个示例软件包:https://launchpad.net/ubuntu/+source/xdot。尽管是复制的,但Natty和Oneiric使用完全相同的软件包构建,然后进行升级,而Precise和Quantal共享相同的软件包名称,如果名称相同,则表示是同一个软件包,否则apt-get upgrade将无法工作。 - ams