文本关键字:Linux、软件管理、configure、make、make install前端
不少软件下载以后是一个源码包,是不可以直接运行的,须要先进行编译安装,生成可执行程序。在进行编译时,须要先使用yum安装编译工具。nginx
必需要安装的就是gcc(GNU Compiler Collection)GNU编译器套件,其中包含了C、C++、Objective-C、Fortran、Java、Ada、Go语言前端,也包含了对应语言的库,几乎能够知足绝大部分源码软件对编译环境的须要。bash
yum install gcc
安装后可解决如下问题:curl
在进行实际软件安装时,因为软件与软件之间可能也会存在依赖和调用关系,如:在源码编写时引入了某个类库,若是咱们的系统中没有相关的类库,就会编译失败,这个时候咱们只要根据报错信息安装相应的缺失类库便可,如下列出了一些经常使用的类库。ide
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
yum install pcre-devel
./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option.
yum install zlib-devel
src/main.c:18:23: 错误:curl/curl.h:没有那个文件或目录 src/main.c: 在函数‘main’中: src/main.c:143: 警告:隐式声明函数‘curl_global_init’ src/main.c:143: 错误:‘CURL_GLOBAL_ALL’未声明(在此函数内第一次使用) src/main.c:143: 错误:(即便在一个函数内屡次出现,每一个未声明的标识符在其 src/main.c:143: 错误:所在的函数内也只报告一次。) src/main.c:397: 警告:隐式声明函数‘curl_global_cleanup’ make: *** [src/main.o] 错误 1
yum install curl-devel
yum install openssl openssl-devel
编译安装的第一步与解压安装相似,须要先进行解压缩,通常都会包含如下目录和内容。函数
编译安装的第一步就是执行configure脚本,会检查编译构建当前软件的所需环境,同时用户能够根据须要指定相关的配置。全部的选项以--开头使用等号链接配置项与配置的值,如:--prefix=/usr/local/。工具
在不指定安装位置时,将会安装到默认位置,一般分布在/usr/local中ui
在进行configure后,若是环境不存在问题,会生成对应的Makefile文件,用于执行make命令时调用。url
在make事后,其实软件已经完成了安装,会在源码解压目录中生成构建完成的文件,如:Nginx软件make后会在obj文件夹中生成以下文件:3d
编译后可使用make test或make check命令再次检查编译过程是否正确。
执行最后一步:编译安装,根据configure阶段的配置,将已经生成的软件安装到指定的目录中去,能够对可执行文件定义软链接或者添加到环境变量,方便使用。