文章目录
1.源码包与RPM包的区别
1.1 区别
安装之前:
-
源码包是开源的,安装更自由,安装后工作效率更高。但是安装更慢,更容易报错。
-
rpm包是经过编译的,不能看到源代码,但是安装速度更快,报错容易解决都是依赖性上的问题。
安装之后:
-
rpm包不需要指定安装位置,他会安装在系统的默认位置当中。
-
源码包是认为手工指定安装位置。
1.2 RPM包安装位置
RPM包的安装位置,是rpm包中设定好的默认安装位置。一般有以下几个位置。
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存的位置 |
/usr/share/doc/ | 基本软件使用手册的保存位置 |
/usr/share/man/ | 帮助文件的保存位置 |
我们查看一下,我们昨天安装过的httpd服务的安装位置。
一般我们不建议改安装位置,rpm包是可以自己更改安装位置的,但是如果一但乱改可能会出现一些不必要的后果。
1.3 源码包的安装位置
源码包一般是安装在指定的位置,一般是:
/usr/local/软件名/
目录/usr/
是系统资源目录,其中有一个/local/
目录,这个目录就是系统为我们准备的安装的开源软件的位置,我们只需要在其下新建一个软件名就可以进行安装了,比如源码httpd包,我们只需要将它安装在/usr/local/httpd/
目录下就可以安装成功了。
1.4 安装位置不同带来的影响
最主要的影响就是服务的管理方法(启动、停止、重启动)。
1.4.1 RPM
1.4.1.1 启动文件
RPM包的启动方法有两种:
systemctl start httpd
这种方式实际上是在系统中建立了service服务文件,文件建立在:
/usr/lib/systemd/system/httpd.service
我们可以进入目录进行查看:
查看httpd的服务文件:
因此我们能够从中确认redhat系中http的rpm安装包的启动文件在:
/usr/sbin/httpd
/usr/sbin/httpd -k start[同样打开httpd服务]
这就是第二种启动方式。
1.4.1.2 开机自启动
指向开机自启动命令:
systemctl enable httpd
因为执行systemctl enable httpd.service命令时,httpd.service的一个符号链接,就会放在/etc/systemd/system目录下面的multi-user.target.wants子目录之中。
Systemd 有默认的启动 Target。默认的启动 Target 是multi-user.target。在这个组里的所有服务,都将开机启动。这就是为什么systemctl enable命令能设置开机启动的原因。
1.4.2 源码包
我们知道源码包是指定的安装位置,一般在/usr/local
下,所以他是没有systemctl的启动方式的,你也可以自己写入service文件在/usr/lib/systemd/system/
,就可以使用systemctl启动源码包了。
1.4.2.1 启动文件
/usr/local/apache/bin/apachectl start
我们一般安装源码包都需要指定安装位置,在安装完之后会再安装目录下的bin目录下有启动文件。
你也就可以将这个路径写入service文件中建立自己的systemctl启动方式。
你也可以通过命令重命名的方式,在确保没有冲突命令的条件下建立命令:
echo 'alias apache="/usr/local/apache/bin/apachectl start"' >> /etc/bashrc
source /etc/bashrc
这样就可以通过apache命令来直接启动apache服务。
2. 源码包安装过程
2.1 安装准备
2.1.1 安装C语言编译器
源码大多是C语言的源码包,所以我们要编译运行就要安装C语言编辑器:
yum install -y gcc
2.1.2 下载源码包
我们安装的时候,已经有了RPM包的安装,现在要安装源码包,这是可以的因为安装位置不同,但是一般我们不会两个都安装,因为会占用较大的重复空间。
我们下载源码包可以在中科大开源镜像网站、 阿里云镜像 、清华大学开源镜像网站 、华中科技大学开源镜像网站 ,就可以在其中下载源码包镜像。
从华中科技大学开源镜像网站下载apache的源码包:
2.2 安装注意事项
系统给我们专门准备了源码包的安装位置:
/usr/local/src
src:source code 源代码的缩写
安装位置:
/usr/local/
安装过程中的报错,安装的过程是言代码的编译过程,这整个过程报错有两个报错条件:
- 安装过程停止,如果不停止出现了error都不算。
- error:错误、warning:警告、no:找不到。
2.3 解压压缩包
将下载下来的压缩包进行解压:
解压后的目录大小:
2.4 安装
要进入解压目录安装,其后的所有操作目录都在解压目录下:
在所有的源码包解压目录下都有这两个文件:
- INSTALL:安装说明
- README: 使用说明
首先查看安装说明:
我们解读一下这几个步骤:
./configure 软件的配置与检查步骤。
- 定义需要的功能选项。
- 检测系统环境是否符合安装要求。
- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。等./configure执行完之后,就可以得到文件,在之后的make和make install。
查看是否有了Makefile:
开始make编译:
如果编译出现错误,就可以使用make clean将编译产生的临时文件删除,只有make install才会真正的创建文件,执行make install:
这时候就安装成功了。
2.5 启动服务
现在只需要启动服务就可以了:
/usr/local/apache2/bin/apachectl start
启动命令就在bin目录下:
因为之前我们的RPM安装的httpd服务已经成功,所以这时打开就不能使用80端口,我们必须先关闭RPM的httpd服务。
这样一个源码包服务就完全安装成功了。
2.6 源码包的卸载
直接将安装目录删除就可以了
rm -fr /usr/local/apache2/