一、概述
現在Linux上軟件的安裝方式有多種,有源碼包編譯,軟件包管理器,軟件包管理器前端工具,通用二進制編譯等。源碼包,優點是,靈活性和可定製性比較好,缺點是,技術要求高,操作複雜,雖然網上有編譯安裝軟件的文檔,也有很多人在使用,也都是默認或者簡單配置後編譯的。後來出了軟件包管理工具RPM,RPM軟件包管理軟件方便多了但是它的依賴關係讓人頭疼,所以又推出出了YUM解決了讓人頭疼的依賴關係。在這裏我給大家介紹一下幾種常用Linux軟件安裝方式。
二、軟件包的組成
一個軟件包安裝之後包含多種類型文件,我們先了解一下它的組成與分佈的位置
1、二進制文件
分佈的目錄:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
2、庫文件
分佈目錄: /lib, /usr/lib, /usr/local/lib
3、配置文件
分佈目錄: /etc
4、幫助文件(通常這裏會教你如何進行安裝)
手冊:README INSTALL /usr/share/doc
三、程序安裝方式
1、通用二進制編譯:別人編譯好的,解壓之後配置就能使用。
這裏着重說一下源碼包安裝,由於一些特殊的個性化設置,我們需要源碼包安裝一個服務,我覺得它的基本思路就是遇到問題解決問題,當我們源碼包安裝一個服務時,最常見的問題就是缺少基礎程序,也就是庫文件(devel包),這時我們通過yum逐條擊破安裝,直到服務安裝成功即可(不在報錯)
源碼包安裝的基本流程:解壓→進入目錄→./configure --prefix=自己定義的安裝路徑(這個時候通常就是之前說的遇到問題的時候,提示缺少環境、依賴關係,用yum逐條安裝即可)→make→make install
四、RPM軟件包管理工具
1、基本功能:
打包、安裝、查詢升級、校驗、寫在、數據管理(重建)
2、rpm軟件包包含:
文件清單、文件存放路徑、提供的功能說明、依賴關係
3、數據庫:軟件包信息,軟件包校驗
4、源程序命名方式:
注意:下載軟件包時要注意區分操作系統和平臺,不然可能會裝不上的
6、rpm分包
7、常用軟件包下載地址:
-i|–install :安裝一個新的軟件包
-v :顯示安裝過程,-vv顯示更詳細的安裝過程
# yum主配置文件詳解 #/etc/yum.conf #[main] //定義yum源名稱 #cachedir=/var/cache/yum //定義yum的緩存目錄 #keepcache=0 //保存緩存 #debuglevel=2 //調試級別 #logfile=/var/log/yum.log //日誌文件所在目錄 #distroverpkg=redhat-release //驗證rpm發行版所使用的密鑰文件 #tolerant=1 //忽略已安裝的軟件 #exactarch=1 //必須做平臺的精確匹配 #obsoletes=1 //是否檢查廢棄的包 #gpgcheck=1 //是否檢查rpm包的簽名,驗證rpm包來源的合法性 #plugins=1 //是否啓用插件 # Note: yum-RHN-plugin doesn't honor this. #metadata_expire=1h //緩存文件在本地緩存多長時間
#配置文件 /etc/yum.repos.d/*.repo詳解 #[repo] #name=Primary Yum repository #baseurl=http://mirror.sohu.com/fedora-epel/6/i386/ //yum源網址 #enabled={0|1} //{不開啓|開啓} #gpgcheck={0|1} //{不檢查|檢查簽名} #gpgkey=file:///etc/pki/RPM-GPG-KEY-redhat-base //指定驗證用的密鑰文件
4、常用的yum命令
//查詢、清除建立緩存 #yum list {all|installed|available} :列出軟件包 {所有|已安裝|可安裝} #yum repolist {all|enabled|disabled} :列出yum源 {所有|開啓的|未開啓的} #yum clean all :清除yum緩存 #yum makecache :生成yun緩存 //安裝 #yum install package_name :安裝軟件包,添加 -y可以自動回答yes #yum reinstall package_name … :重新安裝軟件包 #yum groupinstall "package-group_name" :安裝一個包組 //升級 #yum update package_name :升級軟件包 #yum check-update :查詢可升級的包 #yum update-to :升級到指定的版本 #yum groupupdate "group_name" :升級包組 //卸載 #yum remove package_name … :卸載一個軟件包 #yum groupremove "group_name" :卸載一個包組