A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://gist.github.com/xen0n/76adb69c006cd5a54ade2e3e808ea45b below:

20240317-towards-modern-distro.md · GitHub

这是个比较随意的分享,希望能够起到拓宽同学们视野的作用就 OK 了!

为何 Linux 发行版数量如此众多,差异化的点在哪里? Gentoo is all about choice!

Every user has work they need to do. The goal of Gentoo is to design tools and systems that allow a user to do that work as pleasantly and efficiently as possible, as they see fit. Our tools should be a joy to use, and should help the user to appreciate the richness of the Linux and free software community, and the flexibility of free software. This is only possible when the tool is designed to reflect and transmit the will of the user, and leave the possibilities open as to the final form of the raw materials (the source code.) If the tool forces the user to do things a particular way, then the tool is working against, rather than for, the user. We have all experienced situations where tools seem to be imposing their respective wills on us. This is backwards, and contrary to the Gentoo philosophy.

Put another way, the Gentoo philosophy is to create better tools. When a tool is doing its job perfectly, you might not even be very aware of its presence, because it does not interfere and make its presence known, nor does it force you to interact with it when you don’t want it to. The tool serves the user rather than the user serving the tool.

The goal of Gentoo is to strive to create near-ideal tools. Tools that can accommodate the needs of many different users all with divergent goals. Don’t you love it when you find a tool that does exactly what you want to do? Doesn’t it feel great? Our mission is to give that sensation to as many people as possible.

-- Gentoo philosophy

基于此,Gentoo 对以上关键问题的回答是:

Gentoo ebuild 模板 skel.ebuild 是 Gentoo 打包哲学的一面镜子。

槽与子槽(slots and sub-slots)

举例说明:

# dev-lang/rust 架空的、简化的 LLVM 依赖

# 支持 llvm:17 & llvm:18,本身支持的每个 target 都要在 llvm 有对应支持
LLVM_DEPEND="
   || (
      (
         llvm_targets_aarch64? ( sys-devel/llvm:17[llvm_targets_aarch64(-)] )
         llvm_targets_loongarch? ( sys-devel/llvm:17[llvm_targets_loongarch(-)] )
         llvm_targets_riscv? ( sys-devel/llvm:17[llvm_targets_riscv(-)] )
         llvm_targets_x86? ( sys-devel/llvm:17[llvm_targets_x86(-)] )
         ...
         wasm? ( sys-devel/lld:17 )
      )
      (
         llvm_targets_aarch64? ( sys-devel/llvm:18[llvm_targets_aarch64(-)] )
         llvm_targets_loongarch? ( sys-devel/llvm:18[llvm_targets_loongarch(-)] )
         llvm_targets_riscv? ( sys-devel/llvm:18[llvm_targets_riscv(-)] )
         llvm_targets_x86? ( sys-devel/llvm:18[llvm_targets_x86(-)] )
         ...
         wasm? ( sys-devel/lld:18 )
      )
   )
   <sys-devel/llvm-19:=
"
# net-im/telegram-desktop

# 不约束 slot,需要跟踪 subslot,需要它以 USE=opus & USE=vpx 构建
DEPEND="
   media-video/ffmpeg:=[opus,vpx]
"

预置的各种配置:USE、masks(哪些配置、版本是已知存在问题的)、license 选取(例如 linux-firmware),等等。

Overlay 结构与主库(::gentoo)相同,方便各种需求:


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4