自由的 Linux,好用吗?- Windows 换到 Ubuntu 遇到的几个问题和提示

这篇文章依据 Ubuntu 22.04 - 22.10 和默认 GNOME 桌面所写。

安装

要装 Linux 首先肯定是要选个发行版。主要的发行版其实就那么几个,我选的是 Ubuntu。它有庞大的社区,对新手友好,而且默认的 GNOME 桌面也很好看。我之前还有一些 Ubuntu 包管理器 apt 的使用经验。Ubuntu 对我来说是一个必定的选择。

启动进 U 盘,有 LiveUSB 系统,你可以在这时候试用 Ubuntu,一切功能都几乎和你安装后的一样,这时是你检查各种驱动和兼容性的最佳时机,不过要注意 LiveUSB 是不保留你的数据的。相比 Windows,Ubuntu 的安装友好很多,界面风格都是相当统一的,不像 Windows 到现在安装界面还有一堆远古产物。分区相当直观,你可以选择与 Windows 共存,不放心也可以自己分区,LiveUSB 自带简单的分区工具。安装完成重启时甚至会提醒你“移除安装中间件,然后按 ENTER”,可以说是十分贴心。

安装完也没有微软那冗长的 OOBE,只有可以跳过的简单欢迎。安装过程是出乎意料的顺利,完全可以说比 Windows 还简单

大问题

显示器

安装完遇到的第一个问题就是显示器的刷新率。我的显示器宣传是支持 2k165hz 的,但可能是因为线缆或者显卡什么的,Windows 里就只能达到 2k60 或 1080p120,我是用了 Nivdia 显卡驱动里自定义分辨率的功能“超频”到了 2k100 勉强用。但在 Ubuntu 上,无论我用什么工具都无济于事,成天爬网也没啥成果,试了什么 xrandr 都不行。现在只能将就用 60hz

鼠标驱动

我用的是 ROCCAT Kone Pure Owl-Eye 鼠标,有个 ROCCAT Swarm 驱动,可以配置 RGB、各个按键的功能等。但那玩意不支持 Linux,而且就算我用 Wine 运行了,鼠标宏也显然没法用。我试了各种社区的方案,包括 ROCCAT ToolsPiper 都在编译或运行的时候遇到这样那样的问题。现在只能用之前的板载配置。

输入法

Ubuntu 自带的中文输入法是 ibus-libpinyin,虽然确实很好看吧,但因为各种原因真的很难用

兼容性差、加载慢、经常崩溃、没有良好的词典管理、词频不合理、光标乱跳等等等等

一堆问题(那些候选词真的就不是自己想打的,词典再多也没用)。中间也换过 Fcitx4、5,好用是好用了,但也真的丑。想再换回 IBus,又没法用了,不管怎样就是没反应,不出候选词栏。我重装了各种东西都没用,还是只能重装了系统。最后还是为了颜值用回 ibus-libpinyin,就是极度依赖云词典。

小问题

Flatpak 字体

Ubuntu 一个一直为人诟病的问题就是那商业化的 Snaps,我就照着装了 Flatpak。但当我试着装点应用时就发现 Flatpak 的字体是咋回事??

Betterbird 的字体扭曲

看了看这还是个已知问题:[Bug]: Fonts look terrible #4571。这个 21 年的问题 tm 到现在都一点变化没有,换一个灯泡需要多少GNU/Linux用户?

挂起/休眠支持

Ubuntu 中没有 休眠 支持,你只能自己改。但就算它自带的“挂起”也有问题。主板是 ASUS PRIME H310M-K

  • 要么是 挂起 的时候除了屏幕、USB 设备黑,啥都不黑(但电源“哒”一声能听到)
  • 要么是 唤醒 时除了屏幕不亮,啥都亮(大写锁定没反应,切换 tty 没用)

Wayland 支持

Ubtuntu 虽然已经提供了良好的 Wayland 支持,但不知道为啥我用 Wayland 就一堆问题。

  • Firefox 里上下滚动回跳
  • 重设 设置应用(gnome-control-center)大小时黑边框
  • 打字重复键、没法用“夜灯”

等等

这些问题截图录屏都表现不太出来。但这也不是不能用,换到 X11 就行了。

NTFS 支持

虽然 Linux Kernel 早就支持 NTFS 了,但不知道为啥我在用自带 文件应用(nautilus)访问 Windows 磁盘时,提示 wrong fs type, bad option, bad superblock on /dev/sda5, missing codepage or helper program, or other error,但我自己用 mount 挂载时又啥问题没有。我装了 nfts-3g 运行 ntfsfix 之后是好了,但只要我卸载 ntfs-3g 就不行,在我重装系统后它又莫名其妙的好了。

GNOME 其它杂七杂八的问题

Ubuntu 的 GNOME 还有一些其它各种小问题,比如 Dock 在侧边时没法把鼠标碰到底来触发 Dash 应用列表,要往上偏移一点。还有在 Dock 用滚轮切换虚拟桌面时,虚拟桌面指示器没有白亮点。前者在 Ubuntu 22.10 附带的 GNOME 43 已经修了,后者我相信之后也会修复。

Firefox 兼容性、功能性

Linux 桌面系统一般都是搭配 Firefox,但 Firefox 也真的不好用。首先它经常莫名其妙地滚动掉帧,或者菜单打不开。重启之后却又恢复正常。再说功能性,Edge 的垂直标签页真的用了就离不开,而 Firefox 就没有。Firefox 的 DevTools 也不好用

  • 没有 LightHouse,Firefox Profiler 性能工具也不够直观
  • 管理 Service Workers 的相关功能少到捉急
  • 存储空间必须一项一项删不能清空

要是换到 Chromium,那功能更少。换到 Edge,那还是离不开微软的闭源软件。

自动蓝牙连接

Ubuntu 蓝牙驱动是没问题,配对了也能用,但每次开启/登录时它都不会自动连接。我设置了个自己的启动任务可以解决,更新到 Ubuntu 22.10 后,它也自带自动连接了,就是在登录页面里会连接一次,然后登录时断开,登录上再连接,频繁开关比较烦。

优点

界面风格的高度统一

说了这么多 Linux 的问题,Linux 桌面也是有明显的优点的。最明显的优点就是那高度统一的界面风格。无论你是多少年前的远古程序,在 Linux 上的界面也都不会太过时,我相信肯定不止 Ubuntu 用的 GNOME 是这样,什么 KDE、XFCE 等等桌面环境都是。虽然有 GNOME 43、42 之类的差距 ,但整体风格还是统一的,即使是界面不太一样的三方应用感觉也能很好地融入其中。不像 Windows 真的天差地别。

高自定义性

GNOME 自带快捷键管理,能设置自定义快捷键任务,还能像添加浏览器插件一样添加桌面插件。KDE 之类的更不用说了,桌面能变成任何你喜欢的样子。(虽然我还是喜欢 GNOME 默认的)

实用窗口管理

GNOME 自带很多实用的窗口管理功能,可以右键窗口眉毛设置。比如“置顶”就是 Windows 里的 Always on Top。还有“全屏”能让任何应用从系统层面实现无边框全屏。

其它

稳定性

关于稳定性,很多人都说 Linux 是服务器用的系统,怎么怎么稳定啥的。但依我看,Linux 在服务器上可能确实比 Windows 稳定,但至少在桌面环境我完全不这么认为。Ubuntu 三天两头跳出来:
对不起,Ubuntu 22.10 出现了内部错误
虽然大多数时候不都是真的关键问题,但有时也总会有啥啥崩溃闪退,有够烦的。Windows 一直被诟病不稳定,但我用好长时间 Beta Channel 也真的没遇到什么致命问题,更没有蓝屏。Windows 至少不会因为你卸载 Python 就崩溃,甚至即使你删了 System32,也能自动修复。

开发友好性

很多人也说开发者适合用 Linux,但我是真没觉得。首先 JetBrains 系 IDE 的输入法光标定位有问题,这个问题已经有 9 年的历史了,现在的消息是说会在 2023.1 版本里修复。还有一些只能在 Linux 构建的程序可能 Linux 确实有优势,但大多数情况,Linux 能做的 Windows 都能做,而且做得更好。

游戏

游戏可能是对我影响最小的了。除了 Minecraft 我真的不咋玩啥别的游戏,Minecraft 很多 PVP Client 在 Linux 也都能用(除了 Feather),以下是遇到的几个问题

  • Badlion 的无边框全屏在显示器设置缩放了的情况下只有四分之一屏幕。或者屏幕任务栏等不会隐藏(可以用系统设置全屏快捷键,或者不用无边框全屏)
  • HMCL 的缩放没法自定义,而且很小
  • 游戏内没法打中文
  • 没法玩基岩版,社区方案只支持登录 Play 账号

其实就算你哪天朋友要你玩啥游戏也基本不用担心,得益于 V 社的倾情贡献,Linux 的游戏生态已经相当好了。你可以从 ProtonDB 来看各种游戏的支持情况

软件包管理器

很多人说 Linux 的软件包管理器吊打 Windows 什么的,不用从官网下载应用确实方便。但 Ubuntu 自带的存储库很多软件还都很老的版本,我遇到的有上文提到的 ibus-libpinyin、piper,还有 GNOME 的身份验证器等,导致很多时候你其实还得自己构建(然后遇到一大堆依赖问题)。这可能由多种因素造成,不知道其它发行版有没有这问题。

软件生态和驱动

很多人都说 Linux 的软件生态差,但我真没感觉到这点,甚至很多国产软件在 Linux 都更纯净、有更好的表现。驱动也没任何问题。我的蓝牙适配器是很久之前买的,驱动都要找淘宝客服要,远古的不行。结果在 Ubuntu 我啥都没配置就能用。

提示

不要跟着“教程”复制粘贴命令

不要只是跟着搜索引擎中很多“教程”复制粘贴命令,即使是官方教程文档。你最好要知道这些命令的作用,并确保自己能尽量恢复这些命令做的事。搜索引擎中的教程可能是有用的,但也需要你辨析它的可靠性,而不是一味复制粘贴,这是很危险的。就算你真的难以理解其中一些内容,你也要确保它的来源可靠、反映积极、有时效性。例如 AskUbuntu、StackOverflow 等的可靠性就远大于你从未听说过的、没有评论功能、界面远古的网站。

很多官方教程文档提供的内容虽然是可靠的,但如果你它不知道它们干了什么,这也仍然危险

类似的,不要依赖“安装脚本”,它很可能干了很多你不知道的事。如果这个程序如果有官方提供的安装脚本,你也应至少熟悉它的流程并知道如何在卸载它时卸载干净。(尤其是 systemd、.desktop 之类的)

使用值得信任的软件

即使你知道这软件是“开源”的,但这也不意味着它值得信任。符合以下标准的就应该注意一下

  • README 废话连篇的
  • Release 只有一两项且是手工构建的
  • stars 10-20

构建大型程序时用虚拟环境

这非常重要,构建大型程序通常需要很多依赖,安装后可能很难干净地卸载。也很可能在清理依赖时破环了系统组件,有时你很难分辨出哪些是系统自带或被其它程序依赖的,哪些是只有这个程序需要的。Docker 之类的虚拟环境能在构建它们时不脏了你的主机环境,出现问题也能更好复现.

不要为了某件小事情在上面耗费大量时间

Linux 中,解决很多小问题所耗费的时间很可能远远超出你的预估,或(几乎)根本无法完成。很有可能这就是个已知问题,或在一段时间后会自己修复。只要这个问题不是致命的就忍忍呗,不要把时间浪费在系统上。