I’m very new to nix. I have a directory that contains a simple shell.nix
file that specifies a number of build dependencies for a software project. One of the annoying quirks of this software project is that it depends on python2. When I run nix-shell
in this directory, I am given this error message:
error: Package ‘python-2.7.18.7’ in /nix/store/5hwz775f3grzikafj1sbwx4lqkjwqswb-source/pkgs/development/interpreters/python/cpython/2.7/default.nix:335 is marked as insecure, refusing to evaluate.
Known issues:
- Python 2.7 has reached its end of life after 2020-01-01. See https://www.python.org/doc/sunset-python-2/.
You can install it anyway by allowing this package, using the
following methods:
a) To temporarily allow all insecure packages, you can use an environment
variable for a single invocation of the nix tools:
$ export NIXPKGS_ALLOW_INSECURE=1
Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
then pass `--impure` in order to allow use of environment variables.
b) for `nixos-rebuild` you can add ‘python-2.7.18.7’ to
`nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
like so:
{
nixpkgs.config.permittedInsecurePackages = [
"python-2.7.18.7"
];
}
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
‘python-2.7.18.7’ to `permittedInsecurePackages` in
~/.config/nixpkgs/config.nix, like so:
{
permittedInsecurePackages = [
"python-2.7.18.7"
];
}
(use '--show-trace' to show detailed location information)
I created the ~/.config/nixpks/config.nix
file and inserted the suggested content, but this error message is still printed each time I run nix-shell
. I also tried running NIXPKGS_ALLOW_INSECURE=1 nix-shell
and that does run successfully, but I am curious why the config file method isn’t working.
Any ideas?