『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载

1、源码包安装注意事项

(1)应该选择哪种软件包?(建议)

  • 如果软件包是给大量客户提供访问,建议使用源码包安装,如LAMP环境搭建,因为源码包效率更高。
  • 如果软件包是给Linux底层使用,或只给少量客户访问,建议使用rpm包安装,因为rpm包简单。

如果不考虑软件效率,用哪种方式都可以。

(2)源码包是从哪里来的?

  • rpm包是光盘中直接包含的,所以不需要用户单独下载。
  • 而源码包是通过官方网站下载的,如果需要使用,是需要单独下载的。

(3)是否可以在系统中即安装rpm包的Apache,又安装源码包的Apache?

答案是可以,因为两种安装方法安装的Apache,安装位置是不一样的。

例如:
『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载
(上图文件的位置一定要记下来)

提示:
service命令能启动rpm包安装方式安装的软件,是因为service命令会搜索/etc/rc. d/init. d/目录下启动命令。
我可以把源码包安装后启动文件/usr/1ocal/apache2/bin/apachectl,拷贝到/etc/rc. d/init. d/目录下,service命令就可以用了。
但是,不推荐,因为软件的安装位置不同,是区分rpm安装还是源码包安装最好的方式。
(Red Hat 6是这样,Red Hat 7有所改变。)

(4)生产服务器上,是否会同时安装两种Apache?

当然不会啊,因为系统中只有一个80端口,所以你只能启动一个Apache,装多个只能浪费资源。我们建议安装源码包的Apache。

服务是可以修改端口号的:

  • 如果服务是给大量客户端访问的,不建议更换端口,因为用户就找不到了。
  • 如果服务是给内部人员使用,建议改换端口,因为更加安全。

2、源码包安装过程

我们来解释一下源码包安装的具体步骤。

(1)下载软件包。

httpd-2.2.9.tar.gz

(2)解压缩。

[[email protected] ~ ] # tar -zxvf httpd-2.2.9.tar.gz

(3)进入解压目录。

『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载

(4)./configure编译前准备

这一步主要有三个作用:

  • 在安装之前需要检测系统环境是否符合安装要求。

  • 定义需要的功能选项。./configure支持的功能选项较多,可以执行./configure --help命令查询其支持的功能。
    一般都会通过./configure --prefix=安装路径来指定安装路径。

  • 把系统环境的检测结果和定义好的功能选项写入Makefile文件,后续的编译和安装需要依赖这个文件的内容。

    需要注意的是,configure不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用
    ./configure方式执行(./代表在当前目录下)。
    『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载

(5)make编译

  • make命令会调用gcc编译器,并读取Makefile文件中的信息进行系统软件编译。
  • 编译的目的就是把源码程序转变为能被Linux识别的可执行文件,这些可执行文件保存在当前目录下。
  • 编译过程较为耗时,需要有足够的耐心。

(6)make clean:清空编译内容(非必需步骤)。

如果在./configuremake编译中报错,那么我们在重新执行命令前一定要记得执行make clean命令,它会清空Makefile文件或编译产生的.o头文件。

注意:源码包报错:
1)安装过程必须停止。
2)在最后几行是否出现no,warning,error关键字,有则说明出现错误。

(7)make install:编译安装

这才是真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个命令的执行过程保存下来,以备将来删除使用。

注意:只有这步执行了,如果指定了安装的文件夹,才开始创建。这个时候如果安装报错,除了需要执行上边的make clean命令,还需要手动的把安装目录给删除掉,才是彻底清空,然后才能重新安装软件。

绝大多数的源码包安装步骤都是和上边一样的,有不一样的单独记一下即可,或者安装的时候查看一下文档也行。

总结

源码包安装出现错误很难解决。能用rpm包安装的尽量用rpm包安装。

3、源码包删除

源码包没有删除命令,如果需要删除,直接删除安装目录即可。

4、源码包启动

在软件的解压缩目录下就有软件的安装说明,位置如下:
『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载
文件内容如下:
『无欲则无求』Linux软件包管理 — 46、Linux源码包的安装和卸载

说明:

  • $ ./configure --prefix=PREFIX : 编译准备
  • $ make : 编译
  • $ make install : 安装
  • $ PREFIX/bin/apachectl start : 启动,是在安装目录下(PREFIX)的bin/apachectl start

5、关闭服务

软件安装目录/bin/apachectl stop