😽

nixでyarn(corepack)

2022/09/30に公開

nixでinstallしたnodejsを使おうとするとcorepack enableで失敗した。

$ corepack enable
Internal Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/nix/store/dy8pai2l7g6rjrlsh9jp68lzbw0z846k-nodejs-18.9.1/bin/pnpm'
Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/nix/store/dy8pai2l7g6rjrlsh9jp68lzbw0z846k-nodejs-18.9.1/bin/pnpm'

以下を参考にshell.nixに書いて、yarnを利用可能にしてみた。

https://discourse.nixos.org/t/nix-shell-how-to-run-corepack-enable-to-install-modern-yarn/18791/4

{ pkgs ? import <nixpkgs> {} }:

let
  corepack = pkgs.stdenv.mkDerivation {
    name = "corepack";
    buildInputs = [ pkgs.nodejs-18_x ];
    phases = [ "installPhase" ];
    installPhase = ''
      mkdir -p $out/bin
      corepack enable --install-directory=$out/bin
    '';
  };
in pkgs.mkShell {
    packages = [
      corepack
    ];
  }

Discussion