我使用的是Coq(版本8.5-6),安装了Nix。我想安装ssreflect,最好也安装wix。我发现的唯一信息是here。但是,这不是关于安装ssreflect,而只是尝试它。尽管如此,我试图尝试一下,但结果有数百个警告(关于各种.v
和.ml4
文件的内容)并且无法等待进程结束。一个相当典型的警告看起来像这样:
文件“./algebra/ssralg.v”,第856行,字符0-39:警告: 不推荐使用隐式参数;改为使用Arguments
所以问题是:我如何安装 ssreflect w / Nix?
编辑:在阅读了ejgallego的评论后,似乎无法安装ssreflect w / Nix - 尤其是。如果一个人想要只安装ssreflect w / out其他模块(fingroup,代数等)。所以我还有以下问题: ssreflect的standard Opam或make install
安装是否可以安装Nix安装的Coq?
答案 0 :(得分:2)
您需要注意以下几点:
Nix是一个基于源的包管理器,带有二进制缓存。许多软件包是预先构建的,并且可以在二进制缓存中使用,因此它们的安装不需要很长时间;一些软件包(特别是开发库)不是预先构建的,而Nix在安装它们时会花费编译它们所需的时间。请耐心等待:您只需要第一次等待完整的编译(是的,math-comp在编译时会发出很多警告);下一次,该套餐将在您当地的Nix商店中提供。
由于OPAM也是基于源的,因此使用OPAM代替Nix不会节省时间。您不能将安装了Nix的Coq与OPAM安装的SSReflect混合使用,因为后者会将前者作为OPAM依赖项。
Nix使用库的方法不是安装它们,而是用nix-shell
加载它们。 nix-shell
将“安装”库并为您设置一些环境变量(例如,在这种情况下为$COQPATH
)。
您也可以使用Nix安装的Coq自行编译源包,但是您无法运行make install
,因为这会尝试在安装Coq的同一位置安装SSReflect但是Nix商店是不可变。相反,您可以跳过此步骤,并手动设置$COQPATH
。
确实,完整的数学编译需要很长时间。有一个更轻的Coq ssreflect包。你可以使用:
nix-shell -p coqPackages_8_6.ssreflect