应用程序
⤟︎
This article or section is a candidate for merging with Nix ecosystem. While the scopes are different, an article with the "official tools" as its first section and "built with nix" as a further section under it may be much more fitting. Further information may be found in the relevant discussion page.
本文列出了专为 Nix 构建或基于 Nix 开发的应用程序;这构成了所谓的扩展 Nix 生态系统的清单(关于核心 Nix 生态系统,请参阅 Nix 生态系统)。
如果您正在寻找 Linux 软件/应用程序,您应该查看 软件。
非 NixOS 发行版
基于 Nix 构建的各类应用程序包括:
- not-os - 为嵌入式设备构建系统固件
基于 Nix 构建
利用 Nix 的项目。
- styx - 基于 Nix 表达式语言的静态网站生成器
- bionix - 生物信息学流水线(pipeline)管理与执行工具
- ethereum.nix - 一套 Nix 软件包与 NixOS 模块,旨在简化以太坊相关服务及基础设施的运维
- nixos-mailserver - 简单易用且功能完备的 NixOS 邮件服务器
Nix 平台
为 Nix 增加支持(例如针对额外平台或主要功能)的项目。
- nix-darwin - 适用于 Darwin 的 NixOS 模块
- musnix - 适用于 NixOS 的实时音频模块
- nixGl - 用于在 NixOS 之外运行 OpenGL 应用程序的包装器
Nix 工具
专为 Nix 生态系统构建的各类工具(例如对 Nix 核心工具的增强或替代方案)。
常规配置
- home-manager - 使用 Nix 管理用户环境的系统
- plasma-manager - 使用 Home-manager 管理 KDE Plasma
- Nixvim - 基于 Nix 模块构建的 Neovim 发行版
- nvf - 模块化、可扩展且可移植的 Neovim 配置框架
Flakes
- deploy-rs - Nix Flake 部署工具
- flake-utils-plus - Flake 模板与辅助库(是对下方 flake-utils 的扩展)
- flake-utils - 一组用于构建 Flake 的实用函数
- flake-parts - 利用模块系统简化 Nix Flakes
- snowfall - 基于 Nix Flakes,为系统、软件包、模块、Shell 环境、模板等提供统一配置方案。
归档
- narfuse - 用于将 Nix 归档 (NAR) 文件挂载为虚拟 Nix 存储的 FUSE 文件系统
集群管理
- nix-delegate - 用于分布式 Nix 构建的便捷工具
差异对比
- nix-diff - 比较 Nix 推导(derivations)
- niff - 比较两个 Nix 表达式以确定哪些属性发生了变化
- nvd - Nix/NixOS 软件包版本差异比较工具
- lix-diff - Nix/NixOS 闭包差异比较工具
依赖分析
- nix-tree - Nix derivation 的交互式依赖浏览工具
- nix-visualize - 将指定软件包的依赖关系可视化为图表
- npins - 用于管理 Nix 项目中各类依赖的简单工具
- niv - 实现 Nix 项目依赖管理的便捷工具
- Nixtamal - 实现 Nix 输入锁定的工具
Nix 语言工具
语言服务器
静态分析 / 代码检查工具
- deadnix - 移除 .nix 文件中的无用代码
- statix - Nix 编程语言的代码检查工具与建议工具
- nixf-diagnose - 代码检查工具 —— nixf-tidy(属于 nixd 项目)的命令行封装
格式化工具
软件包维护
- nix-update - 更新 Nix 软件包的瑞士军刀式工具。
- nixpkgs-review - 审查 nixpkgs 的拉取请求。
- nix-init - 根据 URL 生成 Nix 软件包。
- nixpkgs-hammering - 强制执行一系列严苛规则,旨在指出并解释 nixpkgs 软件包拉取请求中的常见错误。
调试
- dwarffs - 自动从 cache.nixos.org 获取供 gdb 使用的 DWARF 调试信息文件
- nixseparatedebuginfod - 获取供 gdb 等支持 debuginfod 的工具使用的调试符号和源文件
搜索工具
- nix-index - 快速定位包含特定文件的 Nix 软件包
- nix-du - 找出 Nix 存储中占用磁盘空间的 GC 根(gc-roots)
- nix-info - 类似于 Homebrew info 的 Nix 信息查询工具
- userscan - 扫描包含手动编译程序的目录,并将其注册到 Nix 垃圾回收器中
- nix-search-cli - 用于在 search.nixos.org 上搜索软件包的命令行工具
Shell
- nix-bash-completions - 针对
nix*命令的 Bash 自动补全功能 - nixos-shell (Mic92) - 在 Shell 中启动轻量级 NixOS 虚拟机(类似于 Vagrant)
- nixos-shell (chrisfarms) - 类似于 nix-shell,但针对 NixOS 模块;可构建版本见 此分支
- extra-container - 从命令行运行声明式 NixOS 容器;类似于 nixos-shell (chrisfarms)
其他
- nix-bundle - 将 Nix 属性打包为单文件可执行程序
- nix-user-chroot - 允许非特权用户在任意系统上安装 Nix
- nh - nixos-rebuild 的重写版本,集成了 nvd 差异对比、nix-output-manager 构建树视图以及软件包搜索等提升使用体验的功能
- nixos-cli - 一款用于轻松管理 NixOS 系统的多合一工具,整合了所有 `nixos-*` 命令的功能
Nix 运维
Nix 生态系统的运维工具:
官方
部署
- Bento - 一款 NixOS 集群管理工具,支持非全天候在线的远程系统。
- colmena - 一款 NixOS 部署工具
- comin - 一款持续从 Git 仓库拉取并进行部署的工具
- deploy-rs - 一款简单的多配置(multi-profile)Nix-flake 部署工具
- krops - 一个用于远程或本地部署 NixOS 系统的轻量级工具包
- lollypops - 一个支持并行且无状态的 NixOS 部署工具
- Morph - 一个 NixOS 部署工具
- Nixinate - 一个 Nix flake 库,提供应用输出,用于通过 SSH 管理现有的 NixOS 主机
nixos-build --target-host- Nixus - 一个实验性的 NixOS 部署工具
- wire - 一个用于部署 NixOS 系统的工具。其用法灵感来自 colmena,但它并非 colmena 的分叉。
Docker
Kubernetes
- kubenix - Kubernetes resource builder written in Nix
- nix-kubernetes - Kubernetes deployment manager written in nix
其他 Nix 实现与解析器
- hnix (Haskell,解析器与求值器)
- rnix (Rust,解析器)
- go-nix (Go,解析器与 Nix 兼容的文件哈希计算器)
- nix-idea (Java,解析器)
- lix (C++,NixOS/nix 的分叉)
- snix (Rust,CLI、求值器与存储层)
额外的非官方生态系统
使用 Nix 无需这些服务。这些服务均与 NixOS 基金会 无关。
- Cachix:即服务形式的二进制缓存。公共缓存免费,私有(需令牌访问)缓存采用订阅制。
- Hercules CI:利用无状态构建代理简化 CI 设置。开源项目免费,私有仓库按用户数订阅。
- Garnix:基于 Nix 的 CI、缓存(公测阶段)及云托管(内测阶段)服务。目前免费,但也提供商业方案。
- nixbuild.net:面向 x86_64 和 AArch64 架构的远程 Nix 构建服务。按使用量付费。
另见
- awesome-nix
- 特定语言的软件包辅助工具
- 替代软件包集
- 从他人的 NixOS 配置中获取灵感
- NixOS 软件包搜索 用于搜索 NixOS 软件包