当前位置: 首页 > news >正文

初识NixOS

初识 NixOS

什么是 NixOS

NixOS 是一个基于 Nix 包管理器的 Linux 发行版,它以其独特的声明式配置和不可变系统设计而闻名。与传统 Linux 发行版不同,NixOS 采用了一种全新的方式来管理系统配置和软件包。

核心特点

1. 声明式配置

NixOS 的核心思想是声明式配置。你只需在配置文件中声明系统的期望状态,Nix 会自动处理所有依赖关系并构建出完整的系统。

# /etc/nixos/configuration.nix
{ config, pkgs, ... }:{imports =[ # Include the results of the hardware scan../hardware-configuration.nix];boot.loader.grub.enable = true;boot.loader.grub.device = "/dev/sda";networking.hostName = "my-nixos";services.xserver.enable = true;services.xserver.desktopManager.gnome.enable = true;environment.systemPackages = with pkgs; [vimgitfirefox];users.users.myuser = {isNormalUser = true;extraGroups = [ "wheel" ];};
}

2. 不可变系统

NixOS 系统文件是不可变的,所有修改都通过重新构建系统实现。这意味着:

  • 系统永远不会进入不一致状态
  • 可以轻松回滚到之前的配置版本
  • 多个配置版本可以共存

3. 原子升级与回滚

使用 nixos-rebuild 命令进行系统升级:

# 升级系统
sudo nixos-rebuild switch --upgrade# 回滚到上一个版本
sudo nixos-rebuild switch --rollback# 列出所有可用的系统配置
nix-env -p /nix/var/nix/profiles/system --list-generations

4. 强大的包管理

Nix 包管理器提供了:

  • 依赖隔离:每个包都有独立的依赖环境
  • 多版本并存:可以同时安装同一软件的多个版本
  • 可重现构建:相同的 Nix 表达式总是产生相同的结果
# 安装包
nix-env -iA nixos.firefox# 安装特定版本
nix-env -iA nixos.hello# 搜索包
nix search hello

安装 NixOS

下载镜像

从 NixOS 官方网站 下载最新的安装镜像。

创建安装介质

# 使用 dd 写入 USB 驱动器
sudo dd if=nixos-23.11-x86_64-linux.iso of=/dev/sdX bs=4M status=progress

安装步骤

  1. 启动安装介质,进入 live 系统
  2. 分区:使用 cfdiskgdisk 创建分区
  3. 格式化分区:通常使用 ext4 文件系统
  4. 挂载分区:挂载根分区到 /mnt
  5. 生成配置
sudo nixos-generate-config --root /mnt
  1. 编辑配置
sudo nano /mnt/etc/nixos/configuration.nix
  1. 安装系统
sudo nixos-install
  1. 设置 root 密码并重启系统

基本操作

配置管理

# 编辑系统配置
sudo nano /etc/nixos/configuration.nix# 应用配置(切换到新配置)
sudo nixos-rebuild switch# 仅构建不切换
sudo nixos-rebuild build# 测试配置(不切换)
sudo nixos-rebuild test# 在下次启动时应用
sudo nixos-rebuild boot

用户包管理

# 安装用户包
nix-env -iA nixos.vim# 列出已安装的包
nix-env -q# 卸载包
nix-env -e vim# 更新用户环境
nix-env -u

清理旧版本

# 清理旧的系统配置
sudo nix-collect-garbage -d# 清理用户环境中的旧包
nix-collect-garbage

NixOS 的优势

可靠性

  • 配置错误不会破坏系统
  • 可以随时回滚到之前的工作状态
  • 系统更新不会导致依赖冲突

可重现性

  • 相同的配置文件在任何机器上产生相同的结果
  • 便于团队协作和配置共享
  • 适合服务器部署和基础设施即代码

灵活性

  • 支持多种桌面环境(GNOME、KDE、XFCE 等)
  • 易于定制和扩展
  • 强大的表达式语言支持复杂配置

学习资源

  • 官方文档: nixos.org/learn.html
  • Nix 表达式手册: nixos.org/manual/nix/stable
  • NixOS Wiki: nixos.wiki
  • 社区 Discourse: discourse.nixos.org

你可以查找的

  • Nix Options: Options Finder
  • Nix Packages: Packages Finder

总结

NixOS 是一个具有革命性设计理念的 Linux 发行版。虽然学习曲线较陡,但其带来的可靠性、可重现性和灵活性使其成为开发者和系统管理员的理想选择。如果你厌倦了传统 Linux 发行版的配置混乱和依赖问题,不妨尝试一下 NixOS。

附加信息

使用TRAE生成,若有误,请指正。

http://www.jsqmd.com/news/847333/

相关文章:

  • 10个内部工具批量交付实战:Vibe Coding 的 4 步自动化流水线搭建
  • Perplexity播客搜索效率提升300%的实战方法论(仅限技术决策者内部流通版)
  • 医生必备的AI搜索新范式,Perplexity如何在3秒内过滤92%低质医学信息?
  • 软件工程视角的Qt单元测试全景报告:从基础原理到企业级工程实践
  • ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本静音高效运行
  • 多元美学与在地表达:2026广元装修风格趋势深度解析 - 优家闲谈
  • 英雄联盟录像编辑神器:用League Director制作专业游戏视频
  • 别再让日志拖慢你的服务器!深入对比C++同步与异步日志的性能差异与选型指南
  • 5步快速掌握Depth Anything V2:单目深度估计终极指南
  • OBS多路推流技术架构深度解析:构建高效同步直播解决方案
  • 抖音无水印视频下载效率革命:3种智能方案彻底告别水印困扰
  • 警惕过度设计:从C语言务实哲学看软件开发的灵活性与复杂性平衡
  • 2025年终极指南:LinkSwift网盘直链下载助手完整使用教程
  • 从‘滋滋’声到过认证:我的Buck电源EMI整改实战记录(附RC/RL缓冲电路计算)
  • MATLAB R2021a离线安装硬件支持包保姆级教程(解决CMSIS下载失败问题)
  • 口袋实验室实战:用Digilent AD2/3精准测绘二极管IV曲线,告别纸上谈兵
  • QT项目里集成FastDDS通信库,从ROS2移植到智能驾驶的完整实战(附避坑指南)
  • OpenClaw 架构解析:AI 的工具箱是怎么工作的
  • ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费工具
  • 运营商集体变了:从卖流量到卖Token,运营商算力生意破局
  • 【Perplexity症状查询功能深度解密】:20年AI医疗系统架构师亲授5大隐藏能力与3个临床误用雷区
  • 2026 青岛优质 GEO 公司深度解析:五大专业机构实力全景评测 - GEO优化
  • 从防御者视角看theHarvester:手把手教你监控自己的公司域名,提前发现信息泄露
  • 在 Taotoken 模型广场中根据任务需求与预算快速筛选合适的大模型
  • 关于以“可持续商业化发展”为目标切割部分群体和停止服务的声明
  • FFXIV TexTools终极指南:如何从零开始掌握游戏模组制作与个性化定制
  • OpenMV视觉数据怎么传?手把手教你用Python给STM32发坐标(含帧协议设计)
  • 用矿卡P104-100在PVE 8.0上跑AI?保姆级显卡直通避坑指南
  • C语言printf保留小数输出,你真的以为它会四舍五入吗?一个测试让你看清真相
  • 2026年5月贵阳旅游租车/旅游包车/周边旅游包车/纯玩包车/长途包车公司哪家好,认准贵州鑫途顺旅游 - 2026年企业推荐榜