this post was submitted on 01 May 2024
2 points (66.7% liked)

Nix / NixOS

1783 readers
1 users here now

Main links

Videos

founded 1 year ago
MODERATORS
 

I know that if using flakes nix shell is the right command. But I just want to know that is it normal for legacy commands to not work like that one? nix-env works tho.

  • Dotfiles

  • One thing to note is that, what I am doing temporarily is running it using this

nix shell nixpkgs#nix-info
nix-info
  • And the output value is this
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.86, NixOS, 23.11 (Tapir), 23.11.20240417.e402c3e`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `not found`
  • Notice the nixpkgs: not found, This is also weird to me.

  • logs ->

error:
       … while calling anonymous lambda

         at «string»:1:1:

            1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [ (nix-info) ]; } ""
             | ^

       error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)

       at «none»:0: (source not available)
top 2 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 6 months ago (1 children)

I think this has to do with flakes. If you run something as a flake it doesnt use channels, which is the alternative. The import is looking for it as a channel on the host machine. With flakes its provided as an input.

It looks like nixinfo is explicitly looking for channels to tell you info, like how neofetch would tell you interesting stats. The same does not apply with flakes. There's no "default" upstream package base that can queried by the system.

[–] [email protected] 1 points 6 months ago