【二进制形式的安装包】

编译好的软件包。定制性弱,方便


*.rpm形式的二进制软件包###

*.tar.gz形式的二进制软件包###



【源代码形式的安装包】

源码形式的软件包。定制性强,不便



*.src.rpm形式的源代码软件包

.tar.gz/.tgz、*.bz2形式的源代码软件包


那有人会问了,怎么区分.tar.gz是二进制包还是源码包呢?

答:源代码包里的文件往往会含有种种源代码文件,头文件.h、c代码源文 件.c、C++代码源文件.cc/.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件)



////注释掉

1、比较

1、rpm格式: libjpeg-devel-6b-33.x86_64.rpm                            #rpm格式很好区分, 
2、二进制包: mysql-3.23.58-pc-linux-i686.tar.gz                       #名字很长,有版本号、适应平台、适应的硬件类型等,格式:mysql-<版本>--tar.gz 
3、源码包: php-5.2.14.tar.gz                                          #而源码格式仅仅就是一个版本号的tar包。需要经过./config、make、make install


帮你理解

注意:源代码方式和二进制包是软件包的两种形式。二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用。源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。MySQL的源码包要编辑只能使用cmake工具,所以一般采用其二进制包




2、rpm包的分类及转换

   分类

    1、[普通的rpm包]:直接安装,不能修改

    2、[src的rpm包]: 可还原为源码格式,安装为适合自己需求的程序

 

   转换

     <1>src的rpm包--->源码包

[root@slave2~]#>>rpm -ivh libfastcommon-1.0.33-1.el7.centos.src.rpm 

[root@slave2~]#>>ls /rpmbuild/

SPECS   SOURCES

[root@slave2~]#>>ls rpmbuild/SOURCES

libfastcommon-1.0.33.tar.gz


      <2>源码包--->普通的rpm包+src的源码包

[root@slave2~]#>>mkdir rpmbuild/{SOURCES,SPECS}

[root@slave2~]#>>cp libfastcommon-1.23/libfastcommon.spec rpmbuild/SPECS/

[root@slave2~]#>>cp libfastcommon-1.23.tar.gz rpmbuild/SOURCES/

[root@slave2~/rpmbuild/SPECS]#>>rpmbuild -ba libfastcommon.spec [制作src的rpm和普通的rpm]

[root@slave2~/rpmbuild/SPECS]#>>rpmbuild -ba libfastcommon.spec [制作普通的rpm]



帮你理解

0、rpm的安装格式rpm -ivh ./*.rpm

1、yum不能安装src的源码包,只能使用rpm -ivh

2、yum list all下显示的anaconda是系统自带的rpm包,epel是EPEL源中的包

4、源码包转换rpm包只有在ansible等批量部署的情况下才有必要。