Cloud2016 主要是维护这么多依赖有点麻烦,我在维护我的书籍环境的时候,累,软件版本依赖和升级的问题一大堆。我想一劳永逸,文章一旦合并就不要再管了,它也不会和未来的其它文章有软件依赖关系,各篇文章运行环境一定是独立的。关于软件工具介绍的文章,即使内容过时也不在原地方更新。
我最近在学Nix,用 Nix 可能解决你的问题。它主打reproducible 和 declarative。reproducible就是输入一样(安装啥软件),输出就一样一样(构建出来的软件)。declarative 就是用文件定义需要构建啥软件。
也就是说用文件定义好需要安装的软件和版本,构建成功的话,你以后用那个配置文件就一定会构建出一样的软件。为了保证reproducible ,你要用 flakes 功能。
举个例子,假如你用这几个 nix 文件,你在你的电脑可以构建出和我一样版本的软件。解决了「It works on my machine」的问题(不过我没放 local.nix,真拿来用应该会失败)。
我夸得可能不是很好,这本书夸得比较好: https://nixos.org/guides/nix-pills/index.html
看你挺推荐 docker,你应该对这个视频感兴趣。
Matthew Croughan - Use flake.nix, not Dockerfile - MCH2022