编译安装
主要是c程序源码安装
为什么要编译安装
- 光盘中的软件偏老,许多新功能可能无法提供
- 编译安装的路径可以自指定,方便统一规划
- 源码安装的功能特性可根据自己的业务需求定制
程序包编译安装
-
源代码的组织格式:
单个C、C++程序:gcc
多文件:文件在的代码之间,很可能存在跨文件依赖关系
C、C++:make项目管理器
Java:maven -
源码一般放置于/usr/local/src
-
C语言源码编译安装步骤:
1)./configure
①通过选项传递参数,指定软件安装路径和相关功能特性,按照Makefile.in模板生成Makefile文件
②检查依赖到的外部环境,如依赖的软件包
2)make :根据Makefile文件,构建应用程序
3)make install :复制文件到相应的路径
Makefile文件是通过./configure脚本根据Makefile.in目标生成的;configure脚本一般由开源项目提供,在源码包中
Makefile文件的主要内容是提供了程序安装路径和程序定制的特性,文件最后是程序的安装、卸载等等eg:make install。 -
由于是源码编译安装的,程序的卸载、升级、查询使用rpm均不可用
-
程序安装后可能的后续操作:
①添加程序执行路径至PATH变量中
②添加man手册路径
Centos6 man帮助手册的配置文件:/etc/man.config
Centos7 man帮助手册的配置文件:/etc/man_db.conf -
若生产中同时安装同一程序,可利用脚本完成一键安装
编译安装tree-1.8.0
1、获取源码包至/usr/local/src目录
cd /usr/local/src
wget http://mama.indstate.edu/users/ice/tree/src/tree-1.8.0.tgz
2、解压源码包
tar xvf tree-1.8.0.tgz
3、进入解压目录,查看README和INSTALL
4、由于tree软件较小,Makefile文件直接在源码中提供,因此直接修改Makefile文件
此处仅修改了程序安装的路径:
prefix = /apps/tree
5、在解压目录下执行make && make install
6、安装依赖于gcc编译器,提前安装
7、安装完成,绝对路径可直接执行,此处是/apps/tree/bin/tree
当然可以将/apps/tree/bin此路径添加至PATH变量中
8、帮助手册:
绝对路径:man /apps/tree/man/man1/tree
修改man配置文件,将路径添加至man的搜索路径中:
MANDATORY_MANPATH /apps/tree/man/
编译安装http-2.4.25
1、获取源码包至/usr/local/src目录
cd /usr/local/src
2、解压源码包
tar xvf httpd-2.4.25.tar.bz2
3、进入解压目录,查看README和INSTALL文档./configure --help
4、执行./configure 脚本根据Makefile.in模板生成Makefile文件,并指定安装路径和定制功能
./configure --prefix=/apps/apache --enable-ssl --enable-http2 --disable-auth-basic
当然./configure 脚本执行未必成功,因为它会检查依赖的包,
一般而言,在报错的时候直接安装对应的-devel包即可
5、 ./configure脚本执行成功后,make && make install
pcre-devel ---用来支持perl语言的正则表达式
.....
注意:如果编译安装时间较长:
①可以考虑使用screen
②可以make -j # 指定多个内核同时编译