马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法。

为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2:

首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了。

这里我运行yum group install Development Tools安装开发环境组件

安装好开发环境后,开始解压下载好的httpd-2.2.29.tar.bz2,并切换到httpd-2.2.29目录

[[email protected] test]# tar -jxf httpd-2.2.29.tar.bz2

[[email protected] test]# ls

httpd-2.2.29  httpd-2.2.29.tar.bz2

[[email protected] test]# cd httpd-2.2.29

现在可以开始编译httpd2.2.29了,我们可以先察看一下目录下的README,INSTALL文件,可以初步了解一下该软件的一些简介及其通常的编译安装方法:

执行./configure -h可以先查看一下configure脚本的帮助信息,查看一下软件的一些安装选项,不同的软件的configure不尽相同,但是一般都有以下的特点:

1.指定安装路径

--prefix=前缀,用于指定安装路径

--sysconfdir=/etc/package_name

2.指定启动/禁用的特性

--enable-feature:例如--enable-fpm

--disable-fecture;例如 --disable-socket

3.指定所依赖功能、程序或文件

--with-function: 启用某功能

--without-function: 禁用某功能

这里我们只是简单的指定httpd的安装路径,如有特殊的需求,请参考configure的帮助信息,自行添加或关闭软件特性。

注意,由于这里只是测试,我把服务安装到了root的家目录下,要运行起服务并允许外部主机能够访问需要给root的家目录给予rx权限,生产环境不建议如此操作,尽量安装到/usr/local/等目录下,切记!

[[email protected] httpd-2.2.29]# ./configure --prefix=/root/test/httpd2.2

[[email protected] httpd-2.2.29]# make && make install

至此,httpd2.2的编译安装已经完成,就是这么简单,赶紧动手试试哇。我们启动自己手动编译安装的httpd看看哇:

可以看到编译安装的httpd服务已经开始运作起来了,不过貌似启动起来好麻烦,得切换到安装的目录的bin目录下,要是能直接在命令行的任何路径下都能管理启动或是关闭就好了,这就是我们编译安装后的一些后续工作了:

1.导出二进制程序目录至PATH环境变量中;

编辑文件/etc/profile.d/httpd2.2.sh文件,在文件中写入下边一行即可;(注意,httpd2.2.sh文件并不存在,创建即可)

export PATH=/root/test/httpd2.2/bin

保存退出,要让此设置即刻生效,需要在当前目录下执行命令

source httpd2.2.sh

现在我们就可以在系统的任何路径下打开或关闭httpd服务了,而不用记住那一长串的路径了

2.导出库文件路径;

编辑/etc/ld.so.conf.d/httpd2.2.conf;        注意:httpd2.2文件不存在,需自行创建

添加新的库文件所在目录至此文件中;

/root/test/httpd2.2/lib

让系统重新生成缓存:

ldconfig [-v]

-v查看详细内容

3.导出头文件

基于链接的方式实现:

ln -sv  /root/test/httpd2.2/include /usr/include/httpd2.2

4.导出帮助手册

编辑/etc/man_db.conf文件,加入一个MANPATH;        注意:centos6.x系列中为/etc/man.config文件

man apachectl

至此,编译安装的工作完成,赶紧动手试试哇!

时间: 12-26

马哥linux学习笔记:源码编译安装的相关文章

linux学习笔记——源码编译安装Mysql

#######Redhat6.5源码编译安装Mysql########实验环境:1.IP:172.25.8.32.磁盘要大于20G先添加一块大于20G的磁盘fdisk /dev/vdb        ##得到/dev/vdb1 8e linuxpvcreate /dev/vdb1    ##把物理分区做成物理卷vgextend vg_server1 /dev/vdb1    ##把新建立的/dev/vdb1添加到vg_server1中lvextend -L 20G /dev/vg_server1

centos 学习笔记——源码编译安装apache

每一次遇到错误解决错误的过程,都是知识积累的最好时光,他会让你对这个知识点记忆更深刻!好吧原谅我这么无耻的给自己知识储备不足来开脱,话不多说把这次历程记录下来吧. 系统还是老样子: #cat /etc/redhat-release ;uname -r CentOS release 6.7 (Final) 2.6.32-573.el6.x86_64 学习安装的过程中遇到很多前辈们走过的弯路,估计我是都已经走过一遍了,先把需要准备的都提前备好: apache 版本2.4.20 (apache 官网地

马哥Linux学习笔记之四——DNS

1.BIND:Berkeley Internet Name Domain DNS:Domian Name Service 域名解析 2. Http 3.PAM 插入式认证模块 4.SMTP/POP3/IMAP4:Mail Server 5.域名 www.baidu.com这是一个主机名(FQDN,Full Qualified Domain Name,完全限定域名),com是一个域名,baidu.com也是一个域名,域名是好多主机的集合. 域名解析起后面有一个数据库,解析就是一个查询的过程.域名解

马哥linux学习笔记:htop命令使用详解

htop工具在centos官方yum源仓库中是不提供的,但在epel的yum源仓库中是有的,所以我们可以通过源码编译安装htop,也可以设置epel的yum源来用yum命令安装htop,设置epel的yum源方法为: 首先,下载epel官方网站提供的rpm包,然后安装,就可以设置epel的yum源直接使用了: centos6: wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm centos7:

马哥linux学习笔记

1,date 时间管理   查看系统时间    date [MMDDhhmm[[CC]YY][.ss] 修改时间 or date -s     +%d 显示几号    +%D 显示 月/日/年  同 +%m/%d/%Y    +%F same as %Y-%m-%d    +%m month    +%H hour    +%M Minute    +%S second    +%T time :same as %H:%M:%S    +%Y year    %n new line    事例1

马哥linux学习笔记:加密,解密基础

在计算机网络建设的初期,由于能使用到计算机的人少之又少,并没有考虑到有数据加密需求,随着社会的发展,互联网已俨然成为我们生活中不可或缺的一部分,人们不管是交流,购物,还是工作都已经离不开互联网.在电脑,手机,各种电子设备构建的互联网中,数据的安全问题已经成为人们很是关注一个重要环节. 现在,我们就来了解一下linux下是如何实现数据加密及解密的. 对于确保数据的安全性,我们要达成的目标有三个: 保密性,完整性,可用性. 现今蛇龙混杂的互联网,总是有很多拥有强烈好奇心的不安分的人想尽办法要获知其他

马哥linux学习笔记(bash变量配置)

bash:解释器,编译器 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile,/etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile,/etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH.PS1 (2) 运行命令或脚本 bashrc类:为非交

马哥学习笔记八——LAMP编译安装之PHP及xcache

1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Software Development" 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之: libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 2.编译安装php-5.4.13 首先下载源码包至本地目录. # tar xf php-5.4.13

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my