V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
LokiSharp
V2EX  ›  Linux

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

  •  1
     
  •   LokiSharp ·
    LokiSharp · 6 小时 36 分钟前 · 788 次点击
    9 条回复    2024-09-29 18:21:23 +08:00
    Tink
        1
    Tink  
       6 小时 32 分钟前   ❤️ 1
    Linux From Scratch
    了解一下
    Rorysky
        2
    Rorysky  
       6 小时 28 分钟前   ❤️ 1
    可以看看 opensuse 这是你没提到但是很开放过程的项目
    https://build.opensuse.org/
    Rorysky
        3
    Rorysky  
       6 小时 20 分钟前   ❤️ 1
    其实 Linux 版本发布中最重要分量的工作是没提到的 测试
    cmdOptionKana
        4
    cmdOptionKana  
       6 小时 18 分钟前   ❤️ 1
    安装一次 Gentoo
    安装一次 Slackware
    安装一次 Linux From Scratch
    然后再倒过来安装一次 Slackware ,一次 Gentoo

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

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

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

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

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

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

    大的流程不难理解,魔鬼在于细节,尤其需要对特定主板编写构建程序。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.