找回密码
 立即注册
搜索
查看: 9995|回复: 41

[软件] 配完NixOS的一些感受

[复制链接]
发表于 2023-9-28 12:00 | 显示全部楼层 |阅读模式
本帖最后由 dangoron 于 2023-9-28 12:02 编辑

之前看了坛友介绍Clear Linux的帖子下面有回复提到NixOS是版本答案,于是时隔多年又体验了一下linux桌面
以前用linux桌面的时候是arch+i3wm,当时感觉x11非常垃圾,滚动网页都会出现画面撕裂,后来就弃用了
这次直接上了hyprland,不得不说wayland比x11对于高分屏的支持好太多,不过因为兼容性的问题会导致很多electron应用出现问题,不过也差不多都解决了
总的来说,NixOS的声明式配置实在是太太太棒了,尤其是对于不使用主流Gnome/KDE这类桌面环境的人来说,可以自由控制自己想装的软件并且随时可以回滚到任何状态简直是lifesaver
之后还有一些软件打算用win虚拟机+remoteapp的形式来使用,这里问一下坛友目前有没有什么合适安装在虚拟机的windows版本,只要能安装最新版本的office就行


2023-09-28T11:42:58,464496401 08:00.png
回复

使用道具 举报

     
发表于 2023-9-28 12:25 来自手机 | 显示全部楼层
electron应用我看大部分可以用Ctrl+-调大小
回复

使用道具 举报

 楼主| 发表于 2023-9-28 12:48 | 显示全部楼层
noahhhh 发表于 2023-9-28 12:25
electron应用我看大部分可以用Ctrl+-调大小

缩放都没有问题,wayland可以自己调,主要是有些软件比如vscode和obsidian在拖拽标签页时闪退的问题,有很多issue但是没人修

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-9-28 18:59 | 显示全部楼层
继续用nixos,然后你就会开始研究git仓库来储存nix模块和系统配置文件

虚拟机直接跑win11就行,我家里的台式机和笔记本都是win11的游戏虚拟机+looking-glass
回复

使用道具 举报

     
发表于 2023-9-28 20:03 | 显示全部楼层
arch 滚动网页会出现撕裂 - 经典没装窗口合成器 / 装了但没开垂直同步,需要搞个 picom

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-9-28 20:10 | 显示全部楼层
那种打游戏用的精简系统?
我记得有AltasOS,还有ReviOS。
非打游戏用的精简系统好像有个Tiny开头的系列。
回复

使用道具 举报

 楼主| 发表于 2023-9-28 20:19 | 显示全部楼层
Magnesium 发表于 2023-9-28 20:03
arch 滚动网页会出现撕裂 - 经典没装窗口合成器 / 装了但没开垂直同步,需要搞个 picom

—— 来自 S1Fun ...

x11问题挺多的,非整数倍缩放糊得不能看,好像听说现在官方给关掉了?
回复

使用道具 举报

 楼主| 发表于 2023-9-28 20:21 | 显示全部楼层
本帖最后由 dangoron 于 2023-9-29 18:03 编辑
HSJ1992 发表于 2023-9-28 20:10
那种打游戏用的精简系统?
我记得有AltasOS,还有ReviOS。
非打游戏用的精简系统好像有个Tiny开头的系列。 ...

搞错了,编辑
回复

使用道具 举报

     
发表于 2023-9-28 20:22 | 显示全部楼层
Clear Linux和NixOS都没怎么听说过,这NixOS什么时候成为版本答案的

我还是继续抱着Debian吧
回复

使用道具 举报

     
发表于 2023-9-28 20:24 | 显示全部楼层
dangoron 发表于 2023-9-28 20:21
精简只是附带的,NixOS主要的特点是声明式,所有系统里的环境都可以通过配置文件来定义
玩游戏就别用linu ...

虚拟机windows建议还是装个官方原版,然后用AME Wizard精简掉一些遥测和没需要的东西。
回复

使用道具 举报

 楼主| 发表于 2023-9-28 20:26 | 显示全部楼层
nanonya2 发表于 2023-9-28 20:22
Clear Linux和NixOS都没怎么听说过,这NixOS什么时候成为版本答案的

我还是继续抱着Debian吧 ...

我觉得还是值得一试的,永远不会滚挂而且永远不用担心依赖问题
官方还出了nix包管理器,可以在其他系统使用
回复

使用道具 举报

 楼主| 发表于 2023-9-28 20:28 | 显示全部楼层
HSJ1992 发表于 2023-9-28 20:24
虚拟机windows建议还是装个官方原版,然后用AME Wizard精简掉一些遥测和没需要的东西。 ...

感谢!我看到国外有人做了个tiny11,好像是去掉了大部分没用的东西,不过还是原版自己精简比较安心
回复

使用道具 举报

     
发表于 2023-9-28 21:46 | 显示全部楼层
本帖最后由 Midnight.Coup 于 2023-9-28 21:57 编辑
nanonya2 发表于 2023-9-28 20:22
Clear Linux和NixOS都没怎么听说过,这NixOS什么时候成为版本答案的

我还是继续抱着Debian吧 ...

Clear Linux 是 Intel 官方优化的发行版闻名
NixOS 则是以特殊/入门后好用的包管理和最多的包闻名
算是两个很有特色的独立发行版
回复

使用道具 举报

     
发表于 2023-9-29 15:43 | 显示全部楼层
dangoron 发表于 2023-9-28 20:21
精简只是附带的,NixOS主要的特点是声明式,所有系统里的环境都可以通过配置文件来定义
玩游戏就别用linu ...

听着像Windows注册表

—— 来自 S1Fun
回复

使用道具 举报

发表于 2023-9-29 16:33 | 显示全部楼层
本帖最后由 乔槁 于 2023-10-29 12:29 编辑
noahhhh 发表于 2023-9-29 15:43
听着像Windows注册表

—— 来自 S1Fun

和 Windows 注册表还是不太一样的。

Windows 注册表的前提,是要有一个完整系统。然后通过注册表,微调设置并保存,注册表相当于系统设定备份。
理论上虽然可以把A机器的注册表导入到B机器,运气能得到差不多的系统。但因为 Windows 本体是个黑箱,同时系统,软件,驱动的版本并不固定,这么做系统可能会爆炸。

NixOS 反过来。一开始并没有一个系统。
Nix 配置文件,描述的是系统与软件本身。通过Nix配置设定系统组成,比如Linux内核,桌面,用户软件等。
配置好了,不论系统还是软件,多台机器上都可以完全一样。系统折腾挂了,也能恢复到某个时间点,这一点注册表完全不能比。
PS:额外有一些条件语句,用来控制类似显卡驱动这种不兼容的部分。还有一些手段,能把用户设定也加上版本控制。

Nix这一套非常适合折腾,缺点也是初期设置太折腾。
好在Nix可以只用软件源。比如Steam OS也计划支持Nix软件包,解决不可变系统装软件问题。

update:试着升级到SteamOS 3.5开发版,已经有 /nix 目录了。

回复

使用道具 举报

     
发表于 2023-9-29 17:03 来自手机 | 显示全部楼层
永远不会滚挂…难说吧

nixos 我只看过一些文档,在意识到可能不适合自己之后就没试,按我的理解,这东西比较适合批量部署或者远程部署一些不常用或者功能单一或者说没有临时增加功能这种需求的机器,对动不动就要微调的主力机大概就没那么合适了。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

发表于 2023-9-29 17:14 | 显示全部楼层
noahhhh 发表于 2023-9-28 23:43
听着像Windows注册表

—— 来自 S1Fun

类似注册表的是dconf吧。可以说类似emacs的use-package,读取配置文件来生成系统。
个人不能接受整个系统都管的这么严,作为管理多版本环境的第三方包管理看起来倒是个比较干净的选择。
回复

使用道具 举报

 楼主| 发表于 2023-9-29 17:52 | 显示全部楼层
noahhhh 发表于 2023-9-29 15:43
听着像Windows注册表

—— 来自 S1Fun

注册表可不能控制系统内核用什么,安装什么软件,运行什么服务,nixos的声明式是很彻底的

—— 来自 S1Fun
回复

使用道具 举报

 楼主| 发表于 2023-9-29 17:56 | 显示全部楼层
indtability 发表于 2023-9-29 17:03
永远不会滚挂…难说吧

nixos 我只看过一些文档,在意识到可能不适合自己之后就没试,按我的理解,这东西比 ...

我自己用下来感觉反而是主力机很方便,有些软件可能用了一段时间不需要了,直接从声明里面注释掉就行,完全不用担心卸载残留的问题。而且和版本管理一起用相当于可以随时回到系统过去的任何一个状态,对于喜欢折腾的人来说真的非常方便

—— 来自 S1Fun
回复

使用道具 举报

 楼主| 发表于 2023-9-29 17:59 | 显示全部楼层
不要叫水狗做主人 发表于 2023-9-28 18:59
继续用nixos,然后你就会开始研究git仓库来储存nix模块和系统配置文件

虚拟机直接跑win11就行,我家里的台 ...

现在就是这么用的,flake很好用,不过我懒得用sops就直接搞了个private repo,有些密钥啥的也往里面放,就图一个方便

—— 来自 S1Fun
回复

使用道具 举报

 楼主| 发表于 2023-9-29 18:03 | 显示全部楼层
本帖最后由 dangoron 于 2023-9-29 18:16 编辑
HSJ1992 发表于 2023-9-28 20:10
那种打游戏用的精简系统?
我记得有AltasOS,还有ReviOS。
非打游戏用的精简系统好像有个Tiny开头的系列。 ...

不好意思哥,发现好像完全误解你的意思了,还以为说的是Linux,这几个我试试看,谢了

目前安装了tiny11,不过感觉有点精简过头了,准备试试revios

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-9-29 18:06 | 显示全部楼层
乔槁 发表于 2023-9-29 16:33
理念上和Windows注册表还是不太一样的。
Windows注册表的前提,是要有一个完整系统,比如说win10。然后通 ...

这不是类似的吗,注册表不同条目储存软件,系统等等的配置,可以单独备份恢复,像企业版的控制功能实质上就是相同配置批量写入注册表。
回复

使用道具 举报

     
发表于 2023-9-29 18:29 来自手机 | 显示全部楼层
对nix的印象就是把emacs那套配置文件的方式挪到了Linux里

—— 来自 HUAWEI LNA-AL00, Android 12上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-9-29 18:42 来自手机 | 显示全部楼层
dangoron 发表于 2023-9-29 17:56
我自己用下来感觉反而是主力机很方便,有些软件可能用了一段时间不需要了,直接从声明里面注释掉就行,完 ...

传统包管理器也不会有残留吧,不然要包管理器干嘛,传统包管理器没辙的家目录残留文件给 nix 应该也没辙吧,还是说你说的是别的啥…

我说的主力机,指的是经常用,时不时就要调整一些配置的情况,按我对 nix 的理解,调整系统配置在 nix 里的最佳实践显然会更麻烦一点,对于时不时就要调整配置,但却很少会重新部署的主力机,这种取舍就有些得不偿失了,像我的系统几年都没重装过了。

另外我感觉这种策略在一些边边角角的部分会显得很麻烦,尤其是在追求完全复现的时候。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

发表于 2023-9-29 19:12 | 显示全部楼层
本帖最后由 乔槁 于 2023-9-29 23:36 编辑
noahhhh 发表于 2023-9-29 18:06
这不是类似的吗,注册表不同条目储存软件,系统等等的配置,可以单独备份恢复,像企业版的控制功能实质上 ...

注册表只能完成小部分系统定制功能。导入注册表文件,可以设置系统休眠时间,将默认文件PDF打开方式为Edge。却没法帮用户下载QQ,输入法,PDF阅读器,配置桌面切换效果,安装火狐与插件,配置golang与Android开发环境,也做不到把win10 home切换成win7 pro用两天,不舒服再换回来。

虽然可以假设极端情况,比如黑客用注册表设置了一个开机启动项下载病毒,远程控制电脑安装软件。这种情况下,下载软件的也是病毒,不能说注册表有定制系统功能。

注册表与nix功能有交叉的地方,但最多不过是Linux的/etc,大体上不是同一个东西。
回复

使用道具 举报

 楼主| 发表于 2023-9-29 19:32 | 显示全部楼层
indtability 发表于 2023-9-29 18:42
传统包管理器也不会有残留吧,不然要包管理器干嘛,传统包管理器没辙的家目录残留文件给 nix 应该也没辙 ...

主要是一些依赖会残留吧,之前用arch的时候就得隔段时间清一下orphan。nix也有home manager可以用来管理家目录,比如hyprland的所有配置我现在就是用它来管理的,只要注释一行就会全部消失。
其实nix调整配置之后重新部署并不会把所有的东西都部署一遍,只会调整修改的部分,所以改起来也还是挺容易的。而且nix所有配置文件都集中在一起,省去了在其他发行版上记各种配置文件路径的烦恼

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-9-29 20:34 来自手机 | 显示全部楼层
dangoron 发表于 2023-9-29 19:32
主要是一些依赖会残留吧,之前用arch的时候就得隔段时间清一下orphan。nix也有home manager可以用来管理 ...

我说的家目录的残留指的是各种 dotfile,.config 和 .cache 之类运行时生成的残留。
对我而言,比起通过 nix 间接配置,还是直接修改配置文件更简单可靠一些,使用 nix 不论怎么说都多了重新部署这个步骤。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-9-29 21:09 | 显示全部楼层
nanonya2 发表于 2023-9-28 20:22
Clear Linux和NixOS都没怎么听说过,这NixOS什么时候成为版本答案的

我还是继续抱着Debian吧 ...

包管理避免错误的究极形态
不过如果你会用apt,对AUR之流没有特别需要的话完全不用切过去
回复

使用道具 举报

 楼主| 发表于 2023-9-29 21:25 | 显示全部楼层
indtability 发表于 2023-9-29 20:34
我说的家目录的残留指的是各种 dotfile,.config 和 .cache 之类运行时生成的残留。
对我而言,比起通过  ...

我目前.config下面的内容大多都是通过home manger来管理的,当然用什么发行版都行,符合自己的使用习惯就好了
回复

使用道具 举报

     
发表于 2023-9-29 22:08 来自手机 | 显示全部楼层
dangoron 发表于 2023-9-28 20:26
我觉得还是值得一试的,永远不会滚挂而且永远不用担心依赖问题
官方还出了nix包管理器,可以在其 ...

请问这个包管理器叫什么名字?直接搜nix packgemanager我怕搜到别的东西
回复

使用道具 举报

     
发表于 2023-9-29 22:09 | 显示全部楼层
indtability 发表于 2023-9-29 18:42
传统包管理器也不会有残留吧,不然要包管理器干嘛,传统包管理器没辙的家目录残留文件给 nix 应该也没辙 ...

日常实际使用下来不会那么蠢。

比如我现在用gnome,但是我nixos配置里只写了一些最最基本的gnome配置,其他的手动改了些配置他当然依然是生效的。

我现在是尽量把能申明的东西都放在nixos配置里, gnome里改了某个选项也会直接dconf到处配置,然后把这个配置写进nixos配置里。

nixos主要是给你加了信心,我啥时候想试下Hyperland,我直接在主力机上配,真出啥问题了,我肯定也可以用老的配置进入系统,git reset到那个时候就继续用了。
回复

使用道具 举报

 楼主| 发表于 2023-9-29 22:25 | 显示全部楼层
我特么吹爆 发表于 2023-9-29 22:08
请问这个包管理器叫什么名字?直接搜nix packgemanager我怕搜到别的东西

https://nixos.org/download 第一个就是
回复

使用道具 举报

     
发表于 2023-9-29 23:12 来自手机 | 显示全部楼层
13号 发表于 2023-9-29 22:09
日常实际使用下来不会那么蠢。

比如我现在用gnome,但是我nixos配置里只写了一些最最基本的gnome配置, ...

“信心”,确实能理解这部分,我之前好像说过 nix 乍看之下很迷人,但一想到自己几年没有重装过系统,未来几年也看不到重装系统的需求的时候就决定不折腾自己了,没有重新部署的需求的时候 nix 就只显得有些麻烦了。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-9-30 00:25 来自手机 | 显示全部楼层
我觉得对于一般喜欢折腾的用户来说最终答案就是arch了,极端一点的就是gentoo

可能真的会有人尝试Linux from scratch,但是应该没有人搭建好后当主力系统用
回复

使用道具 举报

     
发表于 2023-9-30 01:56 | 显示全部楼层
nix 声明式安装程序的逻辑很好,但是个人不太能接受声明式的配置系统:同一件事情,可以在每个软件包的配置文件里做,也可以在 configuration.nix 里做,这事太纠结了。
另一个很反直觉的事情:nix 其实很耗资源,安装一个软件包大概需要 2-3GB 内存,我尝试在云服务器上安装 nix 结果直接爆内存
https://github.com/NixOS/nixpkgs/issues/38635, 这个 issue 还有反馈 8GB 内存被干爆了的)
我知道 nix 要索引,nix 本身也不是一个效率很高的语言,但包管理器要消耗 2-3GB 内存去安装一个包这事太 TM 反直觉了。


.
回复

使用道具 举报

 楼主| 发表于 2023-9-30 14:25 | 显示全部楼层
Magnesium 发表于 2023-9-30 01:56
nix 声明式安装程序的逻辑很好,但是个人不太能接受声明式的配置系统:同一件事情,可以在每个软件包的配置 ...

居然还有这事
我自己所有机器都是32G内存没啥这方面的感觉,也没有特意去看

至于声明式配置,确实因为非常灵活可以有很多种配置方式,我现在就是system和home分开配,一些配置比较复杂的就独立出来一个nix,倒也不是很纠结

—— 来自 S1Fun
回复

使用道具 举报

 楼主| 发表于 2023-9-30 14:32 | 显示全部楼层
QShen 发表于 2023-9-30 00:25
我觉得对于一般喜欢折腾的用户来说最终答案就是arch了,极端一点的就是gentoo

可能真的会有人尝试Linux fr ...

arch的aur确实是很吸引人,我自己也维护过一些包,包括自己做一些本地的包用yay安装也是很方便的,nix这方面目前还没有去接触,不过大部分定制软件需求用overlay已经可以实现了

—— 来自 S1Fun
回复

使用道具 举报

发表于 2023-11-18 22:35 | 显示全部楼层
云主机装nixos,结果遇到了内存不足

下次试试远程部署。
回复

使用道具 举报

 楼主| 发表于 2023-11-18 22:42 | 显示全部楼层
乔槁 发表于 2023-11-18 22:35
云主机装nixos,结果遇到了内存不足

下次试试远程部署。

好像有个colmena,但我也没用过

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-11-18 23:01 | 显示全部楼层
Magnesium 发表于 2023-9-30 01:56
nix 声明式安装程序的逻辑很好,但是个人不太能接受声明式的配置系统:同一件事情,可以在每个软件包的配置 ...

nix eval 是很耗内存,而且你这个旧的命令 nix-env 更耗内存,现在都不推荐使用。
nixos 可以在本地机器 eval、build,然后推送到远程服务器,完全不用关心内存大小。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 14:00 , Processed in 0.232978 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表