facebook推出infer静态代码检测工具编译和安装是相对复杂的一个操作,官方文档是英文的,安装顺序也有点乱,而且部分依赖插件也没有给出安装步骤,如果安装的时候不注意很容易导致问题。因此,将我在Linux上的安装过程分享出来,作为一份中文参考文档。
依赖插件
插件是编译infer的先决条件,linux下需要依赖的插件如下:
- opam >= 1.2.0
- Python 2.7
- Java (only needed for the Java analysis)
- gcc >= 4.7.2 or clang >= 3.1 (only needed for the C/Objective-C analysis)
- autoconf >= 2.63 and automake >= 1.11.1 (if building from git)
安装插件
针对我使用的Ubuntu系统,根据不同的系统版本执行下述命令:
Ubuntu 14.04 LTS
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y \
autoconf \
automake \
build-essential \
git \
libgmp-dev \
libmpc-dev \
libmpfr-dev \
m4 \
openjdk-7-jdk \
python-software-properties \
unzip \
zlib1g-dev
Ubuntu 12.04.4 LTS
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y \
autoconf \
automake \
build-essential \
g++-4.8 \
gcc-4.8 \
git \
libgmp-dev \
libmpc-dev \
libmpfr-dev \
m4 \
openjdk-7-jdk \
python-software-properties \
unzip \
zlib1g-dev
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 \
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8
设置opam
据官网所言,opam在Linux的部分发行版本中是缺失的,所以需要自己下载安装:
wget https://github.com/ocaml/opam/releases/download/1.2.2/opam-1.2.2-x86_64-Linux
chmod +x opam-1.2.2-x86_64-Linux
sudo cp opam-1.2.2-x86_64-Linux /usr/local/bin/opam
opam init --comp=4.02.3
eval `opam config env`
安装编译
执行以下命令安装编译:
# Checkout Infer
git clone https://github.com/facebook/infer.git
cd infer
./autogen.sh
./configure
make # or make java
# Install Infer into your PATH
export PATH=`pwd`/infer/bin:$PATH
编译完成后,就可以进行代码的静态扫描了,具体使用方式可查考infer使用教程。
如果根据以上方法编译安装后还有问题,可参考infer静态代码扫描不能执行问题定位。