Как установить пакеты конечных пользователей NPM на NixOS? - PullRequest
2 голосов
/ 29 июня 2019

Есть ли способ установить инструменты командной строки NPM на NixOS?

[root@ip-xxx-xxx-0-27:~/teros/ntrs-cli]# sudo npm i -g typescript
npm WARN checkPermissions Missing write access to /nix/store/rhikjv5vlpa6vq4qkrszinwsaz1mda7p-nodejs-8.15.1/lib/node_modules
npm ERR! path /nix/store/rhikjv5vlpa6vq4qkrszinwsaz1mda7p-nodejs-8.15.1/lib/node_modules
npm ERR! code EROFS
npm ERR! errno -30
npm ERR! syscall access
npm ERR! rofs EROFS: read-only file system, access '/nix/store/rhikjv5vlpa6vq4qkrszinwsaz1mda7p-nodejs-8.15.1/lib/node_modules'
npm ERR! rofs Often virtualized file systems, or other file systems
npm ERR! rofs that don't support symlinks, give this error.

Я предполагаю, что это только для чтения, потому что я запустил:

chown -R `whoami` nix/store/rhikjv5vlpa6vq4qkrszinwsaz1mda7p-nodejs-8.15.1

в качестве отступления, если кто-то знает, как установить Node.js версии 11 или 12 на nixos, что было бы замечательно.

Ответы [ 2 ]

1 голос
/ 29 июня 2019

Во-первых, отмените изменения разрешений (chown), которые вы сделали.Вы НИКОГДА не должны изменять права доступа к файлам в хранилище Nix (/nix/store).

Для установки пакетов NPM в NixOS используйте соответствующий пакет Nix вместо npm -g ....Пакеты NPM находятся в nodePackages "пространстве имен".

Например, чтобы установить машинопись (tsc), отредактируйте /etc/nixos/configuration.nix:

...

environment.systemPackages = with pkgs; [
  ...

  nodePackages.typescript;
]

...

Затем используйте nixos-rebuild switch to "установить пакет.

Вы можете установить Node.js таким же образом.Используйте nix search nodejs, чтобы увидеть различные версии, которые вы можете установить.

0 голосов
/ 09 июля 2019

Вы также можете установить их с обычным npm -i..., просто без параметра -g (global).

...