【发布时间】:2018-10-21 00:17:40
【问题描述】:
我请求的是 GCC 8,但我得到的是 GCC 7。
$ nix-shell -p gcc8
[nix-shell:~]$ gcc --version
gcc (GCC) 7.3.0
发生了什么事?
【问题讨论】:
标签: nixos
我请求的是 GCC 8,但我得到的是 GCC 7。
$ nix-shell -p gcc8
[nix-shell:~]$ gcc --version
gcc (GCC) 7.3.0
发生了什么事?
【问题讨论】:
标签: nixos
您需要将环境基于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
【讨论】:
cmake 2.8.8 版本呢?顺便说一句,从gcc8 或ruby_2_4 的外观来看,该版本似乎没有标准的格式方式,并且很难获得。是否有这些不同版本的索引列表?
cmake_2_8 放入包列表是否有效?答案中的各种 ruby 等包不需要 gcc 工作,这正是我当时除了 gcc8 需要的环境
cmake_2_8,它给了我cmake version 2.8.12.2。谢谢。我还观察到,它给了我gcc 8.2.0。然而,你得到了gcc 8.1.0。我在这里选择的理解是buildInputs 列表中的gcc8 是二进制编译并存储在某处,然后他们认为合适时将其撞到较新的 gcc 版本。这让我问,除了这个二进制缓存,还有其他的吗?
请改用nix run。它表现得更好,下载包时也有更好的进度指示器。
jdanek@nixos ~ % nix run -f channel:nixos-19.03 gcc8
[jdanek@nixos:~]$ gcc --version
gcc (GCC) 8.3.0
【讨论】: