由於Linux系統開放源代碼的特性,因此在系統上運行的大部分軟件也都是開源軟件。開源軟件基本都提供源碼的下載,這時就能夠經過源碼來安裝軟件。 前端
使用源碼安裝軟件的優勢在於用戶能夠自定製軟件功能,只安裝須要的模塊;安裝時可自定義軟件安裝的路徑,方便管理;卸載時只要刪除軟件安裝目錄便可。 node
在源碼安裝以前,須要把開發工具等基礎模塊安裝好,好比 gcc、gcc-c++、libgcc、glibc、make、automake等開發工具和基礎包;還要安裝一些相應的開發包,通常是包名-devel類型的,glibc-devel、gettext-devel等(若是源碼安裝過程當中提示缺乏某軟件包可是該軟件包已經安裝,能夠檢查是否該包的開發包即包名-devel是否安裝);還有一些開發庫,好比以lib開頭的開發庫。python
進入源碼目錄,通常都有README或INSTALL文件,或者是DOC目錄,這些是安裝說明文檔。能夠按照文檔中的說明進行軟件的安裝。c++
源碼安裝軟件通常包含如下步驟:分析安裝平臺環境、編譯安裝軟件。sql
分析安裝平臺環境數據庫
源碼目錄下有個命名爲configure的可執行文件,使用命令./configure進行軟件安裝環境的檢測,若是提示缺乏某些軟件包,則須要先安裝這些包,再從新進行檢測,直到檢測經過。configure的--prefix參數用於指定軟件安裝的目錄;configure的其餘參數能夠參考軟件的安裝說明,不一樣軟件會支持不一樣的參數。緩存
編譯安裝軟件安全
安裝環境檢測經過後,運行make命令進行編譯。make是咱們常常用到的編譯命令,對於一個包含不少源文件的應用程序,使用make和makefile工具能夠簡單快速的解決各個源文件之間複雜的依賴關係;同時,make工具還能夠自動完成全部源碼文件的編譯工做,而且能夠只對上次編譯後修改過的文件進行增量編譯。若是不須要增量編譯,使用make clean命令清除上次編譯的結果,從新開始編譯。 服務器
make工具最主要的功能就是經過makefile文件來實現的,makefile文件是按照某種語法來進行編寫的,文件中定義了各個源文件之間的依賴關係,並說明了如何編譯源文件並生成可執行文件,它經過描述各個源程序之間的關係讓make工具自動完成編譯工做。 工具
編譯完成後,執行make install命令將編譯完成的軟件複製到指定的安裝目錄下,至此,源碼安裝軟件完成。
RPM,Red Hat Package Manager,Red Hat軟件包管理,由Red Hat公司開發的Linux軟件包管理工具。因爲該管理工具在軟件安裝和管理方面很是方便易用,逐漸被其餘Linux發行版使用,如今已經成爲Linux下通用的一種軟件包管理方式。另一種流行的工具爲Debian開發的dpkg。
RPM軟件包以.rpm結尾。每一個RPM文件中包含了已完成編譯的二進制可執行文件,本質爲將源碼進行編譯安裝而後封裝成RPM文件。
優勢:安裝簡單方便,由於軟件已經編譯完成打包完畢,安裝只是個驗證環境和解壓的過程。
缺點:對操做系統環境的依賴很是大,它要求RPM包的安裝環境必須與RPM包的封裝環境一致或至關;另外還需知足安裝時的軟件包依賴關係
RPM包的封裝格式通常有兩種,分別是RPM和SRPM,SRPM包也是一種RPM,可是它包含了編譯時的源碼文件和一些編譯指定的參數文件,於是在使用的時候須要從新進行編譯,一般SRPM文件名稱相似於xxx.src.rpm。
RPM包文件名的含義:
通常的RPM封裝包的命名格式都有這六個部分組成,因爲SRPM包是須要編譯才能使用的,所以沒有上面顯示項中對應的平臺選項,其它與RPM包命令格式徹底同樣。
2.3.一、安裝RPM包
語法以下:
rpm –i [輔助選項] RPM包
經常使用輔助選項:
小技巧:若是安裝A軟件包時依賴B軟件包,而安裝B軟件包時又依賴A軟件包,則能夠同時安裝這兩個軟件包以解決相互依賴的狀況,使用命令rpm –ivh A.rpm B.rpm
2.3.二、更新RPM包
語法以下:
rpm -U [輔助選項] RPM包
經常使用輔助選項參考安裝RPM包。
2.3.三、查詢RPM包
語法以下:
rpm -q [輔助選項] RPM包
經常使用輔助選項:
2.3.四、刪除RPM包
語法以下:
rpm -e [輔助選項] 已安裝的軟件包名
經常使用輔助選項:
2.3.五、驗證未安裝的RPM包
RPM包是否值得信任,是否損壞,能夠經過RPM提供的選項進行驗證。RPM軟件包通常使用 Gnu 隱私衛士(GPG)來簽名,從而幫助使用者驗證下載的軟件包是否可信。語法以下:
rpm -K RPM包
yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。
使用命令rpm –qa|grep yum查看yum工具是否安裝。
若是系統中還未安裝yum工具,則能夠經過CentOS的安裝光盤安裝,CentOS光盤上帶有yum安裝包,使用如下命令安裝yum:
rpm -ivh yum-*.noarch.rpm
注意:yum的安裝須要依賴python-elementtree、python-sqlite、urlgrabber、yumconf等軟件包,這些包在CentOS的安裝光盤中都可找到。
yum主要配置文件
yum的特色
使用yum安裝軟件:
yum install 軟件名
使用yum刪除軟件:
yum remove 軟件名
注意:刪除軟件時yum會同時刪除該軟件的依賴包。
檢查是否有可更新的軟件:
yum check-update
更新全部可升級的軟件:
yum update
列出軟件源中特定的能夠安裝/更新/已經安裝的軟件包的信息:
yum info 軟件名
列出軟件源中特定的能夠安裝/更新或已經安裝的軟件包:
yum list 軟件名
搜索匹配特定字符的軟件包的詳細信息:
yum search 軟件名
清除緩存中舊的軟件包信息:
yum clean headers|packages|metadata|dbcache|plugins|expire-cache|rpmdb|all
生成新的緩存:
yum makecache
列出軟件的依賴:
yum deplist 軟件包
yum的一些經常使用選項:
使用yum僅下載軟件不安裝:
注意:推薦使用yum-downloadonly插件,該插件在下載軟件包時會下載該軟件依賴的全部其餘軟件包。
yum加速插件yum-fastestmirror:
yum-fastestmirror插件能夠自動選擇最快的軟件源下載安裝軟件。該插件的配置文件位於
/etc/yum/pluginconf.d/fastestmirror.conf,yum軟件源的速度測試記錄文件爲yum緩存下的timedhosts.txt文件。
使用命令yum install yum-plugin-fastestmirror安裝該插件。
如下以在CentOS 6.9中將系統默認軟件源更換爲阿里雲軟件源爲例
進入軟件源配置目錄:
cd /etc/yum.repos.d
備份系統默認的軟件源:
mv CentOS-Base.repo CentOS-Base.repo.backup
下載阿里雲軟件源配置文件,注意,下載的軟件源配置文件必須與所用的系統對應:
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
清理yum緩存:
yum clean all
生成新的yum緩存:
yum makecache
3.5.一、EPEL源
EPEL,全稱是企業版Linux附加軟件包,是一個由特別興趣小組建立、維護並管理的,針對紅帽企業版Linux(RHEL)及其衍生髮行版(例如CentOS、Scientific Linux)的一個高質量附加軟件包項目。 其官方網址爲:http://fedoraproject.org/wiki/EPEL/zh-cn, EPEL的軟件包不會與企業版Linux官方源中的軟件包發生衝突,或者互相替換文件。
相關的EPEL軟件包能夠從EPEL官方網站下載到,針對CentOS系統,有EL六、EL7三個版本,分別針對CentOS 6.x、CentOS 7.x三個系列版本。
也可使用如下命令安裝該軟件源:
yum install epel-release
3.5.二、rpmforge源
rpmforge是一個第三方的軟件源倉庫,也是CentOS官方社區推薦的第三方yum源,它爲CentOS系統提供了超過10000個軟件包,被CentOS社區認爲是最安全也是最穩定的一個軟件倉庫。可是因爲這個安裝源不是CentOS自己的組成部分,所以要使用rpmforge,須要手動下載並安裝。
rpmforge的官方網站是http://repoforge.org ,能夠在http://repoforge.org/use/ 下載RHEL/CentOS各個版本的「rpmforge-release」包,這樣就可使用RPMForge提升的豐富軟件了。
Linux下二進制格式的軟件是指事先已經在各類平臺編譯安裝好相關軟件,而後壓縮打包,在安裝時只需解壓或者執行安裝可執行文件便可。二進制軟件包的優勢是安裝簡單、容易,缺點是缺少靈活性,相應的軟件包執行在對應平臺下安裝,離開這個環境軟件就沒法運行。
二進制軟件包提供了不少類型的打包方式,最多見的就是RPM格式,還有以tar.gz、tgz、tar.bz2等形式的二進制軟件包。
這種格式的軟件包,安裝其實就是簡單的解壓過程,根據不一樣的軟件打包格式,用對應的解壓命令解壓便可。