如何用 Alpine 一步一步搭建一个完整的 Linux 桌面系统

326 天前
 tony1016

0.初衷

    现代的 Linux 桌面系统,其实已经非常复杂了。不光要处理简单的用户应用程序间的协作,更要处理各种用户设备。举个简单的例子,设备的声音输出,就可能有多种途径:通过电脑有线音响输出,或者通过 HDMI 显示器的自带音响输出,还有可能通过连接的蓝牙输出。

    我一直对于 Linux 是如何一步一步发展到如此完善感到好奇,也对诸如 Ubuntu 等操作系统动辄一张 DVD 大小的安装程序感到沮丧。**因为在我的印象中,Linux 不该是 Windows 这样,而是几百兆大小才对**。

    Alpine Linux ,一个最简单的 Linux 系统,安装介质不到 200M ,它是否可以定制成一个完善的桌面系统呢?之前是不行的,它使用的是 musl libc 而不是传统的 glibc ,所以很多程序都没有现成的包而需要自己从源码编译。你可以想象编译一个 WPS 的难度。输入法也是一个问题,在 Alpine 上,始终没有中文输入法。

    但这个情况最近改变了。首先是 Alpine 的 testing 源里有了 fcitx5 和 fcitx5-chinese-addons ,所以中文输入已经不成问题。另外 WPS 的问题,已经可以通过 flatpak 解决了。

    **所以这次尝试用 Alpine Linux 从零开始搭建一个完整的 Linux 桌面系统。**说是从零打造,其实也不完全是,毕竟 Linux 系统像搭积木一般了。但如果使用 Alpine Linux ,至少就不是开箱即用而是完全定制。

1.初始化三步走

https://tonylee.name/Alpine-Linux-4f1cbdb482754c65a61e7f08e9691234

6030 次点击
所在节点    Linux
52 条回复
duke807
326 天前
gentoo 不香吗?
tony1016
326 天前
@duke807 它和其他有什么不同?
0o0O0o0O0o
326 天前
文内代码块左上角的语言都显示为 Javascript
tyzandhr
326 天前
你是否想搜:lfs
ck65
326 天前
TL;DR 「安装完所有组件,发现其实大小也要到 1.5G 了。」
baobao1270
326 天前
我以为是「基于 Alpine 做自己的发行版」,实际上原来做的是「安装一个可以正常使用的桌面 Alpine 」……
但是也不容易啊。其实说真的这些步骤和 Arch 差不多,只是坑比 Arch 多了点。
yinmin
326 天前
貌似 alpine 主要用途是做 docker 基础镜像的
enihcam
326 天前
@duke807 gentoo 香个屁。arch is the best.
hronro
326 天前
Alpine 官方已经把 sudo 包移出了 core 了, 推荐用 doas 作为代替
wenerme
326 天前
非常推崇 Alpine ,我也搭搭建过,可以参考 https://wener.me/story/alpinelinux-setup-xfce
Jirajine
326 天前
alpine 还真不适合搞桌面,同样 kiss 的发行版,真正实用的还得是 Arch ,非要 musl 的话 void 好像桌面支持更好一点。
systemd 和 glibc 在桌面上基本逃不掉的,server 还有的选,桌面端其他的完成度都太低了。
至于 gentoo 我感觉没必要,平白折腾也没啥明显收益。
duke807
326 天前
@tony1016

linux 发行版的尽头是 gentoo
lhbc
326 天前
整了一圈,最后发现要装的东西一样没落下
从实用性角度来看,不知道有什么意义
tony1016
326 天前
@lhbc 意义就是你知道每一个部分是用那个组件实现的
tony1016
326 天前
@Jirajine 这次装完,真没觉得,至少 flatpak 可以弥补很多不足了
Tink
326 天前
有这个功夫不如直接 lfs 吧
LindsayZhou
326 天前
好诶,很少看到国内有用 alpine 的(非容器)。

我上个月也试了一下。
因为有 arch 的经验,要装什么东西都还算清楚。
就是 alpine 的打包细碎太多,很多东西也不是装起来就能用。

不过可惜我 type-c 扩展坞的驱动有点问题,加上公司那边也用的 arch ,维护两份 dotfiles 不太方便。
我 VPS 那边也挺喜欢用 alpine ,现在手上大概有三四台的样子。
mrzx
325 天前
十几年前就用 lfs 制作出属于一份世界上独有的 linux/gnu 发行版本。

这玩意最大的意义是让你了解整个 linux 操作系统的构成。
Jirajine
325 天前
@tony1016 很多包 flatpak 很难替代,举个例子 flatpack 装的 IDE 里面的终端只能用容器里的 shell ,它只适合装一下隔离环境下运行的应用。
Linux 桌面很多特性都是 RedHat/Fedora 一系开发的,没 systemd 基本用不了。没 glibc 更麻烦,像 homwbrew/nix 可能都不能装。
kingfalse
325 天前
为了 Alpine 而 Alpine ?如果追求好的桌面体验,opensuse ,Ubuntu 这些不是更好更成熟?

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

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

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

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

© 2021 V2EX