Proceso de creación de clonación: operación no permitida cuando se utiliza el canal de actualización Nix (en Linux)

Proceso de creación de clonación: operación no permitida cuando se utiliza el canal de actualización Nix (en Linux)

Yo uso ArchLinux 4.19.15-1-lts #1 SMP Sun Jan 13 13:53:52 CET 2019 x86_64 GNU/Linux. También tengo instalado Nix: nix-env (Nix) 2.2.

Nunca he tenido ningún problema hasta la reciente actualización a la versión 2.2. Siempre hago las mejoras/actualizaciones con estos dos pasos:

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

...pero después de la reciente 2.2actualización ya no puedo encontrar una manera de hacer que nix-channel --updatefuncione. Siempre recibo estos errores:

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

...incluso si retrocedo las operaciones anteriores:

$ 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

Esto es lo que tengo en la lista de actualizaciones:

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

...y finalmente ni siquiera puedo borrar eso:

$ 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

Me gustaría evitar una reinstalación.


ACTUALIZAR

¡No podía esperar! Oh :)

Seguí adelante y eliminé la instalación actual... y cuando realicé una nueva instalación básicamente obtuve el mismo resultado:

$ 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

... entonces parece que, en general, algo está sucediendo con Linux (o específicamente con la distribución que usa) y Nix.

Respuesta1

Siguiendo la sugerencia eneste comentarioresuelve el problema:

sysctl kernel.unprivileged_userns_clone=1

Respuesta2

Nix usa bastantes banderas para el clon, principalmente para separar algunos espacios de nombres de Linux. Espero que su sistema no admita algunos de estos porsin privilegiosprocesos. IIRC algunas distribuciones eligieron eso por motivos de seguridad.

información relacionada