现代的 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 ,至少就不是开箱即用而是完全定制。
https://tonylee.name/Alpine-Linux-4f1cbdb482754c65a61e7f08e9691234
1
duke807 2023-06-18 12:03:18 +08:00 via Android 3
gentoo 不香吗?
|
3
0o0O0o0O0o 2023-06-18 12:26:40 +08:00 via iPhone
文内代码块左上角的语言都显示为 Javascript
|
4
tyzandhr 2023-06-18 12:30:25 +08:00 via Android 4
你是否想搜:lfs
|
5
ck65 2023-06-18 12:34:28 +08:00 4
TL;DR 「安装完所有组件,发现其实大小也要到 1.5G 了。」
|
6
baobao1270 2023-06-18 12:39:31 +08:00
我以为是「基于 Alpine 做自己的发行版」,实际上原来做的是「安装一个可以正常使用的桌面 Alpine 」……
但是也不容易啊。其实说真的这些步骤和 Arch 差不多,只是坑比 Arch 多了点。 |
7
yinmin 2023-06-18 13:50:27 +08:00 via iPhone
貌似 alpine 主要用途是做 docker 基础镜像的
|
9
hronro 2023-06-18 14:11:59 +08:00
Alpine 官方已经把 sudo 包移出了 core 了, 推荐用 doas 作为代替
|
10
wenerme 2023-06-18 15:06:01 +08:00
非常推崇 Alpine ,我也搭搭建过,可以参考 https://wener.me/story/alpinelinux-setup-xfce
|
11
Jirajine 2023-06-18 15:20:07 +08:00
alpine 还真不适合搞桌面,同样 kiss 的发行版,真正实用的还得是 Arch ,非要 musl 的话 void 好像桌面支持更好一点。
systemd 和 glibc 在桌面上基本逃不掉的,server 还有的选,桌面端其他的完成度都太低了。 至于 gentoo 我感觉没必要,平白折腾也没啥明显收益。 |
13
lhbc 2023-06-18 15:40:25 +08:00 via Android
整了一圈,最后发现要装的东西一样没落下
从实用性角度来看,不知道有什么意义 |
16
Tink 2023-06-18 16:17:56 +08:00
有这个功夫不如直接 lfs 吧
|
17
LindsayZhou 2023-06-18 16:26:35 +08:00
好诶,很少看到国内有用 alpine 的(非容器)。
我上个月也试了一下。 因为有 arch 的经验,要装什么东西都还算清楚。 就是 alpine 的打包细碎太多,很多东西也不是装起来就能用。 不过可惜我 type-c 扩展坞的驱动有点问题,加上公司那边也用的 arch ,维护两份 dotfiles 不太方便。 我 VPS 那边也挺喜欢用 alpine ,现在手上大概有三四台的样子。 |
18
mrzx 2023-06-18 16:34:40 +08:00 2
十几年前就用 lfs 制作出属于一份世界上独有的 linux/gnu 发行版本。
这玩意最大的意义是让你了解整个 linux 操作系统的构成。 |
19
Jirajine 2023-06-18 17:40:32 +08:00
@tony1016 很多包 flatpak 很难替代,举个例子 flatpack 装的 IDE 里面的终端只能用容器里的 shell ,它只适合装一下隔离环境下运行的应用。
Linux 桌面很多特性都是 RedHat/Fedora 一系开发的,没 systemd 基本用不了。没 glibc 更麻烦,像 homwbrew/nix 可能都不能装。 |
20
kingfalse 2023-06-18 17:46:13 +08:00 via Android
为了 Alpine 而 Alpine ?如果追求好的桌面体验,opensuse ,Ubuntu 这些不是更好更成熟?
|
24
panda1001 2023-06-18 18:59:20 +08:00
我是选择用 alpine 做宿主机专门来跑 docker
|
25
tulongtou 2023-06-18 19:16:27 +08:00
我的 vps 能安装 alpine 的也都用 alpine 了,单纯图它简单轻量,apk 包都很新,rc-service 比 systemd 轻量
|
27
james122333 2023-06-18 21:15:17 +08:00 via Android
我前几日刚帮家人装好 也注意到没输入法 不过刚好家人只需要手写输入法 启动很快 在 u 盘都可用 但比较意外居然没 shutdown 指令 以前用 openrc 还是有 apkbuild 与 pkgbuild 其实差不多 steam 要用 flatpak 装 打过 Dota2 还可以 但 flatpak 不太喜欢 之后再研究下 glibc 问题
|
28
flyqie 2023-06-19 00:53:02 +08:00 via Android
alpine 用来搞桌面环境。。
适合折腾但不适合养老。 养老还是 ubuntu 吧。。 |
29
lijiangang886 2023-06-19 03:42:32 +08:00
Linux is free if and only if your time is free.
折腾 linux 发行版没有意义,折腾 linux 桌面环境更没有,有这个精力不如去研究 linux 系统更底层的东西 |
30
lijiangang886 2023-06-19 03:43:51 +08:00
当然还是感谢楼主浪费自己时间照亮别人的行为,让我看看你的文章有没有什么我可以抄来用的东西
|
31
jinliming2 2023-06-19 04:19:39 +08:00 via iPhone 1
从零开始搭建,想了解 Linux 的构成的话,还是建议用 LFS ,一切的开始。
楼上说的 Gentoo 是我日常用的,基本上过程也是从零开始,只不过是从一个已有的文件系统开始,然后自己挑选想用的软件,所有软件都是编译安装(包管理器负责下载编译脚本,下载源码进行编译安装),少数比较大型的软件或者非开源软件,可以选择安装已编译好的 bin 包。系统安装基本就是从官网下载一个文件系统的压缩包,解压到空硬盘分区,然后 chroot 到这个硬盘分区上进行系统软件的安装,比如 shell 、文本编辑器之类的。 |
32
ww2000e 2023-06-19 08:05:59 +08:00
我才编了个 blfs 用。。
|
33
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 ,不然修都没法修。 |
34
LindsayZhou 2023-06-19 09:00:43 +08:00
|
36
GeorgeWai 2023-06-19 09:02:30 +08:00
Alpine ,容器内专用系统,基于基础镜像去定制需要的软件,主打轻,桌面就算了吧,桌面需要的是生产力。踏实 macos ,windows11 。
|
38
LindsayZhou 2023-06-19 09:10:41 +08:00
我是从 drew 的一篇文章入坑的: https://drewdevault.com/2021/05/06/Praise-for-Alpine-Linux.html
至少在写这篇文章的时候 (2021.3) ,他就已经在他的工作站,笔记本上用 alpine 的桌面环境了。 |
39
Masoud2023 2023-06-19 09:47:39 +08:00
1.5g 你如果能保证全部都工作正常的话,也是蛮小的一个体积了
|
41
dog82 2023-06-19 10:14:37 +08:00
alpine 就是个狗窝,你想在狗窝上搭盖?
|
42
crackself 2023-06-19 10:30:00 +08:00 via iPhone
很享一步步搭建系统的话,推荐 archlinux 、gentoo 、Linux from scratch 三步走,到 LFS 后就回不去了。如果对 Linux 系统结构比较熟悉的话直接 LFS/BLFS 开干吧
|
43
CodeCodeStudy 2023-06-19 10:31:10 +08:00
docker 里的 alpine 也可以这么搞吗
|
44
tony1016 OP @CodeCodeStudy 用 vnc 访问应该是可以
|
45
yzbythesea 2023-06-19 13:19:15 +08:00
感觉用 alpine 比什么 gentoo ,arch 酷,arch 都烂大街了。
|
46
james122333 2023-06-19 15:39:17 +08:00
楼上的言重了 其实还不错用
只是要有一些 linux 的使用经验 和 nvidia 显卡只能用开源驱动 用 amd 和 intel 内显的会比较好 |
47
james122333 2023-06-19 15:39:45 +08:00
是指樓上一些人
|
48
ajaxpost 2023-06-19 16:32:47 +08:00
Linux Mint 挺好
|
49
zljklang 2023-06-19 16:44:13 +08:00
水贴
|
50
findex 2023-06-19 22:14:56 +08:00 via iPhone
@mrzx 我不但做了一个自己的 LFS linux/GNU 发行版系统,而且还做了一个专门用来做 linux 系统的虚拟机,大家可以在 virtualbox 或者 vmware 虚拟机里装我的宿主机环境,继续开发我的系统。
现在一说起 linux/gnu 系统,其所有骨架都在脑中显现。archlinux 、gentoo 都是浮云,我不觉得有什么优势。FreeBSD 还是挺好玩的。我现在很喜欢 debian 的哲学。 |
52
james122333 2023-06-20 03:10:39 +08:00 via Android
@findex
因为现今大多 linux 的组件都差不多你会觉得没意义 但如果你想使用规格外又很不错的东西 那些发行版就有优势 因为好改包 好建立新的包 不用没提供就没有 然后自己胡乱 configure make 又没指定 prefix 的 可以很容易自定义符合系统管理的包是种好处 流行的发行版特地把包建置搞的不亲民很多都是商业考量 但其实本质上是一样的 arch 类的本身就是对标 bsd 的打包建置 alpine 也同理 因为它真的还挺像 arch 只是组件不同 |