我想了解一个 Linux 发行版是怎么构建的,在哪里能看到 Debian、Fedora、Arch 这类发行版从源码、补丁到发布到软件源和打包 ISO 的构建流程?

8 小时 32 分钟前
 LokiSharp
998 次点击
所在节点    Linux
12 条回复
Tink
8 小时 28 分钟前
Linux From Scratch
了解一下
Rorysky
8 小时 24 分钟前
可以看看 opensuse 这是你没提到但是很开放过程的项目
https://build.opensuse.org/
Rorysky
8 小时 16 分钟前
其实 Linux 版本发布中最重要分量的工作是没提到的 测试
cmdOptionKana
8 小时 13 分钟前
安装一次 Gentoo
安装一次 Slackware
安装一次 Linux From Scratch
然后再倒过来安装一次 Slackware ,一次 Gentoo

第一次是为了降低难度,先通过安装 gentoo 学一点编译步骤,第二次是因为已经理解了细节,要倒回去看怎样从简陋发行版一步步变为相对比较成熟的发行版。
null2error
8 小时 2 分钟前
虽然可能更小众一点的,但是可以看看 Yocto~
z4zr
7 小时 50 分钟前
搞嵌入式 linux 结果被 Yocto 搞得外焦里嫩🤣
NessajCN
7 小时 48 分钟前
编译内核是大家都一样的,
发行版之间的区别是包管理和预装软件
所以你如果要自己发行一个发行版,那你有两个选择:
用别人现成的包管理(如 debian 的 apt, arch 的 pacman )
或者自己整一个包管理(那你得手动实现软件仓库、打包你想放进仓库的第三方软件,然后管理软件源)

包管理搞定后需要把预装软件用选好的包管理塞进安装镜像,并且做好安装脚本和引导
当然也可以学 gentoo 或 arch 不提供脚本只提供编译/安装工具让用户自己装

后续的发补丁都是通过包管理。各个包管理的打包、分发方式都不一样
譬如 arch 的 pacman
https://pacman.archlinux.page/
基本就是通过手写 PKGBUILD 文件来实现一整个编译、打包、分发工作
right0
4 小时 27 分钟前
内核编译 包编译 通过包管理从头开始装包最后装成一个能用的发行版....
https://github.com/RightFS/oemaker 这玩意是我之前做 OpenEuler 项目时改的一个 ISO 打包工具, 看起来 conda 提供了界面, 然后不停调用包管理器把镜像里的所有包给装上就完事了, 每个包都有自己的依赖验证 /preinstall /postinstall.

我觉得构建发行版这玩意技术难度应该是没多少, 但是过程很繁琐.

毕竟 openEuler 好多包里面都是批量替换人家包里的字符串.我调试的时候看到好几个没替换完整的了,前面说联系 openeuler 后面给的网址是人家的.
UIXX
3 小时 57 分钟前
Linux 发行版是怎么构建的?
大部分的系统镜像是经由系统 SDK 构建而成,这个 SDK 就是一系列流程化脚本集合,开源的比如 https://github.com/armbian/build ,它可用于构建 Debian 、Ubuntu 镜像。
最快的学习方式是先用一用(这种 SDK 会有 GUI ),然后对于不懂的部分再针对性地看代码。

另一种极端的学习方式是从主板硬件开始,了解架构及目标处理器的特性、入口与引导流程,再进入应用软件的范围。

大的流程不难理解,魔鬼在于细节,尤其需要对特定主板编写构建程序。
tap91624
1 小时 53 分钟前
open build system 找一下
qianxunlan
1 小时 40 分钟前
我会比较建议玩一玩嵌入式,因为嵌入式开发板用不了官方镜像,得自己打包。
举个例子,荔枝派 4A 的社区镜像,我朋友做的,你看它 github action 跟构建脚本,大概就能明白是怎么回事了

https://github.com/chainsx/fedora-riscv-builder
qianxunlan
1 小时 34 分钟前
或者这个更或许简单可行些,买个二三十块钱的 milk-v duo 小板子,玩一玩它官方的这个 buildroot-sdk 订制系统:

https://github.com/milkv-duo/duo-buildroot-sdk

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1076796

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX