含有标签 NixOS 的文章

插图

NixOS 系列(三):软件打包,从入门到放弃

NixOS 系列文章目录:NixOS 系列(一):我为什么心动了NixOS 系列(二):基础配置,Nix Flake,和批量部署NixOS 系列(三):软件打包,从入门到放弃NixOS 的一大特点是,系统所有的二进制程序和库文件都在 /nix/store 目录中,由 Nix包管理器管理。这也意味着,NixOS 不符合Linux 的 FHS 标准,它的 /lib 或 /lib64 目录下不存在类似 ld-linux-x86-64.so.2 之类的库文件动态加载器,更不存在 libc.so 之类的库文件。因此,除非静态链接,否则为其它 Linux 下编译的二进制文件将完全无法在 NixOS 下运行。所以,要在 NixOS 上使用尚不存在于 Nixpkgs 仓库中的软件,最佳方案是自己用 Nix 语言写一份打包脚本,给这个软件打一个包,然后把打包定义加入 configuration.nix 中,从而安装到系统上。关于 NixOS 的软件打包,有三个好消息和两个坏消息。好消息是:Nixpkgs,也就是 NixOS 的软件仓库,提供了大量的打包自动化函数,...
插图

NixOS 系列(二):基础配置,Nix Flake,和批量部署

NixOS 系列文章目录:NixOS 系列(一):我为什么心动了NixOS 系列(二):基础配置,Nix Flake,和批量部署NixOS 系列(三):软件打包,从入门到放弃这是我的 NixOS 系列文章的第二篇,主要介绍以下内容:NixOS 配置文件的基本格式和修改配置的方法 Nix 包管理器的 Flake 功能 Deploy-RS 部署工具本文假设你已经按照 NixOS 官方安装教程装好了一个系统。更新日志2021-12-18:NixOS 21.11 仍没有默认启用 Flake 功能,更新文章中相关说明。基础配置在 NixOS 的安装过程中,nixos-generate-config 工具在 /etc/nixos 目录下生成了一份初始配置文件,configuration.nix 和 hardware-configuration.nix 两份文件。我们先不管 hardware-configuration.nix 这份文件,它是根据系统的硬件设备、硬盘分区等自动生成的配置文件。先打开 configuration.nix:# 为缩短长度,我去掉了配置文件中所有的注释{ config, pkgs, ... }:{ imports = [ ....
插图

NixOS 系列(一):我为什么心动了

NixOS 系列文章目录:NixOS 系列(一):我为什么心动了NixOS 系列(二):基础配置,Nix Flake,和批量部署NixOS 系列(三):软件打包,从入门到放弃我正在将我的各个服务器逐步从 Devuan Linux 迁移到 NixOS。NixOS 是一个以 Nix 配置文件为中心的 Linux 发行版,通过 /etc/nixos 的一份配置文件安装配置整个系统。这份配置文件指定了系统上的所有配置文件和软件包配置,因此你用同一份配置文件装出来的一定是一模一样的操作系统。Nix 语言是图灵完备的,所以理论上无论你用的软件配置多复杂,你都能用 Nix 生成对应的配置文件。Nix 包管理器的另一大特性是 Reproducible Build(可重复构建)。NixOS 的软件包也是用 Nix 配置文件指定的,而 Nix 包管理器可以保证,(在软件本身不故意对抗的情况下),用同一份配置文件(包括源码版本,编译命令等)编译出的软件包功能完全一致,在绝大多数情况下连 MD5、SHA256 等哈希值都是一样的。...