在我的四年的本科生活以及迄今为止若干个月的研究生生活中,我(反反复复)尝试过很是不少的一些 Linux 发行版,包括但不限于 Ubuntu,Fedora,Linux Mint,Debian,openSUSE Tumbleweed/Leap,Arch 等等(以上发行版大致按接触时间排序)。这篇文章是对我不断折腾 Linux 发行版,桌面环境,窗口管理器等等历程的一个回顾和记录,并且希望以后不要再花这么多时间再这种没啥大用处的事情上了(雾)。
第一次接触:Ubuntu 20.04
2020年是我本科的第一年,也是在这一年,我第一次给我的电脑装上了 Ubuntu 系统(和 win10 双系统,以下如无特殊指明,一般都安装的是和 Windows 共存的双系统)。我跟着 CSDN 上的教程,小心翼翼几乎可以说是胆战心惊地安装好了系统(由于当时对电脑系统的知识约等于0,所以非常害怕把 Windows 系统搞崩)。在过程中,进入 BIOS 这一步就卡了很久,因为我当时的小米电脑进入 BIOS 的方法和大多数电脑都不一样,甚至和其他的小米电脑也不一样,所以找了很久的资料才成功。在安装系统的过程中自然没有什么个性化的设置,安装好系统之后也没有什么配置和美化的操作。但是这次的安装让我真实知道了一个 Linux 发行版是什么样的(虽然当时我还没有发行版这个概念),让我知道了 Linux 系统也是有桌面环境的(虽然当时我也没有桌面环境这个概念),最重要的是让我接触到了 Linux 的命令行,并且在一开始就对它很感兴趣,甚至专门买了本书学习了一些基本的 Linux 命令。
不过,当时的我作为一个完全的萌新,对 Linux 毫无熟悉可言,在没有需求的情况下渐渐就只启动 Windows 而不启动 Linux 了。在一段时间没有启动 Linux 之后,我由于 Windows 空间不够的原因把 Ubuntu 给删掉了(一开始分配空间的时候分配了过大的空间)。
微软的口碑之作:VSCode 和 WSL
在后面的大一大二两年里,我主要使用的编程语言是 Java,idea 加上 JDK 就可以完成所有工作,也没有其他的计算机课程(我本科神奇的新工科学院到大三才选方向分流),于是对于 Linux 没有进一步的使用和了解。而到了大三,终于开始有计算机专业课程了,我也终于又开始进行自己的学习(折腾)。差不多就在这段时间,我发现了 WSL 和 VSCode 这两个微软的良心作品,VSCode 虽然在 Windows 环境也能用,但是各种配置总是会让人头疼,但加上 WSL 以及 VSCode 配套的连接 WSL 的功能,方便易用的程度大幅上升。在整个大三期间,我的所有计算机课程的作业都是用 VSCode 和 WSL 完成的。
当然,此时我对不同的 Linux 发行版仍然没有什么认识,WSL 选择的也依旧是 Ubuntu。但是,我对于 Linux 系统更加熟悉了,对于包管理器也有了一定的了解,对于 git 这样的基本工具以及一些命令行的基本操作也有了更多的了解。Linux 的编程环境的配置的丝滑也让我再也不想在 Windows 环境下开发了,可以说,在这段时间以后,我就基本上离不开 Linux (Unix-like) 系统了。
在考研的初试结束之后,我在继续学习(乱七八糟的)知识的同时,也发现了一些好用的工具。首先是 Zsh
,在装上插件之后拥有极其丰富的功能。我一开始使用的是 oh-my-zsh
框架对插件和配置进行管理,但是后来换了更轻量,速度更快的 zinit
。其次,是我为了在写代码的时候尽可能少的去摸鼠标,重新学了很多 vim 的操作,这很快成了我又一个离不开的东西,到现在为止,我所有的 编辑器,IDE 都开启了 vim 插件。普通的 vim 自然无法满足日常的开发需求,于是我又开始寻找相关的 vim 插件,于是又发现了一个 vim 的 fork —— Neovim。它提供了一些更现代化的功能,并且插件管理也更好。我发现了一个 Neovim 的配置集合 LazyVim,在它的基础上形成了自己的配置。在 Java 以外的所有开发,我几乎都使用 Neovim。
但是,随着我对 WSL 尤其是命令行界面的使用越来越多,我发现在 WSL 刚刚启动时总会很卡,日常使用过程中终端的输入也有时会出现卡顿。多次被这种问题烦到之后,我决定还是在电脑上安装一个原生的 Linux 系统。
Fedora:一个惊喜
在此之前,我只有安装和使用 Ubuntu 的经验,但是对于 Ubuntu,我从各方面来说并不十分满意。再加上我的 Neovim 配置需要 Neovim 版本大于0.9.0,而 Ubuntu 的版本并不能满足要求,之前在 WSL 上我还是手动从源码编译了一份最新的 Neovim。所以综合来看,我想要换一个软件更新的发行版。是的,我现在对于发行版已经有一些概念了。综合我的需求,我选择了 Fedora。
下载安装 Fedora 的过程顺利的让人甚至有些难以置信,由于我之前一直听闻Ubuntu是最易用,安装最简单的发行版,所以在安装 Fedora 的时候我是做好了遇到困难的准备的,但是事实上 Fedora 的安装从下载开始到安装完成进入系统每一步都比 Ubuntu 简单太多了,甚至连把镜像写入 USB 都提供了专门的工具 Fedora media writer
。
在安装好系统后,由于此时的我对于系统的了解与第一次装 Ubuntu 时已经不可同日而语,所以很快熟悉了最新的 gnome 桌面环境,这种比起 Windows 更像 macOS 的操作逻辑让我感觉很新鲜,唯一的问题是 gnome 不支持分数缩放,不管是一倍还是两倍缩放对于我的 2k 屏的笔记本来说都不合适。不过我最终通过安装 gnome tweak
修改字体大小略有勉强地解决了这个问题。和 Ubuntu 比起来,我感觉 Fedora 简直是全方位的超越。原装的 gnome 桌面和 Ubuntu 的魔改版桌面比起来让我感觉更清爽,观感更好(我本来就不是特别喜欢 Ubuntu 的风格),并且版本更新的 gnome 也提供了更多的特性。在使用一段时间之后,我发现 Fedora 甚至会在更新内核之后保留几个旧内核,并且可以在 grub 界面选择以旧内核启动。最重要的是,Fedora 的软件源非常新,这让喜欢追新的我非常满意,可以第一时间用上新功能新特性,不需要从源码编译安装才能用上新的版本,dnf 的输出格式我也觉得比 apt 更清晰和直观。并且此次我还发现通过 Flatpak 的 flathub 仓库可以直接安装 QQ,微信,QQ音乐和腾讯会议,并且使用起来还不错,再加上 WPS 的 Linux 版本,这让我可以几乎完全不需要 Windows了。(除了游戏……)
总的来说,Fedora 给我的整体感觉是一种“现代感”,相比之下,Ubuntu 总觉得有些笨重和落后。(纯主观看法)我在接下来的一段较长的时间里都一直使用的是 Fedora,它也几乎一直不让我失望,除了我的拯救者 Y9000X 2022 的扬声器在 Linux 系统下一直没有声音(这是内核不支持导致的,在后来内核更新到6.10的某个小版本后就不存在这个问题了,不过那时我已经不再使用 Fedora 系统了)以外,我几乎觉得它是完美的系统。事实上,虽然我现在的系统不是 Fedora,但不可否认,Fedora 就是最好的 Linux 发行版之一。
openSUSE:很稳定的滚动发行版
虽然使用 Fedora 的体验一直很好,但是在一些细节上还是又不尽如人意的地方的。我在用了一段时间之后渐渐有了想要体验另一个桌面环境的想法,毕竟 Linux 的两大桌面环境 gnome 和 KDE Plasma 总得都用一用感受一下不是(xfce 相对还是有些简陋了,只是占用资源少)。虽然 Fedora 也有 KDE 版本,但毕竟不是主要版本,对 KDE 的适配总觉得会稍逊一筹(可能确实有,但从我后来的使用经历来说,几乎没有感觉到)。这是,公认对 KDE 支持和适配最好的发行版之一 openSUSE 进入了我的视野,并且它有滚动发行版本 Tumbleweed,理论上比 Fedora 更新。
于是,我麻利的下载了 openSUSE TW 的镜像开始安装。在安装载入的时候的界面就直接惊艳到我了,openSUSE 的这个配色和风格简直就是长在我的审美上。安装过程和 Fedora 相比同样方便,但是安装器的功能更丰富和强大。进入系统,此时 Plasma 刚更新到 6 没多久,果然从功能,美观,可定制化等各个角度都比 gnome 要更胜一筹。用了一段时间之后,我越发觉得 Plasma 很好用,迄今为止我的系统的桌面环境都是主要使用 Plasma。
openSUSE TW 背靠 openSUSE Leap 和 SUSE enterprise,和 Fedora 相比是一个配置的更完善的系统。SUSE 系特有的 Linux 系统配置工具 YAST 可以在图形界面中完成绝大多数 Linux 系统配置。虽然我并不排斥通过命令行来配置,但多个方法总是更加方便的。openSUSE TW 还有配置好的快照功能,如果使用的是 Btrfs 文件系统,会自动在第一次成功进入系统和执行 zypper 命令的前后创建快照(使用 snapper 工具),这样,万一滚挂了就可以直接回退(虽然我从来没有滚挂过)。至于 zypper
包管理器,其实这些包管理器的主要功能都大同小异,有区别的首先是输出的格式什么的,然后是一些具体实现的方案。一开始我对 zypper 还有一些不太习惯,不过用了一段时间之后我就已经觉得它是我用起来最顺手的包管理器了。并且,openSUSE 的软件源中的软件比 Fedora 更加丰富。
openSUSE 还有一个特殊的地方在于它使用了 MirrorBrain 技术统一镜像入口,通过在下载时自动分配镜像站点,从而给用户提供更好的安全性,理论上不再需要修改软件源为镜像源了。实际使用中可能会在获取元数据时有点慢,因为要从德国的主服务器上获取数据。
总的来说,openSUSE Tumbleweed 是我最喜欢的发行版,是我使用时间最长的发行版,也是我现在所主要使用的发行版。
Arch 与 Debian sid 与 其他:一些尝试
虽然我对于 openSUSE Tumbleweed 非常满意,但是我总是时不时会有一些尝试其他发行版的想法。我陆陆续续尝试和体验了很多其他的发行版,包括 Linux Mint,Zorin OS,Elemetry OS等等,但大多数光是软件源不够新这一方面就无法满足我的要求,更别提其他方面了。
终于,在我开始了研究生生涯之后,某个周末,我打算尝试以下以前一直没有尝试过的 Arch Linux。虽然 Arch 的安装难度名声在外,但是对于已经比较熟悉 Linux 的用户来说安装难度并不算太高,基本上跟着 wiki 一步步走就行,在过程中还能学到一些有关分区和系统初始设置的知识。Arch 的特点在于高度的可定制性,从内核到桌面环境,所有的组件都可以随心按需安装,可以拥有一个完全自己定制的系统。并且,Arch 的软件源非常丰富,还有专门有中国用户打包的,包含一些中国用户所需的软件的软件源 archlinuxcn,以及几乎能找到任何软件的 aur 仓库。在这方面,Arch 的确是有着不可比拟的优势。
我第一次安装 Arch 之后安装了 KDE Plasma 桌面环境 和 Hyprland 窗口混成器,以及一些环境的配置,ArchlinuxCn源,yay 等等。后面在试图启用快照功能时发现需要在安装时建立一些合理的 Btrfs 字卷,于是我又重新安装了一次,在安装时建立了 Btrfs 字卷,以在安装完成后启用快照功能。但是 Nvidia 显卡驱动遇到了一些问题,导致多显示器的显示一直有问题,安装闭源驱动后问题反而更大了,在此时想要通过配置的快照功能回滚,发现始终不能很好地通过命令回滚,似乎需要插上恢复 USB,通过手动挂载进行回滚。于是遂打算直接再重装一次算了。(正是有了安装 Arch 的经历,才让我略微理解了 openSUSE 这样的完善且功能强大的发行版究竟配置了多少东西)
但是此时已经连续经历了三次 Arch 系统的安装了,虽然越来越熟练,但是实在有点心累。Arch 固然可以完全按照自己的心意定制系统,但有时其实没有这个必要,配置好的系统也能够很好(更好)地满足我的需要,所以打算换一个发行版。由于在之前发现 aur 上有打包好的 easyconnect,而且运行良好,终于可以直接在 Linux 上使用 VPN 而不用切换成 Windows,同因为我一直错误认为 easyconnect 只提供 deb 包(其实有 rpm 包的,只是 stuvpn.fudan.edu.cn 上的 rpm 包后缀是 rmp,不知道为啥,改成 rpm 后是可以在 openSUSE Tumbleweed 上安装的,这是后话了)。所以,这次我打算装个 debian 系的发行版,以能够使用 easyconnect。
但是我只考虑系统和软件包都很新的发行版(neovim 的配置集合需要比较新的版本,内核也需要 6.10 的某个版本才能让我的拯救者 Y9000X 2022 的扬声器有声音),于是只剩下 Debian testing 和 sid,似乎现在 sid 也几乎不会滚挂了,于是打算直接装 sid。
不得不说,虽然现在 Debian 终于有了图形化安装,但是这个安装的易用和方便程度上和 Ubuntu 都没的比,更别说 Fedora 和 openSUSE 了。并且我一开始试图安装 Debian testing 的每周构建版本,再升级到 sid, 结果 testing 版本的安装图形界面根本进不去。最终只能先安装 bookworm,然后升级成 testing,再升级成 sid。
终于安装完成了,结果发现 sid 的 Plasma 居然还是 5.27 版本,Plasma 6 都发布半年了还没有更新,上论坛看看发现据说是 Debian 的 Plasma 维护者离开了 Debian 团队导致的,这让我(第n次)体会到社区驱动的不确定性和不稳定性。再加上我虽然挺喜欢开源,但是并没有 Debian 这样对开源比较极致的要求,对于商业公司驱动的发行版也没有什么反感。与此同时,我发现 easyconnect 并非只提供 deb 包而不提供 rpm 包,于是还是打算回到我使用最多的 Fedora 和 openSUSE Tumbleweed 两个系统。
这两个系统其实就日常使用来讲没有特别大的差异,虽说一个是滚动发行版一个是有标准版本的更新模式,但事实上,Fedora 的一个版本并不会锁定软件包括内核的版本,用户还是会收到很贴近上游的更新。但是,从很多角度来说,openSUSE Tumbleweed 都是功能更强大,细节方面更完善的发行版,也是我主观上更喜欢的发行版。于是我又双叒叕选择了 openSUSE。
我的选择:openSUSE Tumbleweed
经过了这么一大圈的折腾,最终我还是选择了 openSUSE Tumbleweed。但其实不同的发行版在使用体验上可能或多或少有一些差异,但真正工作起来其实本质上都差不多。从这个角度说,我花在反复安装不同发行版上的时间其实就是浪费,我在这些事情上花费的时间还是太多了。现在我在自己的电脑(双系统)和实验室的小主机上都装着 openSUSE Tumbleweed,希望以后非必要不要就再换了,毕竟 openSUSE Tumbleweed 已经让我非常满意了。当然其实现在的主流发行版我也都体验的差不多了,基本上只有 Gentoo 和 NixOS没有体验过,在短时间内我都应该不会在把时间花在这上面了,现在的任务是在 openSUSE Tumbleweed 系统上好好工作(科研)~
p.s. 后来发现在 openSUSE Tumbleweed 上安装的 easyconnect 的 rpm 包不能正常工作,所以在自己的电脑上的系统又换成了 Arch ~