源碼包、二進制包


【二進制形式的安裝包】php

編譯好的軟件包。定製性弱,方便
mysql


*.rpm形式的二進制軟件包###linux

*.tar.gz形式的二進制軟件包###



【源代碼形式的安裝包】web

源碼形式的軟件包。定製性強,不便
sql



*.src.rpm形式的源代碼軟件包

.tar.gz/.tgz、*.bz2形式的源代碼軟件包


那有人會問了,怎麼區分.tar.gz是二進制包仍是源碼包呢?centos

答:源代碼包裏的文件每每會含有種種源代碼文件,頭文件.h、c代碼源文 件.c、C++代碼源文件.cc/.cpp等;而二進制包裏的文件則會有可執行文件(與軟件同名的每每是主執行文件)app



////註釋掉
ide

一、比較工具

一、rpm格式: libjpeg-devel-6b-33.x86_64.rpm                            #rpm格式很好區分, 
二、二進制包: mysql-3.23.58-pc-linux-i686.tar.gz                       #名字很長,有版本號、適應平臺、適應的硬件類型等,格式:mysql-<版本>--tar.gz 
三、源碼包: php-5.2.14.tar.gz                                          #而源碼格式僅僅就是一個版本號的tar包。須要通過./config、make、make installui


幫你理解

注意:源代碼方式和二進制包是軟件包的兩種形式。二進制包裏面包括了已經通過編譯,能夠立刻運行的程序。你只須要下載和解包(安裝)它們之後,就立刻能夠使用。源代碼包裏面包括了程序原始的程序代碼,須要在你的計算機上進行編譯之後才能夠產生能夠運行程序,因此從源代碼安裝的時間會比較長。MySQL的源碼包要編輯只能使用cmake工具,因此通常採用其二進制包




二、rpm包的分類及轉換

   分類

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

    二、[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

一、yum不能安裝src的源碼包,只能使用rpm -ivh

二、yum list all下顯示的anaconda是系統自帶的rpm包,epel是EPEL源中的包

四、源碼包轉換rpm包只有在ansible等批量部署的狀況下才有必要。

相關文章
相關標籤/搜索