一、前言

本文主要介绍二进制安装方式碰到缺少依赖怎么排查。其中,示例为二进制安装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

image-20231016233122565

说明: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退出

二进制安装方式-1