一个月前,由于 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 的镜像进行安装。
安装好用了一两天之后发现:睡眠了之后无法唤醒?点击睡眠之后无论是键盘鼠标还是电源键都无法唤醒,只能长按电源键断电。最开始以为是驱动问题,但是尝试各种方式无果,最后经过 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 睡眠。
在国内无法避免的要使用一些通讯软件,如 微信,钉钉,企业微信等等,根据我的经验,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
1
ferock 2022-05-17 23:40:14 +08:00 via iPhone
linux 做服务器,终端用 win 或者 mac 才是最顺滑的…
|
3
statumer 2022-05-17 23:59:51 +08:00 via iPhone 1
@ferock
Windows 默认 BOM ,和 macOS ,Linux 不兼容 Windows 不支持 EXT4 ,但是 Linux 支持 NTFS 。 Windows 的 WSL2 没有 systemd ,所以 dbus 工作不正常,需要创建 pid namespace 做 hack Windows 的文件系统有盘符,需要适配 Windows 的文件路径分隔符是反斜杠不是斜杠,要单独适配 Windows 要以管理员身份才能创建符号链接 Windows 没有 tmux Windows 自家的 hyperv 一个界面能有两种 DPI ,我用了这么久 GNOME 还没发现过这种现象。 所以,如果只用个 Windows Terminal 终端,为什么要用 Windows ? |
5
statumer 2022-05-18 00:06:43 +08:00
|
6
sora2blue 2022-05-18 00:09:15 +08:00
正好反过来,windows 上跑 VirtualBox 里的 Debian
linux 里的包管理器也不是那么统一,除了默认的 apt 还有 yarn snap yum npm 等等 apt 有时候不怎么方便,比如配置 golang 的时候 apt 安装默认 go 1.15 ( update 过了),下 module 的时候郁闷了半天,也可能是我用的 sjtu 镜像问题 |
7
cmdOptionKana 2022-05-18 00:17:24 +08:00
用 sid 不如用 ubuntu
|
8
moonheart OP @sora2blue #6 debian 非 sid 的版本,源里的包有些不是最新的( sid 的也有些不是最新的),这也是我用 sid 的原因之一
|
9
nguoidiqua 2022-05-18 00:29:06 +08:00
其实用 Debian testing 就可以了,也算滚动,可能奇怪问题少点。
还有 openSUSE tumbleweed ,这个也是滚动,老牌企业搞的滚动版。 对了,CentOS stream 现在也算是滚动版了,可能算是最稳的滚动版,因为是 fedora 的下游,RHEL 的上游。这个倒是希望 Ubuntu 学一学,非 lts 版不如改成滚动版好了,半年一更太慢了。 |
10
lostberryzz 2022-05-18 00:38:37 +08:00
mac 开发 /上网,win 打游戏,linux 跑服务,才是最优解
|
11
FrankAdler 2022-05-18 03:43:43 +08:00
工作还是家用?我在买 MacbookPro 前,用了 1 年多的 LinuxMint 办公,感觉确实爽多过难受,只有极少数软件很难找到替代品。
|
12
nlzy 2022-05-18 03:55:26 +08:00
> Debian 11 的 ISO 自带的内核是 5.10, 当时安装的时候就发现不对劲,Wi-Fi 不工作;一番搜索之后才发现我的笔记本网卡是 MT7921 ,要从 5.15 内核才支持。
Debian 有 backports 源,目前 Debian 11 backports 中的内核版本是 5.16 |
13
yzbythesea 2022-05-18 06:18:41 +08:00
Debian Sid 的内核也是 LTS 版本吗?竟然不是滚动到最新的。
|
14
codingBug 2022-05-18 06:51:19 +08:00 via Android 1
wxl 有啥问题?
|
15
alzee 2022-05-18 07:31:35 +08:00
用 testing ,更新下就是最新最新内核了。
VirtualBox, xorg-x11-drv-nvidia 等等,都需要重新编译 kmod 的,只不过 akmod 自动给搞了。 |
16
fox0001 2022-05-18 07:57:58 +08:00 via Android
那些国内聊天软件,我用 Android 手机代替,配合 QtScrcpy 投影到电脑端,还行
|
17
moonheart OP @FrankAdler #11 是办公用的笔记本,家里的电脑还是 win ,毕竟家人也要用
|
19
NPC666 2022-05-18 08:12:06 +08:00 via Android
Linux is user friendly.
It's just picky about who its friends are. |
20
moonheart OP @yzbythesea #13 sid 是最新内核,不过也不是完全像 archlinux 跟着上游
|
21
moonheart OP @codingBug #14 wsl2 的跨系统 IO 性能比较差,wsl1 我挺喜欢,但但是编译某个项目出来的产物一直不对
|
22
ruidoBlanco 2022-05-18 08:20:03 +08:00
@nguoidiqua 滚动升级适合很少对系统大改的情况。Ubuntu 各种自己弄的软件换来换去的,滚着滚着就会给你滚残了。
|
23
kongkongyzt 2022-05-18 08:20:30 +08:00
在 Linux 下开发要方便很多
|
25
zhhqiang 2022-05-18 08:26:28 +08:00 via Android
看楼主坚持多久
|
26
banmuyutian 2022-05-18 08:54:23 +08:00 1
我的笔记本装 manjaro 遇到的问题几乎跟楼主差不多,1.无法 S3 休眠,通过解锁 BIOS 解决; 2.休眠恢复后触摸板不工作,通过脚本解决。笔记本+linux 真的不太友好
|
27
anytk 2022-05-18 08:55:50 +08:00 2
sid 记得装 apt-listbugs ,有些更新会有些严重 bug ,虽然修复快,但是遇上还是会有点浪费时间
|
29
anonydmer 2022-05-18 09:11:09 +08:00
各个发行版官方源的软件包(像 apt ,yum )为了保证稳定性,相对来讲版本就会老一些。大部分开发用到的东西如 go 手动装一个版本也是很简单的,也可以试试 Homebrew on Linux
|
30
sundev 2022-05-18 09:26:27 +08:00
我是桌面还是用 Win 或 Mac ,然后远程到 Linux (无 GUI )开发
|
31
ragnaroks 2022-05-18 09:53:18 +08:00
windows 可以直接运行 dockerEE ,不需要虚拟机
|
32
kuichieh 2022-05-18 10:16:17 +08:00
Linux 下的虚拟机我更推荐 KVM+libvirt+virt-manager
|
33
JackieMe 2022-05-18 10:38:18 +08:00 via Android 1
@moonheart 用 Debian 要么 stable 要么 sid ,而 testing 其实是最差的选择。要极致稳定的话可以选择以 stable 为主,部分软件打开 sid 混源用,只要不涉及系统基础组件的话一般也不至于出问题,或者直接用 bpo 算了。说 sid 不如 Ubuntu 的我觉得可能是没有长期用过 sid 或者 Ubuntu ,如果是 LTS 可能还能赶上 sid 的稳定程度,但是又没有 sid 新。非 LTS 你要说稳定那我也不知道指的什么。
|
34
sadhen 2022-05-18 11:32:37 +08:00
我一直用 sid ,握爪
|
37
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 个系统切换着用,我个人并有你那么多的为什么。 各取所需不就完了。 |
39
ferock 2022-05-18 20:07:50 +08:00
补充楼上说的。。。
最反感引战说辞,例如: xxx 可以,xxxx 不可以 可以就可以嘛,不可以就不可以嘛,有什么大问题么?成年人做什么选择题。 列出 windows 一堆不可以,打算表达什么呢? 如果有必要,任何人也可以列出 linux 一堆不可以 但,这毫无意义。某一件事情,哪个舒服用哪个不就完了。。。 特么,我想玩儿守望 PG ,我就( zhi )用( neng ) windows ,你拦着不让我看 PG ? 不要和我提 dxvk 、Wine ,当然说的是原生!扯太多太浪费时间 |
40
secondwtq 2022-05-18 20:24:24 +08:00
|
41
ferock 2022-05-18 20:33:41 +08:00
@secondwtq #40
因为,做技术的总可以想到一些办法解决问题,那这样扯就没底了。 如果讨论问题方式是,A xxx 可以解决你的问题(带来一部分负面),B xxx 也可以解决你的问题(另一部分问题) 那回到 LZ 的帖子,那他干嘛不用 dockerEE 在 windows 上尝试解决一部分问题呢? 不是非要原生,但是,既然只是探讨,总要讲道理吧。 |
42
statumer 2022-05-18 20:37:04 +08:00
@ferock OP 在谈 Debian 桌面,你自己跑来说 Windows, macOS 最棒,Linux 只配做服务器,引战的是你自己谢谢
|
43
ferock 2022-05-18 20:40:35 +08:00
@statumer #42
谢你个 X 。 Ctrl+F ,哪儿来的 “最棒”,“只配” ? 戴上你的 800 度近视的眼镜看仔细了: 基于 LZ 说的:“从 Windows 11 切换到了 Linux ”,包括 #37 ,我也是这么说的。 你自己心里有 “最棒”,“只配” 满世界都是 “最棒”,“只配” |
44
secondwtq 2022-05-18 20:47:38 +08:00
@ferock #41
我认为每个人的偏好和情况是不一样的,不能用个人的情况去硬套他人的情况 比如对我来说,“原生”的游戏就基本不是个事,但是 Windows 和 Mac 没了 perf_events 之类的东西倒要考虑一下,所以你的例子在我看来有点奇怪 > 你自己心里有 “最棒”,“只配” 满世界都是 “最棒”,“只配” 不如搜索一下回复里面的第一个“最”字出现在哪 ... |
45
ferock 2022-05-18 20:56:37 +08:00
@secondwtq #44
看起来奇怪就对了啊。就像你说的,“不能用个人的情况去硬套他人的情况”,这点毫无问题。 所以我表达的,和你所表达的,哪里有问题? 1. 我个人给 LZ 的建议是:“基于他之前的 win11 ,用 linux 去解决 docker 的问题” 2. LZ 自己直接就切换到了 linux 3. 你是 Windows 和 Mac 没了 perf_events 之类的东西倒要考虑一下 没个人都有自己的情况,所以,你虽然看来点奇怪,但是我依然尊重你感觉到的奇怪。 ------ 另,截止到 20220518 2053 ,第一个最是 LZ 发的贴哪的:“最开始。。。” 你想表达啥意思? 的确,#1 我说了“最顺滑。。。”,那还有前半句呢。前半句和后半句加起来想表达的意思,#37 和#43 ,又解释了一遍。所以,这样就让他体会出了 xx “最棒”,xx “只配” ?? 这也太绿茶了吧。 |
46
secondwtq 2022-05-18 21:17:53 +08:00
@ferock 我说的是“回复”里的“最”,主题里的“最”只有“最开始”“最后”“最新”三种用法,表示价值判断的,你依然是第一个。
我认为你在 #1 就有把你认为“终端用 win 或者 mac 才是最顺滑的”的个人经验套在别人身上的倾向。很明显楼主和 #3 都不同意这个看法。 你说 > 某一件事情,哪个舒服用哪个不就完了 现在问题是楼主大概不认为 Windows 能用舒服,虽然他并没有正面回答这个问题。#3 也不这么认为,虽然举的一堆“例子”很蹩脚。 再往后就掉进了 > 做技术的总可以想到一些办法解决问题,那这样扯就没底了。 的坑了 包括就算是基于 Windows 想办法解决 Docker 的问题,也大概率会涉及到一堆比较主观和个人的东西。 |
47
ferock 2022-05-18 21:24:43 +08:00
@secondwtq #46
1. 关于你说的,“回复”里的“最”,我 #45 回应你了。 2. “很明显楼主和 #3 都不同意这个看法。”,LZ 在#2 回复的就很清晰啊,他有他的看法,我有我的看法,就好像,现在你有你的看法,论坛不就是大家表达自己看法的地方么?至于#3 ,引战贴,已经偏离了 LZ 的话题,毫无意义。 3. 至于你后面说的,我都认同,LZ 并不认为,我很尊重他的看法,“某一件事情,哪个舒服用哪个不就完了”,存粹是我自己的看法,你也可以认同,也可以觉得这样不对,我依然也尊重你的看法。 4. 再后面你说的,“大概率会涉及到一堆比较主观和个人的东西”,我表示,认同。 |
48
ferock 2022-05-18 21:29:13 +08:00
我的观点很简单
1. 每个人有表达自己看法的自由,我个人可以不认同你的意见,但是我尊重你表达的权利 2. 既然是论坛,表达的内容至少和帖子有逻辑关联,从犄角旮旯的刁钻角度来引起这种 “普遍矛盾”(什么 mac 好还是 win 好,iphone 好还是安卓好,php 好还是 java 好,哪个笔记最好。。。等等),毫无营养的话题,这就太浪费时( sheng )间( ming )了。 以上 all |
49
secondwtq 2022-05-18 21:37:49 +08:00
@ferock
我并没有认同 #42 ,主要是想表达“根据个人情况不同,不同的工具可以用于不同的用途,并没有通用的‘最适合’”这么一个观点,我想在这上面咱们应该是有共识的。 我倒是觉得 #3 从一开始就没有专门开回复的意义 :) |
50
ferock 2022-05-18 21:43:41 +08:00
@secondwtq #49
经过你的说明,我现在也表达,我认同 “没有通用的‘最适合’” ,我在 #1 所谓的 “最顺滑” ,也仅限于我个人 “最顺滑” ,他人还需要自己判断。 至于 #3 ,我一看到这类型的帖子就按耐不住自己的鸡动。 不稳重了。。。 |
51
agagega 2022-05-18 22:25:57 +08:00
这么看 macOS 还真是两者的优点都有一些。要不是近几个版本软件 bug 太多+库克 SSD 都要锁死赚黑心钱,Mac 风评应该能更好吧
|
52
zx900930 2022-05-18 23:17:47 +08:00
我印象深刻的是一个 2 年多只打 security 更新的 sid, 做了一次 upgrade 后, 因为新版 openssh 默认加密算法不支持 ssh-rsa
导致 ssh 连不上, 最后只能 VNC 进去改配置的惨状 |
53
czvatqin 2022-05-19 00:31:59 +08:00
还是 openSUSE Tumbleweed 好)
|
54
Buges 2022-05-19 01:34:30 +08:00 via Android
@ferock bom 可能是说记事本吧,Windows 编码问题还是挺严重的,2022 年的现在都没全局 UTF-8 ,装个英文 Windows 中文显示还能不正常,已经是所有现代操作系统独一家了。
只读 ntfs 是多少年前的了,现在内核里有了 ntfs3 完整 ntfs 驱动了解一下。就算之前 ntfs-3g 各个发行版都提供了,只是不是内核而已。不能和 Windows 上得买 paragon 的商业软件比吧。 单独适配主要指很多为类 unix 环境设计的软件和库,移植到 win 上就各种水土不服容易踩坑。 |
55
lifansama 2022-05-19 07:04:56 +08:00 via Android
只更新内核的话可以用 stable-backports 吧,现在已经是 5.16 了
testing 也比 sid 稳定点啊😂 |