Как установить пакеты npm в NixOS?

Как отмечено в руководстве, по умолчанию домашние папки, созданные с помощью useradd, копируют папку /etc/skel, поэтому если вы измените права на подпапку, все пользователи, созданные после входа с помощью стандартного useradd, будут иметь желаемые права. То же самое для adduser. Редактирование "UMASK" в /etc/login.defs изменит права при создании домашних папок.

Если вы хотите большей безопасности пользователей, вы можете зашифровать домашние папки и поместить ключи ssh в /etc/ssh/%u вместо /home/%u/.ssh/authorized_keys .

10
21.07.2017, 06:37
2 ответа

Существует несколько способов использования пакетов npm через nix:

Для моих личных проектов я использую nix-shell, а затем в оболочке я использую сценарии npm , чтобы предотвратить необходимость в глобальных пакетах npm (, как с gulp ). Процесс выглядит примерно так (и, вероятно, очень похож на пряжу):

$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json

Мне это подходит, поскольку ни один из моих пакетов не имеет бинарных зависимостей. В этом сообщении описывается создание файла default.nix для вашего проекта, поэтому вам не нужно указывать зависимости для каждого вызова оболочки nix -, но это необязательно.

Другой способ — использовать npm2nix:

node2nix -i node-packages.json # creates./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated

Это заставит Nix управлять всеми пакетами npm в проекте.

Может быть хорошей идеей ознакомиться с оболочкой nix -, так как попытка установить пакеты узлов / любые зависимости в вашем профиле nix (через nix -env или nox )лишает цели nix, загрязняя «глобальное» пространство имен.

20
27.01.2020, 20:00

По какой-то причине nodePackages не находится в корневом пространстве имен и не может быть найден с помощьюnix-env -qa

используйте nix-env -qaPA nixos.nodePackagesдля списка доступных пакетов.

$ nix-env -qaPA nixos.nodePackages | grep -i web
nixos.nodePackages.webdrvr                     node-webdrvr-2.43.0-1
nixos.nodePackages.webpack                     node-webpack-2.6.1

Если нужных вам пакетов нет и вы не можете создать свой собственный, попробуйте запросить их на NixOS github .

12
27.01.2020, 20:00

Теги

Похожие вопросы