linux 源码包管理和安装 | Leezhiy Blog

linux 源码包管理和安装

软件包管理简介

软件包分类

软件包分为两大类:源码包和二进制包(RPM包、系统默认包)。

  • 源码包

    指的是直接把软件的源代码开放给用户的安装包。Linux最大的特点就是开源,它是用C语言编写的,所以绝大部分源码包也是用C语言编写的。源码包安装过程比较慢和复杂,而且容易报错。源码包可以到该软件的官方网站下载。它的文件名一般是以 .c 结尾,可以用写字板打开查看源代码。计算机能够识别的语言是二进制代码,也就是0或1组成的代码。要想让计算机识别源码包,就必须先将其编译为二进制代码。编译过程,需要C语言编译器gcc的支持。

    脚本安装包也是源码包的一种,它绝大多数是对源码包进行再开发之后的源码包。这种包比较少见,有点类似于Windows中的软件包,它的安装程序一般是install.sh,其安装过程非常简单,有简易的安装界面。

  • 二进制包

    也叫RPM包,也是系统默认包,它是经过编译之后的安装包。不能看到它的源代码。二进制包实际上是软件的厂商在发行软件时,将源码包进行了编译和一些特定的设置。从而,简化了安装步骤,加快了安装速度。RPM包的文件名一般以 .rpm 结尾。

    注意:redhat系列的Linux系统(比如:CentOS)用的二进制包才是RPM包,Ubuntu和Debian系列的Linux系统用的二进制包是DEB包。

    redhat系列与Ubuntu和Debian系列的Linux系统的主要区别就在于二进制包的不同。

源码包的优缺点

源码包的优点:

  • 开源,如果有足够的能力,可以修改源代码。
  • 可以自由选择所需要的功能。
  • 软件是编译安装,软件更加适合系统,更加稳定,运行效率更高。
  • 卸载方便(可以直接删除软件的安装目录,不会有任何垃圾文件)。

源码包的缺点:

  • 安装步骤多,过程复杂,容易出错。
  • 编译时间较长。
  • 因为是编译安装,安装过程中一旦报错,新手很难解决。

源码包管理

源码包和rpm包的区别

rpm包安装时,不需要指定安装位置,它会安装在系统的默认位置中。

大多数rpm包的默认安装位置如下:

script
1
2
3
4
5
/etc/           配置文件
/usr/bin/ 可执行的命令
/usr/lib/ 程序所使用的函数库
/usr/share/doc/ 基本的软件使用手册
/usr/share/man/ 帮助手册

源码包安装时,可以指定安装位置,如果没有指定,一般来说,默认的安装位置是 /usr/local/软件名/ 目录下。

由于安装位置的不同,导致了服务的管理方法的不同。

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

例如,rpm包安装的apache的启动方法有两种:

script
1
2
3
4
/etc/rc.d/init.d/httpd start
或者
service httpd start
注意: service 命令是红帽子系列的linux系统专有的,其他linux系统可能没有该命令

service 命令会到服务的默认保存位置 /etc/rc.d/init.d/ 中搜索相关的服务是否存在。

源码包安装的服务,则不能用服务管理命令(service)来管理,只能用绝对路径进行服务的管理。

例如,源码包安装的apache的启动方法:

script
1
/usr/local/apache2/bin/apachectl start

源码包的安装方法

这里以安装apache的源码包为例。

  1. 安装准备

    安装C语言编译器 gcc ( yum -y install gcc )

    下载apache的源码包 http://mirror.bit.edu.cn/apache/httpd/

  2. 安装注意事项

    源码包的保存位置 /usr/local/src

    (将下载好的源码包压缩文件,拷贝至这个目录,便于对所有的源码包进行管理)

    软件的安装位置 /usr/local

  3. 安装过程

    script
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    tar -zxf httpd-2.2.9.tar.gz
    解压源码包

    cd httpd-2.2.9
    进入解压后的目录

    ls
    查看当前目录中有哪些文件( 一般都会有安装说明文件INSTALL和使用说明文件README )

    ./configure --prefix=/usr/local/apache2
    软件配置与检查
    (如果这一步出错,可使用命令 make clean 清空编译产生的临时文件.解决问题后,再来重新安装)

    make
    编译
    (如果这一步出错,可使用命令 make clean 清空编译产生的临时文件.解决问题后,再来重新安装)

    make install
    执行安装
    ( 这时,才会把软件安装到指定的安装位置.到此,安装步骤结束)

    /usr/local/apache2/bin/apachectl start
    启动apache
  4. 源码包的卸载

    rm -rf /usr/local/apache2/

    源码包没有指定的卸载命令,可以直接删除安装目录达到卸载目的,不会遗留任何垃圾文件。

脚本安装包

脚本安装包并不是独立的软件包类型,而是人为地把源码包的安装过程写成了可以自动安装的脚本,只要执行安装脚本(一般为setup.sh),定义简单的参数,就可以快速完成安装。(非常类似于Windows中的软件安装方式)。

解压脚本安装包,进入解压后的目录,执行 setup.sh 脚本文件,一直回车(使用默认的参数)即可顺利完成安装。

脚本安装包非常少见,了解即可。

Buy me a cup of milkshake 🍨.
------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------

欢迎关注我的其它发布渠道