为什么需要编译安装软件?
1、软件在编译期间需要配置:比如需要指定安装路径,定制模块等功能;
2、软件需要统一安装路径:在编译安装时可以方便指定这些路径;
3、需要最新的版本:对于某些软件来说可能需要最新的版本。
编译前的准备工作:
1、安装开发工具:make、gcc等
2、安装开发包组:如centos 6的为:Development Tools
C代码编译安装三步骤:
(一)./configure:
(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in生成makefile文件;
(2)检查安装软件时需要依赖到的外部环境
(二)make:make是项目管理器,会根据makefile文件的内容自动构建应用程序;
(三)make install :复制文件到相应的路径
注意:在安装前请注意查看INSTALL、README文件,根据文档配置编译软件。
正式编译安装
第一步:configure脚本
选项:指定安装位置、指定启用的特性
–help:获取其支持使用选项
选项分类:
安装路径设定:
–prefix=/PATH:指定安装路径,默认为/usr/local
–sysconfdir=/PATH:配置文件安装位置
Optional Features:可选特性
–disable-FEATURE
–enable-FEATURE
Optional Packages:可选包
–with-PACKAGE:依赖包
–without-PACKAGE:禁用依赖关系
第二步:make
第三部:make install
编译后的配置:
在这里以http服务作为示例,httpd服务安装在/usr/local/httpd2路径下:
1、man地址的配置路径
centos 6 (/etc/man.config)(centos 6的man配置路径) 将httpd服务的man文档路径在配置文档中添加一条路径
#every automatically generated MANPATH include these fields
添加:
MANPATH /usr/local/httpd2/man
centos 7 (/etc/man_db.conf)
2、将httpd2的启动路径写入PATH
vim /etc/profile.d/httpd2.sh
PATH=$PATH:/usr/local/httpd2/bin
. /etc/profile.d/httpd2.sh
3、导入库文件路径
编辑/etc/ld.so.conf.d/name.conf
添加新的库文件所在目录至此文件中
ldconfig – :重新生成缓存
4、做软链接到包的头文件
ln -s /usr/local/httpd2/include /usr/include
示例:
我以http服务的源码编译包做演示:
一、./configure :配置makefile文件
(1)解压源码包
(2)运行.configure :指定路径启用的特性等:
二、make&&make install
编译成功,无报错
三、配置man地址
vim /etc/man_db.conf (centos 7的man配置文档的路径)
(centos 6的man配置文档的路径为/etc/man.config)
man文档配置成功
四、将httpd的启动路径写入环境变量
vim /etc/profile.d/httpd2.sh(最后的httpd2.sh可以自定义,但需要以.sh结尾)
五、导入库文件路径
vim /etc/ld.so.conf/httpd2.conf (httpd2.conf可以自定义名称,需要以.conf结尾)
六、做头文件的软链接
至此,httpd的源码编译演示完成!
作业:
1、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
2、删除kernel包后,无法启动,并恢复之
答案:
1、冒泡算法,实现升序排序
2、删除kernel包后,无法启动,并恢复 (centos 6)
(1)删除rpm包
(2)内核已删除,无法启动系统
(3)在系统进入读条界面时,按一下esc键(只能按一下,不能多按)进入boot menu菜单,选择CD-ROM Drive 从光盘启动
(4)选择紧急救援模式
(5)挂载镜像文件
(6)安装kernel,并指定根所在的路径,将rpm包安装到对应路径下
(7)系统重启成功!
原创文章,作者:因为有你,如若转载,请注明出处:http://www.178linux.com/39789