从零开始学习Linux(十八):源码包管理

在前面章节 从零开始学习Linux(十五):软件包管理简介 中我们说过了软件包的分类,以及源码包和RPM包的优缺点。

这节我们讲一下源码包的安装。

1、RPM包和源码包安装区别

1.1、 RPM包默认安装路径(绝大部分软件安装位置)
安装路径 说明
/etc 配置文件安装目录
/usr/bin/ 可执行命令安装目录
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置
1.2、 源码包安装路径

可以安装在指定的位置中,通常是 /usr/local/软件名 路径下。

2、服务管理的区别

RPM包安装的服务可以使用系统服务管理命令(service)来管理;

源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中
,所以只能通过绝对路径来进行服务管理。

3、源码包安装

3.1、 安装C语言编译器

执行命令:

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

此命令的意义,是将gcc、gcc-c++、autoconf、pcre、pcre-devel、make、automake这七个软件包给安装上。一条命令安装多个软件包,也可以分开一个个的安装。

3.2、下载源码包

我们以安装Apache为例说明,http://mirror.bit.edu.cn/apache/httpd/ 下载源码包,选择任何版本。

我们这里选择版本httpd-2.4.46.tar.gz,我们将其上传到 /usr/local/src 路径下面。

上传文件方法,我使用的是FinalShell工具,此工具自带上传功能。如果使用的是其他的工具连接的Linux服务器,可以使用WinSCP软件进行本机与Linux服务器远程传输。

这里我们只演示一下使用FinalShell工具上传文件:

从零开始学习Linux(十八):源码包管理_第1张图片
第一步

在弹出的对话框中,选择要上传的文件,如下图所示:

从零开始学习Linux(十八):源码包管理_第2张图片
选择文件
3.3、解压下载的源码包

进入路径 cd /usr/local/src

执行解压缩命令,将源码包解压到当前文件夹中。

tar -zxvf httpd-2.4.46.tar.gz

解压后结果如下图所示:

从零开始学习Linux(十八):源码包管理_第3张图片
3.4、进入解压缩目录

执行命令

 cd /usr/local/src/httpd-2.4.46/

查看httpd-2.4.46目录下面的文件内容,如下图所示:

从零开始学习Linux(十八):源码包管理_第4张图片

文件说明:

  • INSTALL 安装说明
  • README 使用说明

查看INSTALL文件:

vim INSTALL

文件内容如下图所示:

从零开始学习Linux(十八):源码包管理_第5张图片
第一步

$ ./configure --prefix=PREFIX 软件配置与检查

./configure为软件配置与检查,也可以称之为编译前准备。

  • 定义需要的功能选项;
  • 检测系统环境是否符合安装要求;
  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑;

执行命令:

./configure --prefix=/usr/local/apache2

发现命令报错“configure: error: APR not found. ”

从零开始学习Linux(十八):源码包管理_第6张图片

解决方案: Centos安装 Apache2.4提示 APR not found的解决办法

第二步

$ make 进行编译

执行命令:

make
第三步

$ make install 编译安装

执行命令:

make install 
第四步

$ PREFIX/bin/apachectl star 启动命令

其中 PREFIX 是软件的安装路径

执行命令:

/usr/local/apache2/bin/apachectl start

在浏览器中输入 http://IP,如果能够正确浏览表示服务启动成功。如下图所示:

从零开始学习Linux(十八):源码包管理_第7张图片

4、源码包卸载

不需要执行任何卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

如果在执行./configure这一步编译报错的时候,并且问题也未解决。
使用命令:make clear 可以清除编译产生的临时文件。

软件在执行make install命令之后才真正开始安装。

你可能感兴趣的:(从零开始学习Linux(十八):源码包管理)