首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯函数式的 Linux 发行版 NixOS 发布 18.03 版

简介

NixOS 是一个独立 GNU/Linux 发行版,以独特的方式进行包和配置管理并因由此带来的种种特性而被称为「纯函数式」(见后文)。其基于 Nix 包管理器构建,采用「陈述式」的配置文件,提供原子性的更新及回滚机制,对 DevOps 友好。

改进

4 月 4 日,NixOS 发布了代号为「Impala」的 18.03 版。这一版本包含如下显著变化:

·支持 x86_64-linux 及 x86_64-darwin 平台(后者其实不是 NixOS); ·aarch64-linux 的二进制文件也已可用,但因其尚有问题待修复,故其 channel(参见 Hydra)尚不可用。

·Nix(包管理器)现在默认为 2.0 版本。

·重要系统组件版本变化:

·Linux: 4.9 至 4.14;

·glibc: 2.25 至 2.26;

·GCC: 6 至 7;

·systemd: 234 至 237。

·桌面环境版本变化:

·GNOME: 3.24 至 3.26;

·KDE plasma: 自 5.10 至 5.12。

·MariaDB 自 10.1 升级至 10.2,且成为了默认的 MySQL 实现;

·PHP 默认版本从 7.1 升级至 7.2。

此外,此版本还包含诸多其它变化。需要注意的是,此版本带来了一些兼容性问题,请在升级时仔细确认。详细信息见于其其发布记录。

此版本的支持将于 2018 年 10 月末停止,而后 18.09 版将取代这一版本。

NixOS 起初是一个研究性项目,但现在其已是一个拥有完备功能的操作系统。NixOS 旨在改进系统配置管理的方式。在现有的发行版中,升级等操作是危险的:对一个软件包进行升级可能使得其它软件包出错,对整个系统进行更新比重装系统更不可靠。用户无法安全地测试并获知对某一配置进行修改将会产生何种结果,因为用户无法对这一操作进行可靠的撤销。因此, NixOS 带着改变现状的目标出现了。

陈述式(Declarative)的系统配置模型

NixOS 的特殊之处在于其遵循「陈述式(Declarative)」系统配置模型。通过预先写好的对预期配置的说明,Nix 包管理器可以构建整个操作系统(包含内核、应用、系统包及配置文件等)。这一说明性文件遵循纯函数式的构建语言——构建新的配置不会覆盖之前的配置。

用户可以通过

在 /etc/nixos/configuration.nix 中写明其希望设备拥有的预期功能(组件)来配置 NixOS 系统。例如,如下是一个指明了需要 SSH daemon 服务的最小化系统配置:

上述命令将负责进行所有所需操作以使配置生效,其包括下载并编译 OpenSSH 以及为 SSH 服务器生成配置文件等。

更新的可靠性

采用纯函数式的包管理策略的另一个优势是,nixos-rebuild switch 命令的执行总是产生相同的结果,无论此前系统中包含了哪些包或配置文件。因此,这避免了前文中提到的问题,使得升级系统和重装系统一样可靠。

更新的原子性

NixOS 的配置管理具有事务性(Transactional)的特点:升级等配置变化是原子性的。这意味着如果更新到一个新配置的过程被中断了(例如,中途断电),系统仍然会处于一致性的状态。其只会启动至旧的或新的配置,而不会处于大多其它系统中可能出现的不一致状态(此种状态常意代表机器不再能正常启动)。

回滚

前文中提到,Nix 配置采用的纯函数式语言使得新的配置文件不会覆盖旧的配置文件。用户可以原子性地回滚到之前的配置文件。例如,在一次 nixos-rebuild switch 之后,用户对新的配置不满意,通过执行

即可完成回滚。

而且,所有旧的系统配置会自动出现在 Grub 启动菜单中,用户可以在启动时选择菜单项回滚到对应的旧配置文件。这一过程非常之快。

由 NixOS 及 Nix 的独特的配置管理策略带来的其它特性以及对 NixOS/Nix 工作原理的简要描述见于 NixOS.org 的关于页面。

关于

NixOS 主页:

https://nixos.org/;

下载地址及安装指引:

https://nixos.org/nixos/download.html。

Facebook:

https://facebook.com/openingsource

Twitter: https://twitter.com/openingsource

Google + :

https://google.com/+OpeningSource

微信公众号id: openingsource

微博:

https://weibo.com/openingsource

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180405G169MA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券