infer install

infer是facebook开源的一个代码纠错工具。 infer可以智能纠错Android、iOS、java工程等,目前支持Mac和Linux系统。
infer的安装可以选择下载压缩文件,然后直接安装,操作如下,这里以发文时的最新版0.1.1版本为例。
目前infer已经更新,请大家去github上下载最新版本


直接安装

  1. 下载压缩文件
    Mac OS X:
    https://github.com/facebook/infer/releases/download/v0.1.1/infer-osx-v0.1.1.tar.xz
    Linux:
    https://github.com/facebook/infer/releases/download/v0.1.1/infer-linux64-v0.1.1.tar.xz

  2. 安装infer

    Mac OS X:     
    tar xf infer-osx-v0.1.1.tar.xz
    Linux:
    tar xf infer-linux64-v0.1.1.tar.xz
    
  3. 添加infer到PATH中

    cd infer-*v0.1.1 &&
    echo "export PATH=\"\$PATH:`pwd`/infer/infer/bin\"" \ >> ~/.bash_profile &&
    source ~/.bash_profile
    

到这一步为止,应该安装成功了,这时候在终端输入infer应该会有一堆帮助信息出现了(参考本文最后的安装成功部分),如果安装失败,请根据错误信息,自行查找原因,或者使用下面的编译安装的方式。


编译安装

  1. 安装环境

    • Python2.7
    • opam
      mac举例,使用brew install opam即可安装成功
    • Java <= 1.7, XCode <= 6.3, >= 6.1, clang,如果不需要分析Objective-C文件或者C文件,可以不要求Xcode
  2. clone infer工程

    git clone https://github.com/facebook/infer.git
    
  3. 安装OCaml依赖
    infer使用OCaml开发,所以这些依赖是必须的。

    opam init --comp=4.01.0  # (answer 'y' to the question)
    eval `opam config env`
    opam install sawja.1.5 atdgen.1.5.0 javalib.2.3 extlib.1.5.4
    

    从我安装OCaml所遇到的问题来看,最主要的可能性还是网速太慢,安装时间很久,网络如果不好,可能发生下载终端的情况,这时候重新敲一遍命令即可。infer_1

  4. 安装infer

    //如果只支持java文件
    cd infer
    make -C infer java
    
    
    //如果需要同时支持C、OC、Java文件
    //是的,目前0.1.1这个版本不支持仅编译支持C、OC的版本
    cd infer
    ./update-fcp.sh && ../facebook-clang-plugin/clang/setup.sh && ./compile-fcp.sh # go have a coffee :)
    make -C infer
    
  5. 添加infer到PATH中
    到这一步的话,那么编码编译成功了,现在编译好的infer路径添加到PATH中即可。 大家可能习惯于clone到某个常用的地方,比如Desktop、Document目录什么的,但是建议大家将编译好的infer拷贝到一个“比较不那么容易被修改到的地方”,比如说用户主目录或者某些放置这种文件的目录之下,之后再添加到Path中:

    export PATH=`pwd`/infer/bin:$PATH
    

安装成功

infer_2


备注

  • 如果曾经编译过低版本,然后直接升级高版本编译的时候,有可能出现怪异问题,在编译失败的情况下,建议删除整个infer文件夹,然后重新clone一份,然后重新编译。

Article by 付军