Клонирование процесса сборки: Операция не разрешена при использовании канала обновления Nix (под Linux)

Клонирование процесса сборки: Операция не разрешена при использовании канала обновления Nix (под Linux)

Я использую Arch Linux 4.19.15-1-lts #1 SMP Sun Jan 13 13:53:52 CET 2019 x86_64 GNU/Linux. У меня также установлен Nix: nix-env (Nix) 2.2.

У меня никогда не было проблем до недавнего обновления до версии 2.2. Я всегда делаю обновления/обновления с помощью этих двух шагов:

$ nix-channel --update
...
$ nix-env --upgrade
...

...но после недавнего 2.2обновления я больше не могу найти способ заставить nix-channel --updateего работать. Я постоянно получаю эти ошибки:

error: cloning builder process: Operation not permitted
error: unable to start build process
error: program '/nix/store/876x7a35qbn3q062b6zcz6va88m0990d-nix-2.2/bin/nix-env' failed with exit code 1

...даже если я откачу предыдущую операцию(и):

$ nix-channel --update 
unpacking channels...
error: cloning builder process: Operation not permitted
error: unable to start build process
error: program '/nix/store/876x7a35qbn3q062b6zcz6va88m0990d-nix-2.2/bin/nix-env' failed with exit code 1
$ nix-channel --rollback 
switching from generation 40 to 39
$ nix-channel --update 
unpacking channels...
error: cloning builder process: Operation not permitted
error: unable to start build process
error: program '/nix/store/876x7a35qbn3q062b6zcz6va88m0990d-nix-2.2/bin/nix-env' failed with exit code 1

Вот что у меня в списке обновлений:

$ nix-channel --list 
nixpkgs https://nixos.org/channels/nixpkgs-unstable

...и в итоге я даже не могу это удалить:

$ nix-channel --remove nixpkgs 
uninstalling 'nixpkgs-19.03pre165281.7d864c6bd63'
error: cloning builder process: Operation not permitted
error: unable to start build process
error: program '/nix/store/876x7a35qbn3q062b6zcz6va88m0990d-nix-2.2/bin/nix-env' failed with exit code 1

Я хотел бы избежать переустановки.


ОБНОВЛЯТЬ

Я не мог дождаться! О:)

Я пошел дальше и удалил текущую установку... и когда я сделал новую установку, я получил по сути тот же самый результат:

$ sh <(curl https://nixos.org/nix/install) --no-daemon 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2476  100  2476    0     0   5417      0 --:--:-- --:--:-- --:--:--  5406
downloading Nix 2.2.1 binary tarball for x86_64-linux from 'https://nixos.org/releases/nix/nix-2.2.1/nix-2.2.1-x86_64-linux.tar.bz2' to '/tmp/nix-binary-tarball-unpack.n5vqvsi4Uq'...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 22.5M  100 22.5M    0     0  4016k      0  0:00:05  0:00:05 --:--:-- 4377k
Note: a multi-user installation is possible. See https://nixos.org/nix/manual/#sect-multi-user-installation
performing a single-user installation of Nix...
directory /nix does not exist; creating it by running 'mkdir -m 0755 /nix && chown x80486 /nix' using sudo
[sudo] password for x80486: 
copying Nix to /nix/store.................................
initialising Nix database...
Nix: creating /home/x80486/.nix-profile
installing 'nix-2.2.1'
error: cloning builder process: Operation not permitted
error: unable to start build process
/tmp/nix-binary-tarball-unpack.n5vqvsi4Uq/unpack/nix-2.2.1-x86_64-linux/install: unable to install Nix into your default profile

...так что, похоже, в целом что-то происходит с Linux (или конкретно с дистрибутивом, который он использует) и Nix.

решение1

Следуя предложению вэтот комментарийрешает проблему:

sysctl kernel.unprivileged_userns_clone=1

решение2

Nix использует довольно много флагов для клона, в основном для отсоединения некоторых пространств имен Linux. Я предполагаю, что ваша система не поддерживает некоторые из них длянепривилегированныйпроцессы. Я думаю, что некоторые дистрибутивы выбрали это из соображений безопасности.

Связанный контент