使用nix配置环境
前言 在很多使用场景里,单单 py jdk 的环境冲突就够烦了。尤其是在桌面linux发行版上,各种层层相扣的依赖 在本文里 需要基本的linux知识 使用nix语言配置环境(使用nixos更棒了) 正文 在 nixos…
前言
在很多使用场景里,单单py jdk的环境冲突就够烦了。尤其是在桌面linux发行版上,各种层层相扣的依赖
在本文里
- 需要基本的linux知识
- 使用nix语言配置环境(使用nixos更棒了)
正文
在nixos上配置环境
临时配置
创建一个包含jdkxx的新终端进程,退出exit后即消失
nix-shell -p jdk21
nix-shell -p jdk25
Home Manager 与 Nix Profile
意义不明的方法 bushi,为什么不去使用flake呢
Nix Profile
nix profile install nixpkgs#jdk21
home Manager
直接在你的home.nix加入就好
home.packages = with pkgs; [
jdk21
jdk25
];
在其他发行版上
安装nix
先使用包管理推荐
多用户
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.cn/nix/install) --daemon
当前用户安装
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.cn/nix/install) --no-daemon
Arch Linux
包管理默认多用户安装
sudo pacman -S nix
加入用户组,不同发行版的nix用户组不同,先确认cat /etc/group
sudo gpasswd -a $USER nixbld
启用nix-daemon
sudo systemctl enable --now nix-daemon
添加一个channel,并更新,网络环境不好的,使用镜像源
nix-channel --add https://channels.nixos.org/nixpkgs-unstable
nix-channel --update
nix-channel --add https://mirrors.ustc.edu.cn/nix-channels/nixpkgs-unstable
nix-channel --update
添加缓存服务器到/etc/nix/nix.conf
substituters = https://mirrors.ustc.edu.cn/nix-channels/store https://cache.nixos.org/
重启一下nix-daemon,就可以使用nix包管理了
然后最简单的,一般安装到/nix/stora目录下
nix-env -iA nixpkgs.cowsay
删除
nix-enc --uninstall cowsay
nix-shell -p jdk26
此处插入图片
项目级别环境
创建shell.nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [
pkgs.jdk21
pkgs.gradle
pkgs.maven
];
shellHook = ''
echo "jdk21"
java -version
'';
}
如果需求没有使用nix的多个软件包,个人感觉到这里就好了。在arch上再写一次flake有点舍本逐末
参考
原始笔记:linux/nix/使用nix配置开发环境.md