src=http---www.dongtiantech.com-d-file-xwzx-base-b529f8b21d7d18cd6e91bc39629aff78.jpg&refer=http---www.dongtiantech.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg.jpeg


一 软件包分类

1、软件包分类

  • 源码包
  • 二进制包

(脚本安装包)


2、源码包

2.1 源码包什么样

  1. [root@localhost ~]# vim hello.c
  2. #include <stdio.h>
  3. int main (void)
  4. {
  5. printf ("hello world\n");
  6. }
  1. [root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/gcc-4.4.6-4.el6.i686.rpm
  1. [root@localhost ~]# gcc -c hello.c
  2. #-c 生成“.o”头文件。这里会生成 hello.o 头文件,但是不会生成执行文件
  3. [root@localhost ~]# gcc -o hello hello.o
  4. #-o 生成执行文件,并制定执行文件名。这里生成的 hello 就是可执行文件
  5. [root@localhost ~]# ./hello
  6. hello world #执行 hello 文件

2.2 源码包特点

源码包的优点是:

  • 开源,如果有足够的能力,可以修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
  • 卸载方便

源码包有缺点吗?

  • 安装过程步骤较多,尤其安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写 错误
  • 编译过程时间较长,安装比二进制安装时间长
  • 因为是编译安装,安装过程中一旦报错新手很难解决

3、二进制包

3.1 二进制包分类

  • DPKG 包:是由 Debian Linux 所开发出来的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理。主要应用在 Debian 和 unbuntu 中。
  • RPM 包:是由 Red Hat 公司所开发的包管理系统。功能强大,安装、升级、查询和卸载 都非常简单和方便。目前很多 Linux 都在使用这种包管理方式,包括 Fedora、CentOS、 SuSE 等。我们学习的是 CentOS 6.3,所以我们将要学习 RPM 包管理系统

    3.2 特点

    RPM 包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

  • 安装速度比源码包安装快的多

RPM 包的缺点: 

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活
  • 依赖性。有时我们会发现需要安装软件包 a 时需要先安装 b 和 c,而安装 b 时需要安装 d 和 e。这是需要先安装 d 和 e,再安装 b 和 c,最后才能安装 a 包。比如说,我买了个 漂亮的灯具,打算安装到我们家客厅,可是在安装灯具之前我们家客厅总要有顶棚吧, 顶棚总要是做好了防水和刷好油漆了吧,这个装修和安装软件其实类似总要有一定的顺 序的。可是有时依赖性会非常繁琐

    3.3 RPM包依赖

    image.png
    1)树形依赖 a——>b——>c
    2)环形依赖 a——>b——>c——>a
    3)函数库依赖
    什么是模块依赖?我们举一个例子,尝试安装以下文件:
    1. [root@localhost Packages]# rpm -ivh mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm
    2. 错误:依赖检测失败:
    3. libodbc.so.2()(64bit) mysql-connector-odbc-5.2.5-7.el7.x86_64 需要
    4. libodbcinst.so.2()(64bit) mysql-connector-odbc-5.2.5-7.el7.x86_64 需要
    发现报错,需要安装“libodbc.so.2”函数库文件,这时会发现在光盘中根本找不到这个文件。那是 因为函数库没有单独成包,是包含在某一个软件包中的。而如果要知道在哪个软件包中,需要查询网站 www.rpmfind.net,如图:
    image.png