Skip to content
Zerlei
Main Navigation homeblogsnavigation

Appearance

Sidebar Navigation

linux

Kwin平铺窗口管理

Nix-包管理的最终解决方案

konsole

linux修改键位映射

nix_os

1-whynix

2-nixlang

plasma桌面

sudo继承普通用户的PATH

ubuntu一次网络故障排查记录

why_linux

中文输入法问题

使用musicfox听网易云音乐

在linux上玩游戏

安装完成qt之后缺少opengl库

终极的zsh

轻量云服务器安装opensusetumbleweed

On this page

Introduction

版本管理,管理两类软件:1. 使用的工具例如cmake,clang 2.项目依赖的包,例如boost,opencv。 工具和系统相关,项目依赖的包通常与项目对应的包管理工具相关,比如npm vcpkg。c/c++会特殊一点,它们的开发依赖包,有很多一部分是系统管理的,从源码构建软件是开源系统的一个常见的特色。

Nix 是开发环境问题的最终解决方案。

为什么不使用Docker? ​

Docker的定位是应用程序的打包和部署,而不是开发环境的管理。

虽然有devcontainer,但是它有以下问题:

  • 描述一个开发环境是复杂的,Dockerfile+bash 比不上Nix lang 的表达能力。
  • 只是项目依赖的包需要保持特定的版本,一些工具不需要,比如neovim,我想用最新的版本,Nix 可以灵活的处理这种需求,但Docker就困难。

为什么不使用NixOS,而是继续使用openSUSE tw? ​

操作系统需要承载很多事情,开发只是一部分。NixOS 相比于滚动发行的openSUSE tw,获取一些软件的新特性会慢一些,而且作为一个系统的使用者,我不想操心过多的依赖,如果一个软件不在Nix 包管理的仓库里,自己手动处理依赖会很麻烦,比如微信和qq。

可能后面我会改变想法。

Pager
Previous pageKwin平铺窗口管理
Next pagekonsole