我們都知道,計算機只能識別二進制程序,而程序員編寫的源代碼都是以純文本形式存在,因此,要想讓計算機識別并運行這些源代碼程序,就必須通過中間的轉換機制讓源代碼變為二進制程序文件,而這種轉換過程就稱為編譯過程。Linux的各發行版本中由于各廠商的編譯過程不盡相同,因此就誕生了各種不同的軟件管理包組件。其中我們最熟知的就要數Redhat系列的rpm包了。
rpm包是通過預先編譯并打包成為rpm文件格式,再加以安裝到系統的方式,并且還能夠進行數據庫的記載,因此,rpm有很多優點:
- rpm內含有已經編譯過的程序與配置文件等數據,可以讓使用者免去重新編譯的困擾;
- rpm在被安裝之前,會先檢查系統的硬盤容量、操作系統版本號等,可避免文件被錯誤安裝;
- rpm文件本身提供軟件版本信息、依賴性關系、軟件用途說明、軟件所含文件等,便于了解軟件;
- rpm管理的方式使用數據庫記錄rpm文件的相關參數,便于升級、移除、查詢和驗證等。
既然rpm包這么重要,那么接下來就來聊一聊如何管理rpm類型的軟件。rpm類型的軟件管理工具為rpm命令,有安裝、升級、卸載、查詢和校驗等功能操作。
安裝
rpm {-i|–install} [install-options] PACKAGE_FILE
安裝選項:
- -h:以#來表示安裝進度;
- -v:顯示安裝過程中的詳細信息;
- –test:測試安裝,檢查并報告依賴關系及沖突消息等;
- –nodeps:忽略依賴關系;
- –replacepkgs:重新安裝并覆蓋原有文件;
- –force:強制安裝
升級
rpm {-U|–upgrade} [install-options] PACKAGE_FILE
rpm {-F|–freshen} [install-options] PACKAGE_FILE
此處的-U表示升級或安裝,而-F僅表示升級之意。
卸載
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–test] PACKAGE_NAME
選項:
- –allmatches:卸載所有匹配指定名稱的程序包的各個版本;
- –nodeps:卸載時忽略依賴關系;
- –test:測試卸載;
查詢
rpm {-q|–query} [select-options] [query-options]
選擇選項:
- -a, –all:查詢所有已經安裝過的包;
- -f FILE:查詢某文件由哪個程序包安裝生成;
- -p ?PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;
查詢選項:
- –changelog:查詢rpm包的changlog;
- -l, –list:程序安裝生成的所有文件列表;
- -i, –info:程序包相關的信息,版本號、大小、所屬的包組;
- -c, –configfiles:查詢指定的程序包提供的配置文件;
- -d, –docfiles:查詢指定的程序包提供的文檔;
- -R, –requires:查詢指定的程序包的依賴關系;
校驗
rpm {-V|–verify} [select-options] [verify-options]
在實際的使用中,因為rpm包是不會自動解決依賴關系,因此在rpm包的管理中往往會遇到各種依賴關系,那么有沒有辦法自動解決這些依賴關系呢?答案當然是有,yum就是這樣一個工具,yum其實是rpm的前端管理工具,能夠從指定的服務器自動下載RPM包并安裝,可以自動處理依賴性關系,并且一次性安裝所有依賴的軟件包。
yum命令的用法非常簡單:yum [options] [command] [package …],主要有如下功能選項:
- 顯示倉庫列表: ?yum repolist [all|enabled|disabled]
- 顯示程序包:yum list [all | glob_exp1] [glob_exp2]或者yum list {available|installed|updates} [glob_exp1]
- 安裝程序包:yum install package
- 升級程序包:yum update package
- 卸載程序包:yum remove | erase package
- 查看程序包信息:yum info ?package
- 構建本地緩存:yum?makecache
- 清理本地緩存:yum clean
- 列出所有包組:yum grouplist
- 顯示指定包組詳情:yum groupinfo group_name
- 安裝包組:yum groupinstall?group_name
- 卸載包組:yum groupremove?group_name
- 升級包組:yum groupupdate?group_name
- 安裝本地程序包文件:yum localinstall rpmfile
雖然yum可以很方便的安裝軟件,但是yum嚴重依賴于yum倉庫,如果倉庫里面沒有對應指定的軟件,那么安裝時不會成功的,因此我們在安裝之前必須給yum配置好對應的軟件倉庫。yum倉庫的位置及其相關的各種配置信息保存在yum的配置文件中,各倉庫的定義主要在/etc/yum.repo.d/*.repo文件中。在此文件中主要要定義幾個內容:
- [repositoryid]:對于當前系統的yum來說,此repositoryid用于唯一標識此repository指向,因此,必須唯一;
- name:當前倉庫的描述信息;
- baseurl:指明倉庫的訪問路徑,可以是ftp服務器、http服務器或者本地的目錄;
- enabled:指明此倉庫是否可被使用;
- gpgcheck:是否對程序包做校驗;
- gpgkey:指明校驗文件的路徑;
- cost:指明當前倉庫的訪問開銷,默認為1000;
因此如果要指定一個網絡源倉庫,則可以在/etc/yum.repo.d/路徑下新建以.repo結尾的文件,文件內容如下(163倉庫為例):
在實際的工作中,如果你作為一個企業的網絡管理員,為了方便公司內部網絡中的服務器安裝軟件,同時也為了節約網絡帶寬,通常需要在公司內部創建一個yum倉庫,下面就談談如何創建本地yum倉庫。
- 安裝createrepo軟件用于生成yum的軟件元數據信息;
- 確定repository的輸出方式:本地file的形式輸出或者本地網絡的方式輸出;
- 在準備的目錄下放置下載好的rpm程序包文件;
- 在此目錄下運行createrepo命令;
通過以上步驟就已經完成yum倉庫的創建了。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90805