V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ryan4yin  ›  全部回复第 11 页 / 共 20 页
回复总数  400
1 ... 3  4  5  6  7  8  9  10  11  12 ... 20  
2023-07-12 19:47:57 +08:00
回复了 ryan4yin 创建的主题 Linux NixOS 与 Flakes | 一份非官方的新手指南
@ZedRover 大多数人的 nix-config 仓库 README 都写得挺清楚的,最简单直观的方法是:

1. 首先用官方 ISO 镜像安装好一台 NixOS 主机,图形化操作跟 Ubuntu 之类的其他发行版没啥区别。你要是熟悉命令行也可以用命令行。
2. 安装完进入新系统后,先修改 /etc/nixos/configuration.nix 安装 git
3. 用 git clone 一个 nix-config 仓库到这台新主机上,然后执行 `sudo nixos-rebuild switch --flake .#hostname`. 部署命令中的 hostname 是用于选择配置的,比如我的 nix-config 目前包含了 5 台机器的配置,通过该参数就选择其中之一进行部署。

完毕,就这三步。
2023-07-09 17:13:40 +08:00
回复了 ryan4yin 创建的主题 Linux NixOS 与 Flakes | 一份非官方的新手指南
@tywtyw2002 确实,官方没有文档明确说清楚了 Nix, NixOS, Nixpkgs, 以及新旧 CLI 之间的关系。
@lucifer9 @huangmingyou 如果单纯说 NixOS 跟自己写脚本以及用 Ansible 、Dockerfile 的区别,我暂时想到的是,NixOS 把环境的「可复现性」提升了一个级别,另外它的「声明式配置」也是前面几种方法所没有的。

先说下「可复现性」,Ansible 、Dockerfile 、自己写脚本,实质上都存在不可复现的安全隐患。
比如说你会用 `apt install curl` 来安装一个 curl 包,用 `pip isntall xxx` 安装一个 python 包,一个月前在 ubuntu 20.04 上跑它,跟现在跑它,下载到的包版本是可能会更新的。这通常不会导致啥问题,但是一旦出现不兼容变更的更新,那麻烦就大了。
而 NixOS 的 Flakes 功能,跟 go.sum/package-json.lock/cargo.lock/poetry.lock 一样,不需要手动做任何配置,它默认就会通过 hash 值、git commit 等手段完全锁定所有依赖包的版本号与 hash id ,这就极大地提升了环境的可复现性。

再说「声明式配置」,声明式配置工具将底层的复杂操作全部封装在了它内部,只给用户提供了简洁且必要的声明式参数。我想用过 terraform/kubernetes 的人都应该能体会到它的好处,通过改几行配置,就可以简单地更换系统的各种组件,或者直接创建并配置好一整套包含 k8s/mysql/redis 在内的云上微服务系统。如果自己写脚本或者用 ansible 去做,那这会是个大工程,要达到众多贡献者维护的 terraform 等工具的稳定性,更不知道要花多少精力。
@lucifer9 @huangmingyou #24 #28 我一起回复下吧,用传统 Linux 发行版、脚本或者 ansible 等工具,当然都能实现同样的功能,毕竟这么多年业界都是这么用的。

而 NixOS / Fedora SilverBlue / Android 以及其他类似的发行版,它们或多或少拥有的,比这些传统方法更有优势的特性就在于本文的标题:

不可变文件系统、无状态、声明式配置

如果各位有用过帖子前面提过的 Docker/Kubernetes/Terraform/Pulumi 这些现代化运维工具,应该会比较能理解这一点。
@huangmingyou NixOS 只负责维护系统状态,数据状态还是需要 lvm snapshot 来维护。
@lucifer9 理解,你自己写脚本安装软件、恢复配置文件,恢复整个环境,当然也完全可行,毕竟很多运维都是这么干的。
接前文 #22 ,NixOS 有这么一份可解释的、声明式的「知识」的好处在于:

1. 对系统做任何修改都很方便、安全、干净
2. 可以很方便地分享给别人,其他人也能通过简单的配置内容审查,确定你的配置是无害的
@lucifer9 #19 哦漏了一点,你用系统自动快照来管理系统状态。

这里的区别在于,系统快照的内容是不可复现的,快照内容不包含如何从零构建这个快照的「知识」,是不可解释的。

而 NixOS 的配置是一份从零构建出一个一模一样的 OS 的「知识」,是可解释的,而且可以通过简单几行命令就自动完成这个构建。NixOS 配置本身既是一份记录你的 OS 都做过哪些变更的文档,也是用于自动构建出这个 OS 的配置。
@lucifer9 #19 单纯从 dotfiles 管理的角度看,我也觉得没啥区别。
但是 NixOS 作为一个 OS ,它的配置显然不仅仅只能管 dotfiles ,它的配置文件可以管理整个操作系统的大部分状态。
2023-07-06 19:19:29 +08:00
回复了 yiyu1211 创建的主题 Kubernetes 求各位的 K8S 或 容器的技术博客
我贴下我写过的云原生相关内容:

https://thiscute.world/series/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%9B%B8%E5%85%B3/
2023-07-06 18:42:42 +08:00
回复了 hahastudio 创建的主题 Evernote 传闻:几乎所有的 Evernote 剩余员工均已被解雇
看来得考虑迁移数据了
@vcn8yjOogEL 想了下还真是,Android 包老早就是不可变了,还带签名校验,灯下黑了我。
@chengleqi 是的,简单的说,NixOS 为了极致的系统管理能力,将系统的所有文件都放在了 /nix/store 里面,并且设置为 readonly 避免被用户修改。
在系统启动时,所有 FHS 相关目录才会被动态创建,比如 /bin /usr/bin /var /tmp 等文件夹,这些文件夹中的初始内容全都是指向 /nix/store 的 symlink.

也就是说 NixOS 不遵循 Linux FHS 规范,但是通过 symlink 一定程度上兼容了最核心的一些 FHS 路径,使系统能正常运行。

但是这导致用户无法在 NixOS 上执行任何其他系统上构建的程序,因为绝大部分程序都依赖的 glibc 不在标准路径下。
解决方法有很多,源码包可以通过在 NixOS 上重新编译一份来解决,二进制包可以通过 patchelf 修改动态链接库路径,也可以模拟一个 FHS 环境来运行这些程序。详见:

https://nixos-and-flakes.thiscute.world/zh/best-practices/run-downloaded-binaries-on-nixos
牛逼,先 star 了
@codehz #2 我主要是考虑开发者群体,有能力理解声明式配置,可复现的开发环境对开发也有很大的好处。

@duke807 #1 没用过 Gentoo ,不过 NixOS 跟它有一点一样,就是都是源码发行版。

@crz #3 LFS 主要意义在于学习 Linux ,感觉没啥实用价值,没见过几个人长期自己折腾 LFS 当桌面的,太 Geek 了.
2023-07-06 15:05:41 +08:00
回复了 thinkm 创建的主题 程序员 为啥我很少回去翻我的笔记?
@aitianci #34 有些笔记软件专门解决这个问题,Obsidian/Logseq 感觉挺出名的,通过双链关联。
2023-07-06 15:01:59 +08:00
回复了 thinkm 创建的主题 程序员 为啥我很少回去翻我的笔记?
再接前文 #33 ,我写笔记很少直接 COPY 别人写的内容,因为这谈不上真正理解,也谈不上是自己的笔记。
我对自己笔记的要求是,要有自己见解,不能直接 COPY ,单纯 COPY 来的笔记是没有意义的,徒增一堆废料。

写笔记,初期可以是草稿,但是如果想将内容沉淀下来,就需要花更多的精力来完善。草稿是指「只有当时的自己能看懂的内容」,而能拿的出手的笔记,那得是「一个不懂这个知识点的人也能理解的内容」。
2023-07-06 14:51:35 +08:00
回复了 thinkm 创建的主题 程序员 为啥我很少回去翻我的笔记?
接前文 #32 ,我如果不把学过的东西写到笔记里,那隔一段时间又想折腾的时候,经常会发现相关知识点或流程都忘差不多了,又要从零再折腾一遍,这很浪费时间。
如果你觉得你的笔记没啥用,我觉得可能的原因会有:

1. 你的工作内容变化不大,涉及的新知识有限。简单的说就是用到的都是热知识,没啥冷知识,那确实靠脑子就 OK ,不需要啥笔记。
2. 你写笔记的方法有问题,比如前面老哥说的,你记的只是写草稿,从没想过要将它变成可读性更好的内容。其实草稿并不是没有价值,如果草稿能变成一篇详略得当的教程,那就很有价值了。但是如果草稿一直维持在草稿的状态,那就确实没啥价值,可能过段时间你自己都看不懂这草稿了。

我当然也有些回顾比较频繁的笔记,这种笔记主要是一些 Linux 命令笔记,比如因为工作原因我抓包比较多,下面这篇博客我经常一天看好多遍( copy tcpdump 抓包命令):

https://thiscute.world/posts/tcpdump-and-wireshark/#tcpdump
1 ... 3  4  5  6  7  8  9  10  11  12 ... 20  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5519 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 03:24 · PVG 11:24 · LAX 19:24 · JFK 22:24
♥ Do have faith in what you're doing.