首先我們來看一下一個軟件的開發到正常運行的流程
由於源代碼中含有很多個程序片段,每個片段可能實現的功能不盡相同,而這些片段的編譯是有一定的次序要求的也就是說他們很可能相互依賴。所以這給普通用戶造成一種麻煩就是:想要編譯此程序就必須看懂此代碼並能知道各個片段的依賴關係;也許你會說直接把這些片段直接寫在一段程序中不就可以了,但是這樣會給程序員開發測試造成很大的困難。所以autoconfig閃亮登場它可以生成編譯環境檢查及編譯功能配置腳本,即爲configure。而automake會解決各片段的依賴關係生成Makefile.ini 至此源代碼包製作完畢。
用戶在拿到源代碼包後利用可執行程序configure結合Makefile.ini生成自己定製的makefile文件make命令根據此文件進行編譯 最後makeinstall安裝程序至此程序安裝成功。
什麼是RPM ??
RPM是Readhat Package Manager的縮寫,後來由於此軟件的管理方式成爲了工業標準所以更名爲 RPM is Package Manager。
rpm包的命名格式:name-version-relase.arch.rpm
RPM命令的格式及常用選項:
rpm [option] /path/to/package_file
-i: 表示安裝
-v:顯示詳情
-h:顯示安裝進度
--test: 僅作測試,有真正執行安裝
例子:rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm
如果依賴於其它包:
1、解決依賴關係
2、忽略依賴關係 能安裝上,但有可能無法運行;--nodeps
重新安裝:--replacepkgs
卸載程序包:-e: erase
例如:rpm -evh httpd
升級程序包:
-U:表示升級若此包沒有安裝則安裝
-F:表示只升級已有的包
--force: 強制升級
查詢操作:
-q 查詢某包是否安裝
-qa 查詢所有已經安裝的包
-qi 查詢包的描述信息
-ql 查詢某包安裝生成了哪些文件
-qc 查詢某包安裝生成了哪些配置文件
-qd 查詢某包安裝生成了哪些幫助文件
-q --scripts 查詢程序包的相關腳本
-qf /path/to/some_file 查詢某文件是由哪個包安裝生成的
--import /path/to/key_file 在當前系統上導入包的製作者的公鑰
數據庫重建:
數據庫目錄:/var/lib/rpm
rpm --initdb:初始化如果事先沒有庫,會新建一個;如果有,則不新建;
rpm --rebuilddb: 直接重建,覆蓋原有的數據庫