Linux安装yum源码包及相关操作

简介:

一、使用场景

很多时候下载的rpm包所提供的功能并不符合我们的需要,或者只需要使用其中一部分功能的时候,就需要进行源码安装。源码安装前,首先使用 yum grouplist 确认 Development tools 和 Server Platform Development这两个组已经被安装。

spacer.gifwKioL1dWlKCQbb4CAABrRyYMANE459.png-wh_50

二、相关知识详解

1.make工具

所有的程序都需要gcc编译后才能执行,项目的开发者为了简化使用者的编译步骤,当时用make工具后,make会调用gcc对程序进行编译,所以说make是一种项目编译工具,而编译本身需要开发环境,所以就能解释为什么必须存在Development tools 和 Server Platform Development这两个组,同时编译过程还需要能够调用相关程序的头文件和库文件,库文件的表现形式为xxxx-devl.rpm。

2.Makefile文件的产生过程

打开源码包我们会看到一个可执行文件configure,同时包内还有Makefile.in文件,通过他们可以产生Makefile文件,下面就这个过程做详细描述。

spacer.gifwKioL1dWlKDzcm6fAAD6cowDKjo179.png-wh_50

(1)生成configure脚本

项目的制作者会使用一个autoconf的开发工具,使用这个开发工具对项目中的每一个原代码执行后会生成一个configure脚本,使用该脚本来检查编译环境是否满足需求、定义编译时启用哪些功能和安装路径等。

(2)生成Makefile.in文件

Makefile.in文件则是通过automake工具生成的,结合configure脚本生成Makefile文件。

(3)生成Makefile文件

当执行configure脚本后,configure脚本会根据Makefile.in文件产生Makefile文件,而定义编译时启用哪些功能和安装路径等也会保存在该文件中,该文件也是使用make命令时的配置文件。

三、安装步骤

我们以安装httpd-2.2.31为例,进行说明。详细的步骤为:

1.下载源码包后使用 tar -xf httpd-2.2.31.tar.gz 解压

spacer.gifwKiom1dWk5mBGoOvAABoVJOpjxs356.png-wh_50

2.使用less INSTALL 查看安装步骤(每个程序的说明文件不一样,有的是READ,有的是INSTALL)

spacer.gifwKioL1dWlKGhkVKeAADFgmrU3FQ662.png-wh_50

3.使用 ./configure --help 查看configure脚本使用帮助,根据情况删减功能,此处以自定义安装和配置文件位置为例,使用./configure --prefix=/usr/local/apache --sysconfdir=/etc/apache 检查环境并生成Makefile文件

spacer.gifwKiom1dWk5ryVMUHAACs5zm3Hds276.png-wh_50

4.待检查完确认没有报错后,输入make安装,此时的make会调用gcc进行编译

spacer.gifwKiom1dWk5ri0MPDAABPiEKXWkQ506.png-wh_50

5.然后使用 make install 命令安装,等待安装结束

spacer.gifwKioL1dWlKLQqOsVAAC6xT8Cxi8401.png-wh_50

6.在/usr/local/apache/bin路径下,使用 apachectl start 启动服务

spacer.gifwKiom1dWk5vR2X6eAACxuMBzBPk161.png-wh_50

7.使用 netstat -nlt 查看80端口是否已侦听

spacer.gifwKioL1dWlKPj1I3nAAA1wfdb04U593.png-wh_50

8.打开浏览器,输入服务器地址看到显示It works!配置完成

spacer.gifwKiom1dWk5vDkJhlAAAbmOS4fYk646.png-wh_50

四、后续步骤

安装完源码包服务正常启动后工作并没有结束,我们知道一个程序大体上可以分为:二进制程序、头文件、库文件、man帮助手册四部分组成,而我们在安装时自定义的路径系统未必能自动识别,所以就需要做输出重定向。

1.二进制程序

使用 vim /etc/profile.d/apache.sh 将/usr/local/apache/bin,/usr/local/apache/sbin,添加进默认路径并对子进程生效

spacer.gifwKioL1dWlKPySn4wAAAOWekAmWI023.png-wh_50

然后重启服务器或者使用 source /etc/profile.d/apache.sh 重读配置文件,确认/usr/local/apache/bin,/usr/local/apache/sbin已经成功添加到PATH变量中

spacer.gifwKioL1dWlKPgZ7_hAAAw6XFklzs187.png-wh_50

2.头文件输出

至于为什么要输出头文件,因为在对该程序做二次开发时,需要进行调用,此时的调用不同于运行时调用程序的二进制代码(ABI),开发时的调用则是调用该程序头文件的包含,而头文件中包括了函数的入口及指针的类型等信息(API)。

使用 ln -sv /usr/local/apache/include /usr/include/apache 创建一个软连接将apache的头文件跳转至/usr/local/apache/include

spacer.gifwKiom1dWk5ygFInUAABMsp-fuAc631.png-wh_50

3.库文件数出

vim /etc/ld.so.conf.d/apache.conf,创建一个apache.comf文件 ,/usr/local/apache/lib 把库文件路径写进去,如果有多个库,一行一个

spacer.gifwKioL1dWlKTiy6g3AAATAPxLP2I024.png-wh_50

而后使用 ldconfig -v 查看库文件路径是否正确识别

spacer.gifwKiom1dWk52QOqFqAAAcHw-5PLc350.png-wh_50

4.man文档输出

使用 vim /etc/man.config 在MANPATH路径下添加apache的man文件路径,至此,操作全部完成

spacer.gifwKioL1dWlKSgEW2XAABd6xNcJYo538.png-wh_50




本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1787062

相关文章
|
2天前
|
Linux 开发工具 C语言
Linux 安装 gcc 编译运行 C程序
Linux 安装 gcc 编译运行 C程序
18 0
|
2天前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
11 0
|
5天前
|
NoSQL Linux 测试技术
Redis的安装(Linux版)
Redis的安装(Linux版)
86 1
|
1天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
32 2
|
1天前
|
人工智能 数据可视化 Linux
【linux基础(五)】Linux中的开发工具(上)---yum和vim
【linux基础(五)】Linux中的开发工具(上)---yum和vim
|
1天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
2 0
|
1天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
3 0
|
2天前
|
Ubuntu Linux 开发工具
WSL2(3)安装Linux headers完美解决方案
WSL2(3)安装Linux headers完美解决方案
3 0
|
2天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
12 0
|
5天前
|
Linux
ZooKeeper的安装(Linux版)
ZooKeeper的安装(Linux版)
17 1