Linux 基礎:yum 命令講解

(一)yum 介紹

Yum(全稱爲 Yellow dogUpdater, Modified) 是一個在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端軟件包管理器。基於 RPM 包管理,能夠從指定的服務器自動下載 RPM 包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。yum 提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

** (二)yum 使用**

yum的命令形式一般是如下:yum –選項  命令    包

其中選項是可選的,

選項包括-h幫助),-y當安裝過程提示選擇全部爲"yes"),-q不顯示安裝的過程等等
[command]爲所要進行的操作
[package ...]是操作的對象

yum 的一切信息都存儲在一個叫 yum.reops.d 目錄下的配置文件中,通常位於 / etc/yum.reops.d 目錄下。

  在這個目錄下面有很多文件,都是. repo 結尾的,repo 文件是 yum 源(也就是軟件倉庫)的配置文件,通常一個 repo 文件定義了一個或者多個軟件倉庫的細節內容,例如我們將從哪裏下載需要安裝或者升級的軟件包,repo 文件中的設置內容將被 yum 讀取和應用!

進入/etc/yum.repo.d目錄下,
vi CentOS-Base.repo

[extras]這個表示的是名稱,--->yum的ID,必須唯一,本地有多個yum源的時候,這裏必須是唯一的
name=CentOS-$releasever - Base     ----->具體的yum源名字,其實相當於對它的描述描述信息  $r releasever你可以使用這個變量參考紅帽企業Linux發行版,也就是說表示當前發行版的大版本號。
baseurl是鏡像服務器地址,只能寫具體的確定地址。下面的例子中,只能有一個baseurl,但裏面可以包含多個url
mirrorlist是鏡像服務器的地址列表,裏面有很多的服務器地址。這裏有一個變量$arch,cpu體系,還有一個變量:$basearch,cpu的基本體系組
baseurl和mirrorlist都是指向yum源的地址,不同點是包含地址的多少。你若自己寫的話,我們一般只寫一個地址,直接用baseurl就行
gpgcheck=0    ---->要不要驗證呢,取消驗證。1,使用公鑰檢驗rpm的正確性。
gpgcheck若是1將對下載的rpm將進行gpg的校驗,校驗密鑰就是gpgkey,一般自己的yum源是不需要檢測的。gpgcheck=0,那麼gpgkey就可以不填寫

在來看一下 yum.conf 文件

cachedir=/var/cache/yum         #yum下載的RPM包的緩存目錄
keepcache=0                        #緩存是否保存,1保存,0不保存。
debuglevel=2                       #調試級別(0-10),默認爲2
logfile=/var/log/yum.log       #yum的日誌文件所在的位置

1  yum 清空緩存列表

yum clean packages 清除緩存目錄下的軟件包,清空的是(/var/cache/yum)下的緩存
yum clean headers 清除緩存目錄下的 headers
yum clean oldheaders 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers

2 yum 顯示信息

yum list          # yum list顯示所有已經安裝和可以安裝的程序包

這些列表裏面的包的來源就是 / etc/yum.repo.d。base  docker-ce-stable  epel/x86_64/metalink   epel  extras   rpmforge  updates    

yum list rpm 顯示安裝包信息rpm

顯示 installed ,這裏是包名,版本和倉庫名

yum list httpd

這裏是可獲得包,說明還沒有安裝。

yum info rpm 顯示安裝包rpm的詳細信息

3  yum 安裝

yum -y install httpd

如果你不加 - y 他會問你要不要安裝。如果你想自己來控制有些包是否安裝,這裏不要加 - y,如果你想自動安裝,不進行交互,這裏加入 - y。這個就是 yum 的安裝了,非常簡單。

安裝完之後查詢一下

yum list httpd,Installed 說明已經安裝好了

4  yum 刪除

yum remove httpd 刪除程序包httpd ,也就是卸載。
yum deplist rpm 查看程序rpm依賴情況

5  yum 包的升級

yum check-update 檢查可更新的程序
yum update 全部更新,升級所有包,以及升級軟件和系統內核,這就是一鍵升級。他可以更新CentOS的內核到最新版本。
yum update package1 更新指定程序包package1,   
yum upgrade package1 升級指定程序包package1

6  yum 解決依賴的原理

YUM 解決依賴關係問題,自動下載軟件包。yum 是基於 C/S 架構。C 指的是客戶端, S 指的是服務器,想 ftp,http,file、關於 yum 爲什麼能解決依賴關係:所有的 Yum 源裏面都有 repodata,它裏面是有 XML 格式文件,裏面有說明需要什麼包。例如上堂課實驗的:mysql-server  rpm 需要:perl-DBI ,python,或者是 php 等等包。

7 yum 組的管理

yum進行安裝的時候可以一組一組的進行安裝,先來看看有那些組yumgrouplist。可用的組有這麼多。
Available Environment Groups:首先是可用的環境分組。
Compute Node  計算節點
Infrastructure Server 基礎設施服務器
File and Print Server  文件和打印服務
Cinnamon Desktop   Cinnamon桌面
Installed Groups:已安裝的組,開發工具
Development Tools
Available Groups:可用的組。

如果我們想以組的方式來安裝,加入我想安裝安全工具:

輸入:yumgroupinstall "Security Tools"

看到這裏詢問是否要安裝,當然是 N 不安裝了。如果想直接安裝,不詢問的話,這裏也在後面加上選項 –y。

    yum groupremove group1 刪除程序組 group1

參考:

1 安裝

yum install 全部安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall group1 安裝程序組group1

2 更新和升級

yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 檢查可更新的程序
yum upgrade package1 升級指定程序包package1
yum groupupdate group1 升級程序組group1

3 查找和顯示

yum info package1 顯示安裝包信息package1
yum list 顯示所有已經安裝和可以安裝的程序包
yum list package1 顯示指定程序包安裝情況package1
yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包

4 刪除程序

yum remove | erase package1 刪除程序包package1
yum groupremove group1 刪除程序組group1
yum deplist package1 查看程序package1依賴情況

5 清除緩存

yum clean packages 清除緩存目錄下的軟件包
yum clean headers 清除緩存目錄下的 headers
yum clean oldheaders 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的header
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/laHK39sUJtvI_3b8dKUIbg