第五周學習總結-rpm&yum

我們都知道,計算機只能識別二進制程序,而程序員編寫的源代碼都是以純文本形式存在,因此,要想讓計算機識別并運行這些源代碼程序,就必須通過中間的轉換機制讓源代碼變為二進制程序文件,而這種轉換過程就稱為編譯過程。Linux的各發行版本中由于各廠商的編譯過程不盡相同,因此就誕生了各種不同的軟件管理包組件。其中我們最熟知的就要數Redhat系列的rpm包了。

rpm包是通過預先編譯并打包成為rpm文件格式,再加以安裝到系統的方式,并且還能夠進行數據庫的記載,因此,rpm有很多優點:

  1. rpm內含有已經編譯過的程序與配置文件等數據,可以讓使用者免去重新編譯的困擾;
  2. rpm在被安裝之前,會先檢查系統的硬盤容量、操作系統版本號等,可避免文件被錯誤安裝;
  3. rpm文件本身提供軟件版本信息、依賴性關系、軟件用途說明、軟件所含文件等,便于了解軟件;
  4. 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文件中。在此文件中主要要定義幾個內容:

  1. [repositoryid]:對于當前系統的yum來說,此repositoryid用于唯一標識此repository指向,因此,必須唯一;
  2. name:當前倉庫的描述信息;
  3. baseurl:指明倉庫的訪問路徑,可以是ftp服務器、http服務器或者本地的目錄;
  4. enabled:指明此倉庫是否可被使用;
  5. gpgcheck:是否對程序包做校驗;
  6. gpgkey:指明校驗文件的路徑;
  7. cost:指明當前倉庫的訪問開銷,默認為1000;

因此如果要指定一個網絡源倉庫,則可以在/etc/yum.repo.d/路徑下新建以.repo結尾的文件,文件內容如下(163倉庫為例):

501

在實際的工作中,如果你作為一個企業的網絡管理員,為了方便公司內部網絡中的服務器安裝軟件,同時也為了節約網絡帶寬,通常需要在公司內部創建一個yum倉庫,下面就談談如何創建本地yum倉庫。

  1. 安裝createrepo軟件用于生成yum的軟件元數據信息;
  2. 確定repository的輸出方式:本地file的形式輸出或者本地網絡的方式輸出;
  3. 在準備的目錄下放置下載好的rpm程序包文件;
  4. 在此目錄下運行createrepo命令;

通過以上步驟就已經完成yum倉庫的創建了。

502

503504

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90805

(0)
蟲草君蟲草君
上一篇 2018-01-03
下一篇 2018-01-03

相關推薦

  • N25第二周作業

    1、Linux上的文件管理類命令都有哪些其常用的使用方法及其相關示例演示。 cp(copy) 復制,mv(move)移動或者更名,mkdir(創建目錄,-p可以同時創建父目錄),rm(刪除目錄,-r 可以遞歸操作,rmdir(刪除空目錄)刪除文件或者目錄,建議建立一個臨時回收站,否則誤刪或者短時間內還需要的文件),touch,file,stat, …

    Linux干貨 2016-12-25
  • 控制字體顏色的輸出echo[轉載]

    http://onlyzq.blog.51cto.com/1228/546459 echo顯示帶顏色,需要使用參數-e格式如下:echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"例如: echo -e "\033[41;37m TonyZhang \033[0m"其中41的位置…

    Linux干貨 2017-02-01
  • 編程命名中的7+1個提示

    前幾天Neo寫過《編程中的命名設計那點事》,這里也有另外一篇和程序命名的文章,可以從另一個角度看看。 1.- 變量應該是盡可能的望文知意。千萬不要使用教材中的命名方式。 好的變量: daysDateRange, flightNumber, carColor. 壞的變量: days, dRange, temp, data, aux… 在我們…

    Linux干貨 2015-04-03
  • Nginx之ngx_http_proxy_module模塊詳解

    一、正反向代理簡介       1、正向代理:局域網內的機器借助于代理服務器訪問局域網外的網站          這時正向代理的功能:         &nbs…

    2017-06-25
  • 個人思想的轉變及對學習的態度

    了解linux已經一年多了,但實際上學習的次數并不多。我是在部隊的時候通過網絡了解到linux,剛開始接觸的是烏班圖系統,感覺這個系統美化比較漂亮,就安裝在虛擬機里進行各種操作,但是對命令是一竅不通的,都是通過百度粘貼復制各種命令,在復制的是同時我也感覺到頭大,這個系統的輸入、輸出怎么都是字母出現在屏幕上,頓時就感到興趣失去了一大半,再加上自己英語也不好,就…

    Linux干貨 2018-03-26
  • N21_第8周_網絡

    N21_第8周_網絡 作業題目: 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     網橋:(Bridge)也稱橋接器,是連接兩個局域網的存儲轉發設備,用它可以完成具有相同或相似體系結構網絡系統的連接。       &nbs…

    Linux干貨 2016-10-09
欧美性久久久久