一、linux系統下的軟體包可分為三種:
1)源碼(source code)
2)rpm(基于rpm--redhat package manager,軟體包管理器的rpm軟體包,常用)
3)dbkg(基于debian的軟體包管理器)
二、軟體包的組成:
二進制檔案、配置檔案、庫檔案、文檔。
三、軟體包的安裝方式:
3.1 手動編譯安裝源代碼
一般就是“三步走”完成源碼的安裝。
1)./configure --分析安裝平台環境
在軟體包解壓完畢之後,我們進入源碼目錄,一般都會存在configure和readme這麼兩個檔案,readme詳細的介紹了這個軟體所能完成的功能、授權許可、安裝需求、安裝注意事項、安裝方式等等,是以在安裝軟體前,一定要事先閱讀這個readme檔案,確定安裝的正确性。configure檔案一般是個可執行檔案,可以在目前目錄下直接輸入 “./configure”進行軟體安裝的環境測試.源碼安裝都需要gcc或者cc編譯器.最後測試成功會生成makefile檔案,為下一步使用make編譯做準備。
2)make --編譯安裝軟體
make工具最主要的功能就是通過makefile檔案來實作的,makefile檔案是按照某種文法來進行編寫的,檔案中定義了各個源檔案之間的依賴關系,并說明了如何編譯源檔案并生成可執行檔案,它通過描述各個源程式之間的關系讓make工具自動完成編譯工作。
3)make install --安裝軟體
注:軟體安裝完成後,可能需要導出軟體的庫檔案,改變環境變量,導入man檔案路徑,以及頭檔案。
1、軟體庫檔案導出方法:
a.在/etc/ld.so.conf.d/建立一個以.conf結尾的檔案,并将此程式的庫檔案路徑添加至此檔案中
如/usr/local/apache/lib
b.執行ldconfig,讓系統重新裝載庫檔案;
#ldconfig -v
2、可執行程式路徑的導出方法:
#export path=$path:/usr/local/apache/bin
也可以寫入配置檔案:
寫入/etc/profile:--對所有使用者生效
寫入~/.bash_profile--僅對目前使用者生效
3、man檔案路徑導出方法
編輯/etc/man.config檔案,新增加如下一行;
例如:manpath /usr/local/apache/man
4、頭檔案導出方法
建立連結(例如:ln -sv /usr/local/apache/lnclude /usr/include/apache)
3.2 rpm包方式安裝
rpm包管理類似于windows下的“添加/删除程式”但是功能卻比“添加/删除程式”強大很多。在linux的系統安裝CD光牒中,有很多以“.rpm” 結尾的軟體包,這些封包件就是我們所說的rpm檔案。每個rpm檔案中包含了已經編譯好的二進制可執行檔案,其實就是将軟體源碼檔案進行編譯安裝,然後進行封裝,就成了rpm檔案,類似與windows安裝包中的“.exe”檔案。
rpm包管理方式的優點是:安裝簡單友善,因為軟體已經編譯完成打包完畢,安裝隻是個驗證環境和解壓的過程。此外通過rpm方式安裝的軟體,rpm工具都會記錄軟體的安裝資訊,這樣友善了軟體日後的查詢,更新和解除安裝。
rpm工具的使用分為安裝、查詢、驗證、更新、删除等操作。
安裝:
rpm -i /pathrpm_package
rpm -ivh --nodeps --force
v;顯示安裝資訊;
h:以#顯示安裝進度(一個#:2%的進度)
--nodeps 忽略依賴關系
--force 強制安裝
解除安裝:
rpm -e name --nodeps
更新:
rpm -uvh /pathrpm_package
rpm -fvh /pathrpm_package
-uvh 老版本的安裝了的就更新安裝,沒安裝就直接安裝新版本
-fvh 老版本必須的安裝
--force 強行更新
查詢:
rpm -q name--查詢軟體包的版本資訊
rpm -qa --查詢目前系統上安裝的軟體包 支援檔案名通配
rpm -qi name --查詢軟體包的描述資訊
rpm -ql name --查詢軟體包安裝後都生成了那些檔案
rpm -qc name --查詢軟體的配置檔案所存放的位置
rpm -qd name --查詢軟體文檔所存放的位置
rpm -q --scripts name --檢視軟體包安裝時執行的腳本
rpm -qf filename|path --查詢那個檔案是由那個軟體包安裝生成的
rpm -q --changelog name --檢視每一次的制作都改進了那些内容
rpm -qpi name --檢視未安裝軟體包的描述資訊
-p --檢視未安裝軟體包的資訊
校驗:
rpm -v
屬性:
s:檔案大小改變
m:權限,檔案類型改變
5:md5校驗值改變
d:裝置的主/次号不比對
l:路徑發生改變
u:屬主發生改變
g:屬組發生改變
t:最近一次的修改時間發生了變化
rpm重建資料庫;
#rpm --initdb --重新初始化資料庫,如存在則不覆寫
#rpm --rebuilddb --如果存在則覆寫之
/var/lib/rpm--rpm資料庫
rpm對軟體包的驗證:
導入公鑰:
rpm --import path
例如:rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-redhat-release--導入redhat的公鑰。
驗證:
rpm -k[ --nodigest(不驗證md5) --nosignature(不驗證簽名)]name.rpm
另外,基于rpm安裝rpm包還可以利用yum。
yum --yellow dog updater, modified
主要功能是更友善的添加/删除/更新rpm包。它能自動解決包的倚賴性問題,它能便于管理大量系統的更新問題 。
yum特點
可以同時配置多個資源庫(repository)
簡潔的配置檔案(/etc/yum.conf)
自動解決增加或删除rpm包時遇到的倚賴性問題
使用友善
保持與rpm資料庫的一緻性
yum用戶端的配置檔案:
1、/etc/yum.conf
2、/etc/yum.repos.d/*.repo
.repo檔案便是定義yum源的檔案。
定義yum源的格式
[id]
name=yum源的完整名稱;
baseurl=yum源的位址(eg:ftp://172.16.0.1/pub/server)
gpgcheck=0|1(驗證簽名)
enabled=0|1(是否生效)
yum的使用方法
yum
list {all|installed|avaliable|updates} --顯示所有已安裝過的軟體的資訊和所有可用軟體的資訊。
install package_name package_name2 ...--安裝軟體
-y --不用再确認;
remove|erase package_name1 package_name2 ...--解除安裝軟體
update package_name1 --軟體更新
check-update --檢查更新
info --顯示軟體包的摘要資訊
provides|whatprovides file|path --顯示檔案是哪個軟體包安裝生成的
downgrade pacage_name1... --降級
reinstall package_name1 ... --重裝軟體包
repolist [all|enabled|disabled] --顯示yum源
clean {all}--清空yum緩存
grouplist --顯示軟體包組
groupinstall "groupname" --安裝一組軟體(!!組名中間有空格必須用引号引起來)
groupremove "groupname" --解除安裝一組軟體
groupinfo "groupname" --檢視有關組的資訊
localinstall /path-rpm_file --本地安裝軟體
--nogpgcheck (不檢測簽名)
localupdate --本地更新軟體
search keyword --根據關鍵字搜尋軟體
建立yum源
yum源的中繼資料檔案目錄:
primary.xml.gz --每一個rpm包的檔案名,及軟體包之間的依賴關系
filelists.xml.gz 此yum源中每一個rpm包中檔案的檔案相關資訊
other.xml.gz 額外資訊,比如changelog等
repomd.xml:定義了以上三個檔案的校驗碼和時間戳
comps-*.xml(comps-rhel5-server-core.xml):定義了軟體包的分組資訊
#createrepo path
-g 建立關于軟體包的分組資訊
-q 工作于靜默模式下
-v 顯示詳細資訊
總結:源碼安裝,可以根據需求自定義安裝軟體,缺點是安裝的軟體難于維護,解除安裝,更新。利用rpm,yum安裝軟體,安裝簡單,便于維護。缺點是軟體的編譯不是根據本機的硬體所編譯的,是以不會很好的發揮機器本身的性能。