gpt4 book ai didi

linux - 发行版维护者(即 Ubuntu、Fedora)使用什么工具进行构建/依赖管理?

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:10 25 4
gpt4 key购买 nike


背景

为了研究和概念验证,我想 fork 现有的 Linux 发行版,例如 Ubuntu(或可能是 Fedora)。我有一小群 vagrant 虚拟机,我想对此进行试验,以了解大型(开源)项目处理构建和依赖项管理的能力。


详情

虽然拉取它们各自的源代码树、补丁等很简单;有一件事让我难以理解是“他们如何构建每个包”?为了执行类似“每晚构建”的操作,据我了解,发行版维护者需要:

  • 为所有支持的平台(即x86x86_64armarmhf)设置构建环境aarch64mips 等)。
  • 为每个包拉取源压缩包/repos。
  • 为所有“库”包部署 header 。
  • 为所有“库”包构建和部署库(即 .a.so 文件)。
  • 构建和部署(可能)依赖于先前构建的库的应用程序/二进制文件。
  • 将每个库/应用打包为自己的 deb/rpm/tarball。
  • 创建包含所有软件包的整体安装程序。

问题

发行版维护者如何设置这一切?发行版维护者是否使用通用/标准框架,或者他们是否都在内部“包装自己的解决方案”?

最佳答案

您可以在 Linux From Scratch 中了解其中的许多步骤书。虽然本书着重于x86_64 平台,但您在那里学到的东西可以移植到其他平台。例如,稍后您为 ARM 构建时,您可以按照 this 等教程进行操作对于内核,对于特定的包/库,它们对应的交叉编译命令,它会因程序而异。学习完本书后,您至少能够理解帖子详细信息中的前五个项目。

至于打包 .deb.rpm 包,这将特定于您 fork 的发行版,您必须阅读一些相关文档。如果你打算发布你的分支,你还需要一个包的在线提供者(例如,sourceforge、github、gitlab)。因此,您必须为源代码和二进制文件设置 repo 协议(protocol),以便您的包管理器指向(在 apt 的情况下,它将是 /etc/apt/指向的那些sources.list.)

最后,您需要将所有这些打包到 .iso 文件中进行安装。在您的计算机上启动并运行 LFS 后,您可以从中生成一个镜像,假设它是 /dev/sda1 中的一个分区:

dd if=/dev/sda1 of=my-distro-iso.iso

然后刻录它并启动它。有了这个就足以让其他人安装你的发行版了。如果你想做更多并制作一个安装程序,也许你可以使用像 Ubiquity 这样的分发构建器。或 Anaconda .这不会是微不足道的,你必须阅读如何使用它们,但对于刚刚通过 LFS 测试的人来说,这将很容易;)

您还可以指望 Advanced Linux Programming在为您的发行版开发应用程序时预订。

关于linux - 发行版维护者(即 Ubuntu、Fedora)使用什么工具进行构建/依赖管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52430627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com