1、AutoInstall.sh 权限 2、data目录权限 himmel@H10001:~/Proj/nix-ivorysql/autoinstall_script$ ls -ld “/home/himmel/Proj/nix-ivorysql/build/data” && ls -l “/home/himmel/Proj/nix-ivorysql/build/data” drwxr-x--- 2 ivorysql ivorysql 4096 Oct 28 14:05 /home/himmel/Proj/nix-ivorysql/build/data ls: cannot open directory ‘/home/himmel/Proj/nix-ivorysql/build/data’: Permission denied


sh <(curl -L https://nixos.org/nix/install)
vi ~/.config/nix/nix.conf
experimental-features = nix-command flakes

或
nix --extra-experimental-features "nix-command flakes" develop


运行 echo "$IN_NIX_SHELL":如果输出 pure 或 impure(具体取决于 nix develop 是否使用 --impure),说明当前 shell 是由 Nix devShell 启动的;空字符串表示不在环境中。

  - 方案一(推荐,多用户模式):在大多数 Linux/macOS 上执行

    sh <(curl -L https://nixos.org/nix/install) --daemon
    该模式会创建专用的 nix-daemon 用户,利于多个账号共享缓存;若系统开启了 SELinux 或使用非 systemd init,需要额外调整(官方安装脚本会给出提示)。
  - 方案二(单用户模式):同一脚本去掉 --daemon。优点是安装简单、不改系统服务;缺点是仅当前用户可用且可能无法写入 /nix/var 被多账户共享,适用于 WSL 或不想动系统守护进程的场景。

  启用 Flakes 功能

  - 安装完成后在当前用户的 ~/.config/nix/nix.conf(没有就创建)加入:

    experimental-features = nix-command flakes
  - 退出终端并重新登录,让 nix 命令的环境变量生效。

  获取项目开发环境

  - 切换到仓库根目录 cd /home/himmel/Proj/nix-ivorysql/autoinstall_script。
  - 首次运行 nix develop 会下载依赖(耗时取决于网络和缓存)。完成后 shell 提示符会变化,说明已经进入 flake 定义的开发环境。
  - 在该 shell 中即可执行 bash AutoInstall.sh 或继续编译调试;退出时使用 exit。

  验证与后续建议

  - 可通过 nix --version 与 which gcc(进入 nix develop 后)确认是否从 /nix/store 读取工具链。
  - 若处在企业网络或无公网的环境,可以考虑配置 Cachix (https://cachix.org) 或内部代理;否则初次下载会比较慢。
  - 需要我帮你在当前机器上添加 nix.conf 或检查安装结果吗?