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

2023-06-18 11:59:55 +08:00
 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

6763 次点击
所在节点    Linux
52 条回复
0superx0
2023-06-18 18:06:59 +08:00
@kingfalse 其实就折腾,等老了,就玩现成的桌面发行版了.
tony1016
2023-06-18 18:37:14 +08:00
@kingfalse 并不是为了追求更好的体验,而是为了知道它是什么构成的
tony1016
2023-06-18 18:37:28 +08:00
@mrzx
panda1001
2023-06-18 18:59:20 +08:00
我是选择用 alpine 做宿主机专门来跑 docker
tulongtou
2023-06-18 19:16:27 +08:00
我的 vps 能安装 alpine 的也都用 alpine 了,单纯图它简单轻量,apk 包都很新,rc-service 比 systemd 轻量
tony1016
2023-06-18 19:29:35 +08:00
@tulongtou 对,就是让人很有好感的系统
james122333
2023-06-18 21:15:17 +08:00
我前几日刚帮家人装好 也注意到没输入法 不过刚好家人只需要手写输入法 启动很快 在 u 盘都可用 但比较意外居然没 shutdown 指令 以前用 openrc 还是有 apkbuild 与 pkgbuild 其实差不多 steam 要用 flatpak 装 打过 Dota2 还可以 但 flatpak 不太喜欢 之后再研究下 glibc 问题
flyqie
2023-06-19 00:53:02 +08:00
alpine 用来搞桌面环境。。

适合折腾但不适合养老。

养老还是 ubuntu 吧。。
lijiangang886
2023-06-19 03:42:32 +08:00
Linux is free if and only if your time is free.
折腾 linux 发行版没有意义,折腾 linux 桌面环境更没有,有这个精力不如去研究 linux 系统更底层的东西
lijiangang886
2023-06-19 03:43:51 +08:00
当然还是感谢楼主浪费自己时间照亮别人的行为,让我看看你的文章有没有什么我可以抄来用的东西
jinliming2
2023-06-19 04:19:39 +08:00
从零开始搭建,想了解 Linux 的构成的话,还是建议用 LFS ,一切的开始。
楼上说的 Gentoo 是我日常用的,基本上过程也是从零开始,只不过是从一个已有的文件系统开始,然后自己挑选想用的软件,所有软件都是编译安装(包管理器负责下载编译脚本,下载源码进行编译安装),少数比较大型的软件或者非开源软件,可以选择安装已编译好的 bin 包。系统安装基本就是从官网下载一个文件系统的压缩包,解压到空硬盘分区,然后 chroot 到这个硬盘分区上进行系统软件的安装,比如 shell 、文本编辑器之类的。
ww2000e
2023-06-19 08:05:59 +08:00
我才编了个 blfs 用。。
LindsayZhou
2023-06-19 08:58:37 +08:00
em... 早上刚修了个问题。

三月份用 env ROOFS=btrfs setup-alpine 在 VPS 上装的系统。
不知道为什么 /etc/mkinitfs/mkinitfs.conf 和 /etc/update-extlinux.conf 里的 btrfs module 没了。

还好 VPS 提供商给了 rescue os ,不然修都没法修。
LindsayZhou
2023-06-19 09:00:43 +08:00
@LindsayZhou #33
typo
env ROOTFS=btrfs setup-alpine
ChenSino
2023-06-19 09:00:46 +08:00
@enihcam 难得见到我 arch 教徒
GeorgeWai
2023-06-19 09:02:30 +08:00
Alpine ,容器内专用系统,基于基础镜像去定制需要的软件,主打轻,桌面就算了吧,桌面需要的是生产力。踏实 macos ,windows11 。
tony1016
2023-06-19 09:06:47 +08:00
@GeorgeWai 所以你觉得不够生产力,怎么却推荐了两个非 Linux?
LindsayZhou
2023-06-19 09:10:41 +08:00
我是从 drew 的一篇文章入坑的: https://drewdevault.com/2021/05/06/Praise-for-Alpine-Linux.html

至少在写这篇文章的时候 (2021.3) ,他就已经在他的工作站,笔记本上用 alpine 的桌面环境了。
Masoud2023
2023-06-19 09:47:39 +08:00
1.5g 你如果能保证全部都工作正常的话,也是蛮小的一个体积了
liuxu
2023-06-19 10:09:44 +08:00
@enihcam 可笑,Arch is not the best, gentoo is, always.

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

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

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

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

© 2021 V2EX