Linux下二進制包、源代碼包、rpm包

主要提供三種格式的mysql包:rpm格式、二進制格式、源碼格式:(tar打包,gz壓縮)php

rpm格式: libjpeg-devel-6b-33.x86_64.rpm       #rpm格式很好區分,mysql

二進制包: mysql-3.23.58-pc-linux-i686.tar.gz   #二進制格式的包名字很長,有版本號、適應平臺、適應的硬件類型等,格式:mysql-<版本>-<OS>-tar.gzlinux

源碼包:    php-5.2.14.tar.gz                            #而源碼格式僅僅就是一個版本號的tar包。#cj 安裝區別:解壓、./config、make、make install程序員

 

source code 是程序員寫的碼, 
binary code 是機器跑的碼。 
source code 得通過 compile 才能成爲 binary code 。 sql

RPM 有分兩種:binary rpm 跟 source rpm 。 
前者是編好的 binary ,安裝就可用。 
後者是還沒編好的 source ,需 rebuild 之後才能安裝
ui

 

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

 

Linux下有個命令叫file,由於Linux並非按照後綴名來判斷文件類型的。因此通常在不清楚文件究竟是什麼類型的時候,就用file這個命令去判斷。
file php-5.2.14.tar.gz 
php-5.2.14.tar.gz: gzip compressed data, was "php-5.2.14.tar", from Unix, last modified: Wed Jul 21 22:32:34 2010, max compression
這個php-5.2.14.tar.gz 明顯是個gzip的壓縮包,這樣的文件通常都是用tar zxvf 命令去解包而後去配置編譯安裝的,一般狀況把這種安裝方法叫作源碼編譯安裝。

file libjpeg-devel-6b-33.x86_64.rpm 
libjpeg-devel-6b-33.x86_64.rpm: RPM v3 bin i386 libjpeg-devel-6b-33
這個libjpeg-devel-6b-33.x86_64.rpm 文件,就是個標準的redhat系列發行版本所用的RPM格式軟件包。通常在RHEL、CentOS、SUSE、OracleLinux下均可以安裝相似的RPM包。標準的安裝方法是rpm -ivh。

基本上紅帽系列Linux發行版本安裝軟件就這兩種方法了。還有常常被提起的yum,其實就是由yum自動判斷rpm包的依賴,而後一次性把全部須要安裝的N個rpm統一下載安裝,其實原理和一個個的安裝rpm沒有什麼本質區別。
操作系統

 

 通常在官網上下載的源碼包都是以:tar.gz tar.bz2結尾的,通過編譯的通常是以.rpm來結尾的,linux下的文件擴展名沒有實際的意義,這樣作只是爲了方便你去查看是什麼類型的包而後採起什麼樣的方式去安裝和配置,固然有時候並不能從文件的擴展名去查看什麼類型的包,由於文件名能夠隨意的去修改可使用file這個命令去查看文件包的類型.code

 

源碼的安裝通常由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)ip

Configure是一個可執行腳本,它有不少選項,在待安裝的源碼路徑下使用命令./configure –help輸出詳細的選項列表。

其中--prefix選項是配置安裝的路徑,若是不配置該選項,安裝後可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr /local/share,比較凌亂。

若是配置--prefix,如:

  1. ./configure --prefix=/usr/local/test

能夠把全部資源文件放在/usr/local/test的路徑中,不會雜亂。

用了—prefix選項的另外一個好處是卸載軟件或移植軟件。當某個安裝的軟件再也不須要時,只須簡單的刪除該安裝目錄,就能夠把軟件卸載得乾乾淨淨;移植軟件只需拷貝整個目錄到另一個機器便可(相同的操做系統)。

固然要卸載程序,也能夠在原來的make目錄下用一次make uninstall,但前提是make文件指定過uninstall。

相關文章
相關標籤/搜索