Как выбрать версию GCC в nix-оболочке? - PullRequest
0 голосов
/ 10 мая 2018

Я запрашиваю GCC 8, но вместо этого я получаю GCC 7.

$ nix-shell -p gcc8
[nix-shell:~]$ gcc --version
gcc (GCC) 7.3.0

Что происходит?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Используйте nix run вместо.Он ведет себя лучше, а также имеет лучший индикатор прогресса при загрузке пакетов.

jdanek@nixos ~ % nix run -f channel:nixos-19.03 gcc8
[jdanek@nixos:~]$ gcc --version
gcc (GCC) 8.3.0
0 голосов
/ 10 мая 2018

Вы должны основать свою среду на stdenvNoCC вместо stdenv

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

with import <nixpkgs> {}; {
  qpidEnv = stdenvNoCC.mkDerivation {
    name = "my-gcc8-environment";
    buildInputs = [
        gcc8
        go
        ruby_2_4
        gdb
        swig
        # libev
        #...
    ];
  };
}

Теперь все работает как положено

$ nix-shell
[nix-shell:~]$ gcc --version
gcc (GCC) 8.1.0

Источник: https://groups.google.com/forum/#!topic/nix-devel/of6P-sEtQN0

...