一、前言¶
本文主要介绍二进制安装方式碰到缺少依赖怎么排查。其中,示例为二进制安装cmatrix缺少ncurses-devel导致make编译失败。
$ make
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -Wno-comment -c cmatrix.c
cmatrix.c:37:20: fatal error: curses.h: No such file or directory
#include <curses.h>
^
compilation terminated.
make: *** [cmatrix.o] Error 1
报错说明:
提示curses.h文件找不到
二、故障场景¶
下面开始二进制安装cmatrix:
2.1 下载并解压安装包¶
1、配置之前需要提前下载安装包并上传到机器
点击此处即可下载cmatrix-1.2a.tar.gz安装包
2、解压并进入目录
$ tar xf cmatrix-1.2a.tar.gz
$ cd cmatrix-1.2a
2.2 配置¶
1、配置,默认安装位置:/usr/local/bin/
$ cd cmatrix-1.2a
$ ./configure
2、检查结果,回显为0代表执行成功
$ echo $?
0
2.3 编译¶
1、进行编译安装
$ cd cmatrix-1.2a
$ make
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -Wno-comment -c cmatrix.c
cmatrix.c:37:20: fatal error: curses.h: No such file or directory
#include <curses.h>
^
compilation terminated.
make: *** [cmatrix.o] Error 1
三、故障排查¶
1、搜索curses.h文件,发现没有
$ yum provides curses.h
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.bfsu.edu.cn
* extras: mirrors.bfsu.edu.cn
* updates: mirrors.aliyun.com
No matches found
2、换种方式继续搜索curses.h文件,发现观察到ncurses-devel这个依赖。
$ yum search all curses.h

说明:CentOS系列一般是devel结尾的,Ubuntu系列一般都是dev结尾的
3、安装缺少的依赖
$ yum install -y ncurses-devel
四、故障处理¶
说明:当我们重新安装完依赖后,重新执行make仍然会报错,我们需要重新解压、配置、编译、安装。接下来附上完整的安装步骤:
4.1 配置¶
1、配置之前需要提前下载安装包并上传到机器
点击此处即可下载cmatrix-1.2a.tar.gz安装包
2、解压并进入目录
$ tar xf cmatrix-1.2a.tar.gz
$ cd cmatrix-1.2a
3、下载依赖
$ yum install -y ncurses-devel
4、配置,默认安装位置:/usr/local/bin/
$ cd cmatrix-1.2a
$ ./configure
5、检查结果,回显为0代表执行成功
$ echo $?
0
4.2 编译¶
1、进行编译安装
$ cd cmatrix-1.2a
$ make
2、检查结果,回显为0代表执行成功
$ echo $?
0
4.3 编译安装¶
1、进行编译安装
$ cd cmatrix-1.2a
$ make install
2、检查结果,回显为0代表执行成功
$ echo $?
0
3、执行cmatrix命令验证,按ctrl + c退出
