切换到 Debian sid 使用一个月的体验

2022-05-17 22:10:02 +08:00
 moonheart

一个月前,由于 docker 使用体验不佳,加上当时正好遇到一个项目需要使用 Linux 环境编译,但是 WSL/WSL2 有一些小问题一直没解决,就顺势从 Windows 11 切换到了 Linux 。

选择哪个发行版?

最开始我是准备用 ArchLinux 的,因为她的滚动更新策略我比较喜欢,以前使用过一个星期,由于一些电源管理的问题,本人太菜一直没修好,于是放弃了;公司服务器主要使用的是 Debian 9/10, 考虑到贴和工作环境,于是我选择了最新 的 Debian 11 。

遇到的问题

网卡不工作

安装 Debian 11 的时候,遇到一个哭笑不得的问题:Debian 11 的 ISO 自带的内核是 5.10, 当时安装的时候就发现不对劲,Wi-Fi 不工作;一番搜索之后才发现我的笔记本网卡是 MT7921 ,要从 5.15 内核才支持。又是搜索了一番,发现原来 Debian 也有滚动更新的版本,于是下载了 Debian sid 的镜像进行安装。

S3 睡眠失败

安装好用了一两天之后发现:睡眠了之后无法唤醒?点击睡眠之后无论是键盘鼠标还是电源键都无法唤醒,只能长按电源键断电。最开始以为是驱动问题,但是尝试各种方式无果,最后经过 TG 群的一位群友提醒,发现是因为设备太新,不支持 S3 睡眠,取而代之的是 Windows 的 新式待机:https://docs.microsoft.com/zh-cn/windows-hardware/design/device-experiences/modern-standby-vs-s3,经过一番搜索,找到了可用的方案:https://dev.to/epassaro/fix-suspend-issues-on-dell-7405-2-in-1-3l1b,通过修补 DSDT 来修复 S3 睡眠。

Windows 软件问题

在国内无法避免的要使用一些通讯软件,如 微信,钉钉,企业微信等等,根据我的经验,Wine 下运行的软件或多或少都会有些小问题,最后决定采用 VM 方案,在 VirtualBox 中安装了一个精简版的 Windows 7 来运行这些软件,分配了 2 GB 内存,平时使用基本够用。

其他都是一些小问题,网上解决方案很多,这里就不再赘述了。

好的体验

首先我要由衷的感叹:Linux 下的 docker 真是太好用了!超级顺滑,再也不用那个超级重的 Docker Desktop For Windows 了;而且挂载目录也不用担心 IO 性能问题了;

另外就是开发的体验变好了:可以很方便的使用一些之前在 Windows 下用起来很麻烦的命令,比如 make, gcc, 之前只能在 WSL 中使用;

并且 Linux 下有统一的 shell 环境,不像 Windows 有 CMD/Powershell/WSL 还有为了使用一些 Linux 工具安装的 MSYS2/Cygwin 等等;

另外 Linux 下有统一的包管理器,Windows 下我需要 Chocolatey/scoop/winget 换着用。

常用的工具在 Linux 下都有:Jetbrains 全家桶,Lens ,vscode ,dbeaver ,telegram ,utools ,Edge 等等,刚需的 Onedrive 有 onedriver 代替,clash for windows 换成了 systemd 管理的 clash 。

不好的体验

一些软件没有 Linux 版本,只能在 VM 中使用;

偶尔遇到一些奇怪的问题,比如开机后 USB 键鼠失效,只能关机后开机解决;

KDE 在拔出外接显示器再重新连接后,窗口全部挤在笔记本屏幕上;

更新内核后 VMWare 的内核模块需要重新手动编译,我嫌麻烦就换 VirtualBox 了;

以上都是我在一个月左右的体验,其中可能会有一些看起来很初级的问题,望各位体谅;最后附上系统信息:

       _,met$$$$$gg.          moon@tb14p-debian 
    ,g$$$$$$$$$$$$$$$P.       ----------------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux bookworm/sid x86_64 
 ,$$P'              `$$$.     Host: 20YN Lenovo ThinkBook 14p Gen 2 
',$$P       ,ggs.     `$$b:   Kernel: 5.17.0-2-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 10 hours, 48 mins 
 $$P      d$'     ,    $$P    Packages: 2957 (dpkg) 
 $$:      $$.   -    ,d$$'    Shell: zsh 5.8.1 
 $$;      Y$b._   _,d$P'      Resolution: 2240x1400 
 Y$$.    `.`"Y$$$$P"'         DE: Plasma 5.24.5 
 `$$b      "-.__              WM: KWin 
  `Y$$                        Theme: [Plasma], Breeze [GTK2/3] 
   `Y$$.                      Icons: [Plasma], breeze [GTK2/3] 
     `$$b.                    Terminal: konsole 
       `Y$$b.                 Terminal Font: FiraCode Nerd Font Mono 10 
          `"Y$b._             CPU: AMD Ryzen 7 5800H with Radeon Graphics (16) @ 3.200GHz 
              `"""            GPU: AMD ATI 04:00.0 Cezanne 
                              Memory: 14509MiB / 28002MiB
5930 次点击
所在节点    Linux
56 条回复
moonheart
2022-05-18 08:17:17 +08:00
@codingBug #14 wsl2 的跨系统 IO 性能比较差,wsl1 我挺喜欢,但但是编译某个项目出来的产物一直不对
ruidoBlanco
2022-05-18 08:20:03 +08:00
@nguoidiqua 滚动升级适合很少对系统大改的情况。Ubuntu 各种自己弄的软件换来换去的,滚着滚着就会给你滚残了。
kongkongyzt
2022-05-18 08:20:30 +08:00
在 Linux 下开发要方便很多
moonheart
2022-05-18 08:20:35 +08:00
@alzee #15 当时是用 testing ISO 安装的,想着都用 testing 了,就换到 sid 了
zhhqiang
2022-05-18 08:26:28 +08:00
看楼主坚持多久
banmuyutian
2022-05-18 08:54:23 +08:00
我的笔记本装 manjaro 遇到的问题几乎跟楼主差不多,1.无法 S3 休眠,通过解锁 BIOS 解决; 2.休眠恢复后触摸板不工作,通过脚本解决。笔记本+linux 真的不太友好
anytk
2022-05-18 08:55:50 +08:00
sid 记得装 apt-listbugs ,有些更新会有些严重 bug ,虽然修复快,但是遇上还是会有点浪费时间
moonheart
2022-05-18 09:02:46 +08:00
@anytk #27 感谢,这就去装上
anonydmer
2022-05-18 09:11:09 +08:00
各个发行版官方源的软件包(像 apt ,yum )为了保证稳定性,相对来讲版本就会老一些。大部分开发用到的东西如 go 手动装一个版本也是很简单的,也可以试试 Homebrew on Linux
sundev
2022-05-18 09:26:27 +08:00
我是桌面还是用 Win 或 Mac ,然后远程到 Linux (无 GUI )开发
ragnaroks
2022-05-18 09:53:18 +08:00
windows 可以直接运行 dockerEE ,不需要虚拟机
kuichieh
2022-05-18 10:16:17 +08:00
Linux 下的虚拟机我更推荐 KVM+libvirt+virt-manager
JackieMe
2022-05-18 10:38:18 +08:00
@moonheart 用 Debian 要么 stable 要么 sid ,而 testing 其实是最差的选择。要极致稳定的话可以选择以 stable 为主,部分软件打开 sid 混源用,只要不涉及系统基础组件的话一般也不至于出问题,或者直接用 bpo 算了。说 sid 不如 Ubuntu 的我觉得可能是没有长期用过 sid 或者 Ubuntu ,如果是 LTS 可能还能赶上 sid 的稳定程度,但是又没有 sid 新。非 LTS 你要说稳定那我也不知道指的什么。
sadhen
2022-05-18 11:32:37 +08:00
我一直用 sid ,握爪
moonheart
2022-05-18 13:39:55 +08:00
@kuichieh #32 感谢,我尝试一下
codingBug
2022-05-18 14:18:44 +08:00
@moonheart 开发过程不用跨系统 io 操作
ferock
2022-05-18 20:01:57 +08:00
@statumer #3

Windows 默认 BOM
? vscode 或者 sublime 或者 idea 全家桶是假的?


Windows 不支持 EXT4 ,但是 Linux 支持 NTFS 。
???你说的是 ntfs 是只读的吧?如果说装驱动,那 win 也可以装 ext4 的驱动


Windows 的 WSL2 没有 systemd ,所以 dbus 工作不正常,需要创建 pid namespace 做 hack
WSL2 我不用

Windows 的文件系统有盘符,需要适配
8x 年开始就有盘符,这算什么梗?


Windows 的文件路径分隔符是反斜杠不是斜杠,要单独适配
参考上一段

Windows 要以管理员身份才能创建符号链接
管理员身份,在 linux 和 macos 都有权限相关的限制。

Windows 没有 tmux
windows 没有的东西多了去了

Windows 自家的 hyperv 一个界面能有两种 DPI ,我用了这么久 GNOME 还没发现过这种现象。
dpi 问题,你可以选择 100%,只要你觉得能看清,macos 解决 dpi 比 linux 更丝滑


所以,如果只用个 Windows Terminal 终端,为什么要用 Windows ?
只用个 Windows Terminal 终端?你这个定义是怎么从 LZ 的上下文揣测出来了?


------------------------------------------
首先我自己长期用 macos ,游戏用 windows 。
其次,我一楼给出的建议,是基于 LZ 说的 “一个月前,由于 docker 使用体验不佳,加上当时正好遇到一个项目需要使用 Linux 环境编译,但是 WSL/WSL2 有一些小问题一直没解决,就顺势从 Windows 11 切换到了 Linux 。”

仅仅因为 docker 的体验问题,切换操作系统,改变的东西还是比较多的。
如果只解决 docker 的体验问题,随便搭个 linux server 不就完了?
我自己不管是,物理机,还是虚拟机,还是 nas ,linux 环境,个人(家中自用)就有 4 台以上,还有树莓派和嵌入式设备(另一个开发版,玩儿汽 ODB CanBus 读数据)。

公司标机,windows 环境开发 clang ,跑 arm 编译,3 个系统切换着用,我个人并有你那么多的为什么。
各取所需不就完了。
ferock
2022-05-18 20:02:44 +08:00
@zhhqiang #25

对咯~~
ferock
2022-05-18 20:07:50 +08:00
补充楼上说的。。。


最反感引战说辞,例如:
xxx 可以,xxxx 不可以


可以就可以嘛,不可以就不可以嘛,有什么大问题么?成年人做什么选择题。
列出 windows 一堆不可以,打算表达什么呢?
如果有必要,任何人也可以列出 linux 一堆不可以

但,这毫无意义。某一件事情,哪个舒服用哪个不就完了。。。
特么,我想玩儿守望 PG ,我就( zhi )用( neng ) windows ,你拦着不让我看 PG ?
不要和我提 dxvk 、Wine ,当然说的是原生!扯太多太浪费时间
secondwtq
2022-05-18 20:24:24 +08:00
@ferock
> 不要和我提 dxvk 、Wine ,当然说的是原生!扯太多太浪费时间
来浪费下时间:为什么非要“原生”?

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

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

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

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

© 2021 V2EX