为什么要进行源码安装软件包呢?

由于我们系统自带都是一些已经编译好的rpm安装包,这些rpm包的更新的速度大约是每三年更新一次,对于那些具有新功能或者具有更多功能的的软件包,官方只提供给我们那些以c语言和其它语言编写的源码包,我们要想使用就必须自己进行编译和安装。使用源码安装我们不仅可以使用最新的软件,使用更新或更多的功能,而且能够个性定制自己的软件安装。

源码安装的一般步骤是:一般我们下载的源码都是tar.gz或者tar.bz2格式的,所以首先我们首先要拆包,一般将压缩包拆解到/usr/local/src/目录下;拆解后的文件就是源码,这是我们需要对源码进行相应的配置(./configure –选项)产生makefile;然后,对产生的makefile文件进行编译,编译产生相应的可执行文件、库文件、头文件、man手册;最后执行源码的安装make install;安装之后我们要进行更加细节和人性化的调整。

下面我们就以httpd-2.4.4的安装为例,为大家展示源码安装的具体步骤:

安装前的准备工作:

首先,我们先下载与http相关的软件包,与httpd相关的软件包我们可以去apache官方网站进行下载http://www.apache.org。这里我准备了的软件包:

httpd-2.4.4.tar.bz2

apr-1.4.6.tar.gz

apr-util-1.5.1.tar.gz

其次,由于我们下载的是源代码,这些源代码要使用就必须进行编译。编译又需要相应的编译器,linux常用的编译器有gcc等多种编译器,这就要求有多种编译的环境。一般情况下,只要安装了以下这些包组:

Development Libraries

Development Tools

X Software Development

Legacy Software Development

就能解决绝大部分的源码的编译环境问题了。我们在源码安装前使用:yum grouplist |less查看是否这些包组已经安装,

至此准备工作已经完成了。

下面是源码安装的具体操作步骤:

我们将所用的源码复制到我们的管理员家目录下:

将httpd-2.4.4.tar.bz2解压到/usr/local/src目录下:tar –jxvfhttpd-2.4.4.tar.bz2 –C /usr/local/src/

切换目录到/usr/local/src/httpd-2.4.4/:

使用./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache 来指明文件的安装目录和配置文件的存放目录。但是在产生makefile文件之前,该配置脚本会对系统环境进行各种检测,来查看是否支持apache的运行需求:

接下来我们通过rpm –qa|grep –i apr查看我们的系统是否安装了apr:

发现我们已经安装了apr主程序,但是为什么还提示没有找到呢?因为有时候可能有些apr的库文件并不包含在apr的主程序当中,而是存在apr-devel的程序中。

下面我们查看是否存在apr-devel安装包:

发现存在apr-devel包,安装apr-devel包,再次执行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache命令:

我们将事先准备好的apr-1.4.6.tar.gz和apr-util-1.5.1.tar.gz解压安装,安装完成后会出现以下目录:

为了将形成的头文件和库文件能够被系统借用,我们要将形成的头文件和库文件放到系统所能识别的目录(系统所能识别的头文件目录为:/include或/usr/include;库文件所能识别的目录为:/lib或/usr/lib):

我们可以通过ln –s/usr/local/apr/include/apr-1/* /usr/include

为了能识别库文件,我们需要在/etc/ld.so.conf.d/下新建一名为apr.conf的文件,并将apr的库文件目录放在apr.conf的文件内。然后,通过ldconfig命令更新缓存,然后通过ldconfig –pv |grep apr命令来查看是否加载成功库文件。此时的头文件和库文件就能被系统找到。

在这里为大家推荐一个可以下载linux相关安装包网址:http://www.rpmfind.net。

安装完成apr主程序和工具后,我们再次进入/usr/local/src/httpd-2.4.4/目录下执行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache命令:

这时我们就需要在刚才的命令后面来指明apr-1-config的配置文件(--with-apr=/usr/local/apr/bin/apr-1-config):

我们同样,加入这样一句话—with-apr-util=/usr/local/apr-util/:

此时,我们查看是否安装了pcre,如果安装了,查看是否安装了pcre-devel,没有的话安装pcre-devel:

好了,我们继续上面未完成的命令,这次终于成功了,然后我们执行make指令进行编译。

最后,我们通过make install 进行安装:

切换目录到/usr/local/apache/目录下查看所形成的目录及文件:

此时,要想系统能够调用我们头文件,我们需要把我们的头文件链接到系统能够识别的目录下:

要想识别我们的库文件,需要在/etc/ld.so.conf.d/下新建一名为apache.conf文件将库的具体路径(/usr/local/apache/modules/)写到这个文件内:

然后,使用ldconfig更新缓存。

要想实现man的帮助命令,我们需要修改/etc/man.conf文件,添加我们apache的man手册的路径:

测试man命令能否成功:

对于服务来说,要想实现它的功能就必须挂接它的配置文件:

要想实现对apache的控制,我们需要编写控制脚本,通过chkconfig命令,实现开机自启动,控制脚本一般放在/etc/init.d/目录下。我们进入到/etc/init.d/目录下编写一个脚本httpd,并且改变该文件的权限为可执行。

至此,源码安装httpd的整个安装过程就已经完成。

转载于:https://blog.51cto.com/jiangkun08/1260730

软件包的安装(源码安装)相关推荐

  1. 没有可用软件包httpd_CentOS 7源码安装httpd服务

    httpd的简介 httpd是一个开源软件,且一般用作web服务器来使用.目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是 ...

  2. 2apt-get命令,deb包安装,源码安装

    1 安装卸载软件 更新源服务器列表 sudovi /etc/apt/sources.list 更新完服务器列表后需要更新下源 sudoapt-get update 更新源 sudoapt-get in ...

  3. 记录-gitlab自动部署-git拉取代码失败构建失败 + linux系统升级git(yum安装 + 源码安装)

    遇见的问题 fatal: git fetch-pack: expected shallow list 在使用gitlab自动构建部署时,遇到的一个问题我第一次构建部署的时候成功了,但是后面再去部署构建 ...

  4. vim安装-源码安装

    vim源码安装demo 1. rm old vim(centos demo) yum -y remove vim 2. download vim wget -O vim8.2.0139.zip htt ...

  5. linux python源码安装,linux上源码安装python

    以下例子基于python 2.7.9,其他版本同理.# 1.下载python# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tg ...

  6. linux下的geany源码安装,linux 下php开发工具geany-0.16的安装。

    说明 一款linux下的编辑器,支持很多开发语言. 下载 下载地址:http://www.geany.org/ 安装 源码安装 #./configure #make #make install 我在m ...

  7. linux access源码,从零开始学习Linux:Day04 源码安装Nginx 。acess/status/referer

    从零开始学习Linux:Day04 源码安装Nginx .acess/status/referer 常见web服务器有IIS,apche,nginx,tomcat,tengine等等,现在nginx使 ...

  8. 网狐二次开发仿爱玩棋牌三网通源码全套安装源码下载

    网狐二次开发仿爱玩棋牌三网通源码全套安装源码安装过程: 0. 环境 OS:Windows 10,64 bit: 显卡:NVIDIA GeForce GTX 1050Ti,显卡查看方法:计算机[设备管理 ...

  9. httpd源码安装-及实现虚拟主机

    httpd安装 源码安装 [root@http ~]# wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.bz2 https://dow ...

  10. Mxnet源码安装(CPU)

    文章目录 一.python下简单暴力安装,不过强烈不推荐 二.源码安装 简记mxnet-cpu端的安装过程 一.python下简单暴力安装,不过强烈不推荐 sudo pip3 install mxne ...

最新文章

  1. C++的类什么时候需要虚析构函数
  2. 设计模式学习 之 单例模式
  3. 已知二叉树的前序遍历、中序遍历或者中序遍历、后序遍历求二叉树结构的算法
  4. Leetcode初级算法(链表篇)
  5. pycharm 如何使用git链接到github实现代码提交
  6. 20172324 2018-2019-1 《程序设计与数据结构》第七周学习总结
  7. micropython文件上传软件_ESP32玩转MicroPython(二) 连接WIFI网络 webperl文件传输
  8. Windows Tftpd32 DHCP服务器 使用
  9. matlab 设计带阻型陷波滤波器_Q值可调、最大增益恒定的带通滤波器
  10. ZRender源码分析2:Storage(Model层)
  11. Java类的执行顺序
  12. 存储过程生成所有实体类
  13. 在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作
  14. NodeJs之http
  15. CentOS系统时间与网络同步
  16. 应用matlab软件编写 t检验,应用matlab软件进行方差分析 应用方差分析的前提条件...
  17. 数学建模学习(57):K-Means聚类原理分析讲解与应用
  18. [阿里云] 域名解析设置
  19. 编程之路之数据库(十)- PDO详解
  20. oneos组件系列02:ws2812全彩LED

热门文章

  1. abstract interface java_Java -- abstract 和 interface 的理解
  2. 对CSS选择器的理解
  3. VB 字符串MD5加密函数
  4. 每单配送费41元,Nuro无人车正式开始自动驾驶送货
  5. 微软又开源了一个机器学习框架,这次是核心产品的机器学习引擎infer.NET
  6. 可可托海将打造研学旅游基地促经济发展
  7. Django_RBAC_demo2 升级版权限控制组件
  8. 11.06T1 DLZ常数剪枝+DP
  9. Java并发之AQS同步器学习
  10. SQLAlchemy简单入门