美文网首页
软件包管理神器—Nix

软件包管理神器—Nix

作者: 雨中尘埃 | 来源:发表于2018-11-08 22:41 被阅读0次

背景

在Linux环境中我们安装软件,大多数场景会遇到依赖关系不正确导致无法安装;而无(bu)能(gang)为(luan)力(dong)升级某些组件,比如glibc等系统核心组件。
Docker的出现解决了上面尴尬的场景,只要我们将docker安装好,那么软件依赖问题便不是问题啦,找到需要的image即可。
今天介绍的是一个比Docker更加轻量级的,从函数式思维(不可变性)出发解决软件包依赖问题的工具——Nix。

简介

Nix是Linux和其他Unix系统的强大包管理器,使包管理可靠且可重复。 它提供原子升级和回滚,并行安装多个版本的软件包,多用户软件包管理以及轻松设置构建环境。

官网:https://nixos.org/nix/

核心思想

将软件依赖的软件、库等物件打包,一起下载使用。

优点

  • 从操作系统层面切入,解决软件包依赖问题
  • 方便管理,升级、降级、卸载、安装相互不影响
  • 预编译,一处运行,处处运行
  • 可以构建任何语言依赖的环境
  • 多平台支持

缺点

  • 自带依赖库会导致软件包安装需要的空间会增大

安装及使用

官网文档很详细
https://nixos.org/nix/manual/

小技巧

目前(2018.11)国内无镜像站点,所以下载速度很慢,体验极差。
经过一番尝试,对于较多机器的使用者,可以将某一台机器作为代理,来缓存已经下载的包。

方法如下:

  1. 建立代理服务
    1.1 安装nix,方法参考官方文档
    1.2 安装nix-server并启动
nix-env -i nix-server
nix-serve -p 8080
  1. 在其他机器上添加~/.config/nix/nix.conf文件,内容如下
binary-caches = http://10.10.10.10:8080/ https://cache.nixos.org/
require-sigs = false

这里binary-caches是指定cache服务器
require-sigs是关闭签名检验,自建代理设置签名过程较麻烦

  1. 接下来想在每个机器上安装的软件,先在代理服务器上安装下,其他机器走本地网络就很快了。

相关文章

  • 软件包管理神器—Nix

    背景 在Linux环境中我们安装软件,大多数场景会遇到依赖关系不正确导致无法安装;而无(bu)能(gang)为(l...

  • [极客技术]常用小工具整理

    操作系统: nixos/redox/arch/gentoo软件包管理: nix容器化: docker进程管理: s...

  • 学习小组Day3笔记--lqp

    软件安装 安装之前-软件集合神器-conda 一个开源的软件包管理系统和环境管理系统 常用命令 conda lis...

  • Mac软件包管理神器Homebrew

    概念 Mac的软件包管理工具,类似于linux的apt-get,能在mac中方便地安装软件或者卸载软件。 安装Ho...

  • Mac上配置React Native

    1. MAC开发必备神器,Homebrew(必装)Homebrew是Mac OSX上的一个软件包管理工具,能在Ma...

  • Mac上软件包管理神器--Homebrew

    什么是Homebrew linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,...

  • 全栈工程师学习第四天笔记

    一、软件包管理 1、apt-get:软件包管理: (1)查看本地主机Cache中的软件包安装源: apt-cach...

  • Mysql 的管理

    Mysql 的管理 *nix os 下配置文件一般存放位置 Default options are read fr...

  • 玩转 :docker-ce

    一、软件安装: Ubuntu的安装 MacOS的安装 Windows的安装 *NIX启停管理: service d...

  • RPM包管理

    RPM包管理 1、软件包安装 2、软件包升级 3、软件包卸载 4、软件包查询 5、软件包校验 1、软件包安装 rp...

网友评论

      本文标题:软件包管理神器—Nix

      本文链接:https://www.haomeiwen.com/subject/evmgxqtx.html