Installation 尼克斯:安装ssreflect

Installation 尼克斯:安装ssreflect,installation,coq,opam,nix,ssreflect,Installation,Coq,Opam,Nix,Ssreflect,我使用的是Coq(版本8.5-6),安装时带有Nix。我想安装ssreflect,最好也安装w/Nix。我找到的唯一信息是。然而,这并不是关于安装ssreflect,只是尝试一下。尽管如此,我还是尝试了一下,但结果是出现了数百条警告(关于各种.v和.ml4文件的内容),我无法等待过程结束。一个相当典型的警告如下所示: 文件“/algebra/ssralg.v”,第856行,字符0-39:警告: 不推荐使用隐式参数;改用参数 那么问题是:我到底如何安装ssreflect w/Nix 编辑:在阅读e

我使用的是Coq(版本8.5-6),安装时带有Nix。我想安装ssreflect,最好也安装w/Nix。我找到的唯一信息是。然而,这并不是关于安装ssreflect,只是尝试一下。尽管如此,我还是尝试了一下,但结果是出现了数百条警告(关于各种
.v
.ml4
文件的内容),我无法等待过程结束。一个相当典型的警告如下所示:

文件“/algebra/ssralg.v”,第856行,字符0-39:警告: 不推荐使用隐式参数;改用参数

那么问题是:我到底如何安装ssreflect w/Nix

编辑:在阅读ejgallego的评论之后,似乎不可能安装ssreflect w/Nix——特别是如果一个人只想安装ssreflect w/out其他模块(fingroup、algebra等)。所以我还有一个问题:


or
是否会在安装了Nix的情况下安装ssreflect?

您需要注意以下几点:

  • Nix是一个基于源代码的包管理器,具有二进制缓存。很多软件包都是预构建的,并且可以在二进制缓存中使用,因此它们的安装不会花费很长时间;有些包(特别是开发库)不是预先构建的,安装它们时需要花费编译它们所需的时间。请耐心等待:您只需等待第一次完整编译(是的,math comp在编译时会发出大量警告);下次,该软件包将在您当地的Nix商店中提供

  • 由于OPAM也是基于源代码的,所以使用OPAM而不是Nix不会节省时间。不能将Nix安装的Coq与OPAM安装的SSReflect混用,因为后者希望前者作为OPAM依赖项


  • 使用库的Nix方法不是安装库,而是使用
    Nix shell
    加载库
    nixshell
    将“安装”库并为您设置一些环境变量(例如,在本例中,
    $COQPATH

  • 您也可以使用Nix安装的Coq从源代码处编译包,但无法运行
    make install
    ,因为这将尝试在安装Coq的同一位置安装SSReflect,但Nix存储是不可变的。相反,您可以跳过此步骤,手动设置
    $COQPATH

  • 事实上,编写完整的数学综合课程需要很长时间。有一个更轻的Coq ssreflect包。您可以通过以下方式获得:

    nix-shell -p coqPackages_8_6.ssreflect
    

    • 您需要注意以下几点:

      • Nix是一个基于源代码的包管理器,具有二进制缓存。很多软件包都是预构建的,并且可以在二进制缓存中使用,因此它们的安装不会花费很长时间;有些包(特别是开发库)不是预先构建的,安装它们时需要花费编译它们所需的时间。请耐心等待:您只需等待第一次完整编译(是的,math comp在编译时会发出大量警告);下次,该软件包将在您当地的Nix商店中提供

      • 由于OPAM也是基于源代码的,所以使用OPAM而不是Nix不会节省时间。不能将Nix安装的Coq与OPAM安装的SSReflect混用,因为后者希望前者作为OPAM依赖项


      • 使用库的Nix方法不是安装库,而是使用
        Nix shell
        加载库
        nixshell
        将“安装”库并为您设置一些环境变量(例如,在本例中,
        $COQPATH

      • 您也可以使用Nix安装的Coq从源代码处编译包,但无法运行
        make install
        ,因为这将尝试在安装Coq的同一位置安装SSReflect,但Nix存储是不可变的。相反,您可以跳过此步骤,手动设置
        $COQPATH

      • 事实上,编写完整的数学综合课程需要很长时间。有一个更轻的Coq ssreflect包。您可以通过以下方式获得:

        nix-shell -p coqPackages_8_6.ssreflect
        

      这些警告非常正常,因为开发人员尚未修复它们。构建ssreflect需要很长的时间,尤其是如果您想要构建整个包及其许多库的话。您可以编辑ssreflect的Make以删除一些库,也可以将包拆分。这取决于您的需要,例如,OPAM根据math comp的大小将其分为5个独立的软件包。如果您计划只使用战术插件,它将包含在Coq 8.7中,但是请注意,如果没有至少其主库,战术确实不是很有用。这些警告很正常,因为开发人员尚未修复它们。构建ssreflect需要很长的时间,尤其是如果您想要构建整个包及其许多库的话。您可以编辑ssreflect的Make以删除一些库,也可以将包拆分。这取决于您的需要,例如,OPAM根据math comp的大小将其分为5个独立的包。如果您计划只使用战术插件,它将包含在Coq 8.7中,但是请注意,如果没有至少其主库,战术确实不是很有用。“Nix使用库的方法不是安装它们,而是用Nix shell加载它们。”谢谢,这解释了我花了很长时间才明白这一点。特别是在Coq的情况下,因为我不习惯将它作为一种编程语言来考虑。我有一个与此相关的问题”Nix使用库的方法不是安装它们,而是用Nix shell加载它们。“谢谢,这解释了我花了很长时间才明白这一点。特别是在Coq的情况下,因为我不习惯将它作为一种编程语言来考虑。我有一个与此相关的