
一个月前把我的主力电脑系统从 Windows 换成了 ArchLinux ,桌面是 KDE Plasma 。目前使用是没什么问题,但是总有一些地方让我不爽。
主要有 GTK ,Qt ,SDL2 ,通常是各种软件装完后,系统装了各种 GUI 库,感觉特别臃肿。这还是官方的包,如果再装一下 AUR 里的包,更加杂。
这是我的一个猜测。我用 pacman -S 安装了若干个包后,再用 pacman -Rs 卸载掉之前安装的包,那也有可能卸载不干净。因为有的包是其他的包的可选依赖,一旦安装了这些可选依赖的包,那他就不算孤立的包了,也就不会被卸载,导致系统越用越臃肿。在 Windows 上我都是用 Geek Uninstaller 卸载软件,相对比较干净。
/usr/,/etc/,~/,以及各个子路径都有侵入。在 Windows 上通常是安装到一个独立的文件夹,对文件系统的侵入比较小。
我主要是做嵌入式开发的。有的烧录工具只有 Windows 系统的,还要装虚拟机,这个倒还好。主要是我要使用串口助手,要记录收发信息到 Log ,一键切换 HEX 和 ASCII 收发,显示时间戳,添加自定义的快捷发送,Windows 上有 SSCOM ,Linux 系统下找不到像这样的工具。
还有 ssh 工具,像 SecureCRT ,xshell 这种用起来很方便,可以保存会话的用户名和密码,双击一下就直接连上了,还能保存所有输出到日志文件,串口和网络都能用。在 Linux 下主要用 Konsole + ssh 命令,不能保存会话密码,无法保存所有输出到日志文件,要是串口 shell 还要用 minicom 命令,操作比较割裂。
1 ruanimal 2023-07-04 10:41:29 +08:00 3. 你是没有看到 windows 用户目录下面的隐藏文件 |
2 idealhs 2023-07-04 10:43:57 +08:00 做嵌入式的还是用回 Windows 好了 |
3 shijingshijing 2023-07-04 10:45:24 +08:00 3, Windows 更奇葩,一个程序可能在 Program Files 里面、User 里面、system32 里面到处拉,而且还有可能写注册表,只不过都是暗挫挫的搞的,你没发现而已。绿色软件在 Windows 下面现在可以说是非常稀少了,Linux 反而比较规矩一点,而且 Linux 也有 AppImage 了。 |
4 Ansen 2023-07-04 10:45:37 +08:00 4 都影响工作了,还是换回 win 吧 |
5 shijingshijing 2023-07-04 10:47:05 +08:00 Linux 的问题都摆在台面上,Windows 的问题都烂在骨子里,Linux 理论上你可以自己修,不过是人力和时间成本的问题,而 Windows 你只能捏着鼻子用。 |
6 NessajCN 2023-07-04 10:47:23 +08:00 linux 做嵌入式开发比 windows 方便太多了,光串口这一项,linux 甚至可以直接打印串口数据不需要任何额外工具,当然你硬要工具也是应有尽有的 https://wiki.archlinux.org/title/working_with_the_serial_console#Making_Connections 要 cli 有 cli 要 gui 有 gui 你都用 arch 了那多看看 archwiki 啊倒是.... |
7 proxychains 2023-07-04 10:49:01 +08:00 要不要去看看 windows 的注册表 |
8 churchmice 2023-07-04 10:50:14 +08:00 ssh 你可以把你的.ssh/config 配出花来,你说的这些都能实现 连串口你用 screen 就可以了,类似这种命令 screen /dev/ttySX baud_rate,cs8|cs7,ixon|-ixon,ixoff|- 都不用开啥 putty linux 是一个高度可定制化的玩意,但是上手需要你自己倒腾一下,熟练之后比 windows 效率搞多了 |
9 m95r1jQyWNZ0uhqn 2023-07-04 10:50:16 +08:00 孤儿包不是 -Qtd 就可以查出来删除吗, 再说 gui 相关的,你熟悉之后可以选配安装啊,我记得 xorg 和 plsma 默认全部,但是可以单独选啊,默认肯定是全局唉。 不习惯建议还是直接 windows 吧,只不过可能只是你以为的干净而已 |
10 Tink PRO 用 linux 就要以 linux 的思维用 |
11 Huelse 2023-07-04 10:55:25 +08:00 看不到就好了 |
12 GeruzoniAnsasu 2023-07-04 10:58:40 +08:00 绿色软件? snapd: 我直接分发一个磁盘映像!超绿色 |
13 julyclyde 2023-07-04 11:00:10 +08:00 你这个洁癖略有点过 1 无所谓啊,能删 2 autoremove 功能 3 其实也就 etc 吧。usr 之类的都会被包管理工具删除; Windows 是残留在用户 home 目录和注册表里边,也没什么区别 4 嵌入式这个行业本身封闭性较强,工具都是成套的。这边如果没有,那也没什么办法 5 ssh 这个是你的问题。不要保存密码! |
14 F281M6Dh8DXpD1g2 2023-07-04 11:00:27 +08:00 windows 用多了 |
15 neroxps 2023-07-04 11:00:48 +08:00 哈哈,如果楼主看到 windows 的注册表,估计洁癖都犯嘛了。vscode pio 丢到 用户目录下的几十 G 的小文件,删都得删几个小时。 |
16 wangkun025 2023-07-04 11:05:19 +08:00 工作优先。 |
17 missdeer 2023-07-04 11:07:42 +08:00 4. 因为 ssh 的正确用法用密钥,然后让你的密钥不需要密码就行了 |
18 duke807 2023-07-04 11:10:56 +08:00 via Android 我做嵌入式用 gtkterm 图形做串口调试(譬如串口打印、嵌入式 linux 交互) 高阶一点的场合用自己写的工具:(固件升级、参数配置、波形显示 等) https://github.com/dukelec/cdbus_gui |
19 sinxccc 2023-07-04 11:11:13 +08:00 4. 别跟上游工具链较劲…除非你是超大规模的客户。 |
20 agagega 2023-07-04 11:14:02 +08:00 第三个问题,其他一些类 Unix 系统会比 GNU/Linux 好一点,像 FreeBSD 至少会区分系统的/bin 和/usr/local/bin. 但传统意义上类 Unix 并没有那么严谨的「包」概念,所以没有采用把包安装到固定位置,再把 bin lib 等链接过去的做法。 |
21 yazinnnn 2023-07-04 11:15:17 +08:00 没有污染到用户目录的问题都不大(指在 home 目录里瞎鸡巴拉屎行为) 望着我的 home 目录下将近一百个以.开头的文件夹叹道 |
22 zzzsy 2023-07-04 11:36:36 +08:00 前三点:用 NixOS |
23 diagnostics 2023-07-04 11:37:14 +08:00 ssh 自带密码记住的功能啊,再不济用密钥也行,alias ssh='ssh -i xxx.pem' |
24 QWE321ASD 2023-07-04 11:37:17 +08:00 windows 的 username 下面全是各种软件的文件夹啊,和 linux 差不多吧感觉... |
25 cooper2020 2023-07-04 11:40:36 +08:00 @yazinnnn 每个应用一个. -_- |
26 geminikingfall 2023-07-04 11:44:15 +08:00 跟一个 os 较啥劲 |
27 whenov 2023-07-04 11:46:30 +08:00 第二点,用 pacman -Qdttq|sudo pacman -Rns - |
28 whenov 2023-07-04 11:47:31 +08:00 第三点,关注下 GoboLinux (我自己没试过 |
29 whenov 2023-07-04 11:49:30 +08:00 第四点,ssh 免密登录一般是用密钥,不想每次输入命令的话就用 alias ,串口工具不太清楚 |
30 whenov 2023-07-04 11:53:03 +08:00 |
31 0o0O0o0O0o 2023-07-04 12:09:34 +08:00 via iPhone 你可以试试 NixOS |
32 weidaizi 2023-07-04 12:14:09 +08:00 关于 1:都由包管理帮你管了,你可以列出哪些是主动安装的,哪些是被动安装的,要卸载也很方便 关于 2:如果有被依赖,当然不应该被卸载,如果想看看有什么可以真的有啥没被依赖却还在的包,可以 pacman -Qqdt 关于 3:linux 下可以选择放到公共路径下,也可以是 portable 的,一般自己丢到 /opt 下。包管理安装的一般分散在各个目录,但是有包管理来管理 关于 4:不太了解,不发表意见 |
33 x77 2023-07-04 12:33:13 +08:00 挺正常的,搞嵌入式的关注效率,对于每个 CPU 、内存、IO 都特别敏感。。。 但是这个很难管,原生应用直接和操作系统接触,最自由,各种应用都有自己的玩法,自然会这拉点那拉点。除了文件和数据存储不一样,还有看不见的系统交互( API 调用)也不一样,有的高效有低效。想要“干净”的系统和应用真的没可能。 基于虚拟机或者应用程序框架(平台)的应用好点,应用只和虚拟机或者平台打交道,这种约束力强一点,不可能到处乱拉也能干净卸载,中间层提供的 API 接口也一样的,比较“干净”,不过这类效率没原生的好能力也会受到平台的限制比如支持串口通讯的 App 就很少甚至没有,因为如果平台不支持 App 就很难搞。 |
34 vcn8yjOogEL 2023-07-04 12:43:36 +08:00 via Android 一般软件可以用 Flatpak 和 Podman 容器,侵入性较低 |
35 adoal 2023-07-04 12:44:08 +08:00 关于 3 ,请认真阅读 Filesystem Hierarchy Standard 以及你所用发行版的 packaging guide ,了解这样做的理念。 当然,你可以不同意。但人家这样设计是有原因的,而不是乱搞。 你自己编译安装的话,一般默认就是你喜欢的 ./configure --prefix=/some/prefix/that/everything/goes/on |
36 CEBBCAT 2023-07-04 12:46:10 +08:00 如果你不理解它,可以先习惯它 |
37 mokiki 2023-07-04 12:49:04 +08:00 1 和 2 两个问题用 Gentoo 可解 |
38 e7 2023-07-04 12:55:09 +08:00 学会忽略这些你认为的“乱七八糟”,专注于工作本身,占不了多少空间的,善用搜索 |
39 garywill 2023-07-04 13:00:27 +08:00 串口工具 linux 有 cutecom |
40 wlh233 2023-07-04 13:04:26 +08:00 你用 Konsole 的话,Ctrl + Shift + S, Save output to file Ctrl + Shift + F2, SSH manager, 只不过功能简单,只是个 .ssh/config 的 GUI |
41 geekjoehome 2023-07-04 13:07:15 +08:00 楼主的洁癖问题可以用 Fedora 的 Silverblue 版来治。 我也是前天看到 V2EX 里面一个人的回复才有幸接触到 Silverblue 版( Fedora 官网貌似没大力宣传,藏在网页的最下方),这是一个 immutable (不可变)版的系统,意思是系统本身是绝对不能改变的,你说的那些软件包及相关依赖的安装都是在一个个容器封闭环境里,你不用了可以把创建的容器直接删除就完事了,系统始终洁净如新。 楼主可以看看 Fedora Silverblue 版下载页面的 documetation (一定要看,否则没概念用起来有诸多麻烦)。里面有说到用 immutable linux 的优势,其中有一点就是防止随着时间推移装的软件越来越多,依赖越来越复杂,系统越来越臃肿…… 甚至 N 久前改了系统里的某些东西自己又不记得了,导致后期会出现某些奇怪问题等(如果用 immutable 版大不了重新创建一个新容器后一切就都恢复了)。 系不可变同时带来的就是安全性、稳定性、更顺滑的升级与后退(因为只更换系统,并不像传统系统一样还动到装到系统里的各种包,相当于系统和用户程序隔离的)、自己误操作搞崩 …… 官网直达: https://fedoraproject.org/silverblue/ |
42 uiosun 2023-07-04 13:13:01 +08:00 Unix 影响工作就换回 Windwos 在不了解 Windows 的文件系统的前提下,不建议发这种帖子。Windwos 的 C 盘为什么会不断的膨胀,光这个问题,文件系统方面,Linux 的透明度就吊打 Windwos 了。 |
43 charlie21 2023-07-04 13:16:41 +08:00 via Android Fedora Silverblue 版的这个呢感觉跟自己做一个虚拟机的一个个快照没什么区别 |
44 Ally 2023-07-04 13:37:08 +08:00 linux 显然比 windows 干净多了。你以为 geek 就帮你卸载干净了,其实还有好多隐藏文件夹,注册表啥的。linux 都这样,你当初 windows 怎么用下去的 |
45 dayeye2006199 2023-07-04 13:44:07 +08:00 我感觉 LZ 可能还是不太熟,linux 下面的一些软件的逻辑和趁手的工具是什么。 比如 SSH ,你要是会写 ssh_config 组合 key 使用的话,方便的很 |
46 xlmo 2023-07-04 14:05:10 +08:00 别的不说,SecureCRT 有 Linux 版啊。 |
47 Jaosn 2023-07-04 14:05:57 +08:00 以前用 Android 就有这样的烦恼,现在用 iOS 眼不见为净,真舒服! |
48 ryan4yin 2023-07-04 14:08:26 +08:00 我也认为前三点可以被 NixOS 完美 cover ,缺点就是学习成本高了点... 第 4 点在 NixOS 上会有些问题,不过也不是不能解决. |
49 ivan_wl 2023-07-04 14:08:34 +08:00 有洁癖?看看 NixOS 串口和 ssh 工具可以用 WindTerm ,类似 SecureCRT ,非常强大 |
50 unclemcz 2023-07-04 14:21:44 +08:00 via Android 软件管理可以试试 flatpak |
51 zx900930 2023-07-04 14:27:24 +08:00 Fedora workstation, 部分不干净的应用就 flatpak, 舒服得不行. 当然我是 SRE/DevOps, 根本不存在上游软件不兼容的问题, 实在不兼容服务器上 fire up 一个 vm 就搞定了. |
52 azuginnen 2023-07-04 15:01:53 +08:00 眼不见为净,硬盘是用来用的,不是用来炒的 |
53 raptor 2023-07-04 15:12:02 +08:00 我以为你想玩 LFS |
54 yuyu01 2023-07-04 15:17:24 +08:00 linux 也有 SecureCRT |
55 ziseyinzi 2023-07-04 15:19:40 +08:00 windows 下连 qq 都会给你装个驱动用来反外挂,原神的反外挂驱动甚至卸载了还在,不过你平时看不到罢了。 |
56 masterclock 2023-07-04 15:47:01 +08:00 4. 前面一部分是对的 大量 MCU 的开发工具都只有 Win 的,keil 、rt-studio 都没 linux 版,甚至 Keil 的 VS code 插件有 Win 、Mac ,就是没有 Linux 版。 全志的工具链也没有 Linux 版,rockchip 的工具 Linux 版落后一大截。干这种的 Linux 开发还是 WSL 最方便。 后半部分不太对,Linux 下串口工具等等比 Win 方便多了,WindTerm 没有任何问题。 |
57 tin3w5 2023-07-04 15:58:16 +08:00 via iPhone 单纯的换 Linux 不是万能钥匙,即使是 Linux 也要做好隔离。 一般情况,我是 Linux 裸系统+常规的基本配置+自己写的一些脚本。安装好浏览器、虚拟机和 docker 就 OK 了,其他的能 docker 就 docker ,不能 docker 的就虚拟机。虚拟机环境配置好之后做模版,装必要的软件,然后拍快照。发现有问题的时候恢复快照就好,不用担心任何问题。你的那些必须在 win 上跑的就扔到 win 虚拟机里,让臭鱼烂虾一锅炖,自己在里面想怎么掐就怎么掐。 另外,顺带问一下楼主的电脑品牌和型号,我之前的笔记本都过保五六年才配上 Linux 下的驱动,换 Linux 容易,没驱动真闹心。 |
58 xuanhuangguyan 2023-07-04 16:03:23 +08:00 我不应该看这个帖子,意识到之后,我的洁癖犯了 |
59 yolee599 OP @tin3w5 公司的电脑,好像是华硕的主板,CPU 是 4 核 Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz ,内存 16GB 。 |
60 tin3w5 2023-07-04 16:49:24 +08:00 via iPhone @yolee599 卧槽,啥公司?公司提供的电脑还让自己重装系统?我之前的公司都是由 IT 强制装了 AV 、FW 、DLP 、portal……想重装都不行…… |
61 LXGMAX 2023-07-04 17:01:44 +08:00 |
62 yanqiyu 2023-07-04 17:07:58 +08:00 建议用 silverblue ,开发用容器,专治洁癖 |
63 Corybyte 2023-07-04 17:50:40 +08:00 ssh 可以写 shell 脚本保存密码 |
64 Jirajine 2023-07-04 18:12:37 +08:00 1. 其实库就那几个,Linux 下已经尽力在复用了,Windows 是每安装一个软件自带一套。 2. 你的可选依赖是显示安装的,所以算做显示安装的包。你可以把可选依赖作为依赖包安装,这样会自动卸载,清理孤儿包也很方便。 3. 恰恰相反,Windows 安装软件装到哪里拉屎的都有,Linux 包管理安装的卸载完全干净,除了残留一些数据,就那几个 xdg 目录,自己清理一下就行,比注册表清爽的多。 4. Linux 下搞串口比 Windows 方便多了,串口设备作为文件暴露,随便什么终端和各种工具都能自由使用。 ssh 一般用 ssh config 足够,要高级的可以用 tabby ,功能非常丰富,就是比较臃肿。 |
65 ufo5260987423 2023-07-04 18:28:25 +08:00 结论,楼主不熟悉 linux ,也不太熟悉 windows |
66 dog82 2023-07-04 18:38:14 +08:00 自找虐,嵌入式开发就该老实用 windows |
67 chingyat 2023-07-04 18:41:06 +08:00 via iPhone op 可以试试各种 immutable 发行版,比如 fedora silverblue/kinoite ,nixos ,guix 之类的. |
68 DefoliationM 2023-07-04 19:07:38 +08:00 1. windows 也是,只是你不知道而已。 2. pacman -Qttd 3. 用包管理器安装一般都是固定目录。 4. 不懂,建议用 windows 。 |
69 kenvix 2023-07-04 19:18:04 +08:00 你们不会买两个硬盘双系统吗 |
70 vcn8yjOogEL 2023-07-04 20:08:39 +08:00 via Android @charlie21 Silverblue 每次升级都会从头生成一个系统,快照则仅仅只是提供回滚功能而已 |
71 Alucns 2023-07-04 20:45:58 +08:00 用 FreeBSD 吧, 这方面比 Linux 做的好太多了; |
72 wtsamuel 2023-07-04 23:34:29 +08:00 嵌入式没办法,所以我公司电脑主力就是 windows 。 再带个自己的 mac air 做别的事 |
73 jevonszmx 2023-07-04 23:48:30 +08:00 说出第三点的,我很怀疑你是不是地球人,起码不是大陆人。 |
75 Adelell 2023-07-05 01:48:35 +08:00 via iPhone 换 dwm 感受下,主打一个 simple 。 |
76 zysuper 2023-07-05 09:03:43 +08:00 选择 linux 的乐趣,就是在于和各种 bug 、不和谐做 battle ,如果你接受不了这种生活,你可以继续使用 windows 呢 |
77 cy18 2023-07-05 12:21:33 +08:00 1 、2 算是发行版的问题。 3. Windows 下面除了 Program Files 、还有 Users ,AppData ,还有注册表,有些软件会往 Windows 目录下塞 DLL 。甚至还有些软件会往你的系统里面添加根证书。国内外厂商都有,国外厂商比较收敛,证书的使用范围都很窄,对安全性影响不大。国内某些厂商那操作可就没那么收敛了。 4. 这个是使用习惯问题。Windows 的 GUI 程序确实吊打 Linux ,但是 Linux 的 CLI 吊打 Windows 。 |
78 sikaco 2023-07-05 12:55:21 +08:00 总结,感觉可以试试 mac 。。。虽然我没用过 mac 做过嵌入式,但是作为类 unix 系统 mac 对 linux 的相关生态应该都是支持的。 |
79 zpf124 2023-07-05 13:02:52 +08:00 在如今 部分软件全平台适配结果全按 unix 路径把数据放 ~/.xx 的情况下,以及 electron 流行的年代, 建议楼主看看下面这几个文件夹。 C:\Users\~\ C:\Users\~\AppData\Local\ C:\Users\~\AppData\Roaming\ |
80 moonjourney 2023-07-05 18:00:52 +08:00 NixOS 治好我的系统洁癖症,笔记强迫症,更新焦虑症。。。 |
81 ryan4yin 2023-07-05 19:44:39 +08:00 @moonjourney #80 +1 我也是,再也不用写笔记记录自己装了些啥东西,改了些啥配置了。 |
82 zisen 2023-07-12 02:02:34 +08:00 via iPhone 无所谓吧,这些小东西占用的空间也不是很大,学会去忽略这些不必要的担忧,这些残留的小东西并不会对你的工作产生任何的影响,你的操作系统变得很干净了也不会加快你的工作效率。我自己的原则就是,只要这些软件不干扰我想要做的事情,那就不管它们,否则就是给自己徒增烦恼。说白了就是闲得,当你的工作和生活中的事堆积成山的时候,你会发现很多人的手机电脑壁纸都是系统初始的,因为他们更关注工作本身和享受自己的生活。 |
83 CSM 2023-07-13 12:07:31 +08:00 2 可以用 --asdeps https://wiki.archlinux.org/title/Pacman#Installation_reason |
84 Hobr 2023-07-16 18:41:04 +08:00 可以试试 gentoo 或 nixos, 这两个都是可控性极强的系统 |
85 nsynet57 2023-07-17 12:54:07 +08:00 串口工具找到 gtkterm 比较好用,当然和 sscom 不能比 |
86 aaniao002 2023-09-19 02:52:23 +08:00 via Android 欢迎加入。1 这些太多不用你管,用什么依赖自动会搞定,选 gtk ,kde ,还是其他的都行。2 依赖太多也不用你管,package manager 会搞定,安装软件就行。3 简单来说,windows 一个软件一个文件夹,linux 一类文件一个文件夹。4 嵌入式看你开发环境选系统。securecrt 不觉得有很多乱码吗? xshell 勉强能用,但一个 ssh 就搞定了,为什么这么麻烦?无密码登录配置一下就行,要快的话无密码+host 配置。保存就用 script test.log 。 |