天天看點

linux yum不更新rpm包,Linux 下 RPM 和 YUM 的使用

linux yum不更新rpm包,Linux 下 RPM 和 YUM 的使用

8種機械鍵盤軸體對比

本人程式員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎麼選?

本篇部落格介紹下 Linux 下 RPM 包管理工具的使用。

rpm

rpm 指令是 RPM 軟體包的管理工具。rpm 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程式,由于它遵循GPL規則且功能強大友善,因而廣受歡迎。逐漸受到其他發行版的采用。RPM 套件管理方式的出現,讓 Linux 易于安裝,更新,間接提升了 Linux 的适用度。

rpm包管理的用途

1、可以安裝、删除、更新和管理軟體,當然也支援線上安裝和更新軟體;

2、通過RPM包管理能知道軟體包包含哪些檔案,也能知道系統中的某個檔案屬于哪個軟體包;

3、可以在查詢系統中的軟體包是否安裝以及其版本;

4、作為開發者可以把自己的程式打包為RPM 包釋出;

5、軟體包簽名GPG和MD5的導入、驗證和簽名釋出;

6、依賴性的檢查,檢視是否有軟體包由于不相容而擾亂了系統;

rpm 的使用權限

RPM軟體的安裝、删除、更新隻有 root 權限才能使用;

對于查詢功能任何使用者都可以操作;

如果普通使用者擁有安裝目錄的權限,也可以進行安裝;

rpm指令

初始化 rpm 資料庫

12rpm --initdb

rpm --rebuilddb

軟體包的安裝、更新和删除等

1、安裝 docker 包

123rpm -vih docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

rpm -ivh docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm --nodeps --force # 安裝軟體包時不檢查依賴關系

2、更新 docker 包

1rpm -Uvh docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

3、删除軟體包

1rpm -e docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

rpm 軟體包管理的查詢功能

1、查詢系統已經安裝的軟體

123rpm -q docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

rpm --query docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

2、檢視系統中所有已經安裝的軟體包

1rpm -qa

3、查詢一個已經安裝的檔案屬于哪個軟體包

1rpm -qf file_absolute_path

4、查詢已安裝軟體包的安裝位置

123rpm -ql docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

rpm rpmquery -ql docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

5、查詢一個已安裝軟體包的資訊

1rpm -qi docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

6、檢視已安裝軟體包的配置檔案

1rpm -qc docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

7、檢視某個rpm包的依賴關系

1rpm -qpR docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm

rpm 包命名規則

1、RPM包的一般格式為:

12name-version-arch.rpm

name-version-arch.src.rpm

(1)name,如:httpd,是軟體的名稱

(2)version,如:2.2.3 ,是軟體的版本号。版本号的格式通常為“主版本号.次版本号.修正号”

29,是釋出版本号,表示這個RPM包是第幾次編譯生成的

(3)arch,如:i386,表示包的适用的硬體平台,目前RPM支援的平台有:i386、i586、i686、sparc、alpha

(4).rpm或.src.rpm,是RPM包類型的字尾,.rpm是編譯好的二進制包,可用rpm指令直接安裝;.src.rpm表示是源代碼包,需要安裝源碼包生成源碼,并對源碼編譯生成.rpm格式的RPM包,就可以對這個RPM包進行安裝了

2、特殊名稱

(1)el* 表示這個軟體包的發行商版本,el5表示這個軟體包是在RHEL 5.x/CentOS 5.x下使用。

(2)devel:表示這個RPM包是軟體的開發包。

(3)noarch:說明這樣的軟體包可以在任何平台上安裝,不需要特定的硬體平台。在任何硬體平台上都可以運作。

(4)manual 手冊文檔

yum

全稱為 Yellow dog Updater, Modified,是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。

yum提供了查找、安裝、删除某一個、一組甚至全部軟體包的指令,而且指令簡潔而又好記。

yum的宗旨是自動化地更新,安裝/移除rpm包,收集rpm包的相關資訊,檢查依賴性并自動提示使用者解決

yum的關鍵之處是要有可靠的倉庫,這是軟體的倉庫,它可以是http或ftp站點, 也可以是本地軟體池,但必須包含rpm的header, header包括了rpm包的各種資訊,包括描述,功能,提供的檔案,依賴性等.正是收集了這些 header并加以分析,才能自動化地完成餘下的任務。

yum 的特點

1、可以同時配置多個資源庫(Repository)

2、簡潔的配置檔案(/etc/yum.conf)

3、自動解決增加或删除rpm包時遇到的倚賴性問題

4、使用友善

5、保持與RPM資料庫的一緻性

yum 的配置檔案

yum 的配置檔案分為兩部分:main 和repository:main 部分定義了全局配置選項,整個yum 配置檔案應該隻有一個main。常位于/etc/yum.conf 中。

repository 部分定義了每個源/伺服器的具體配置,可以有一到多個。常位于/etc/yum.repo.d 目錄下的各檔案中。

yum.conf 檔案一般位于/etc目錄下,一般其中隻包含main部分的配置選項。

1234567891011121314151617181920212223242526272829303132[main]

cachedir=/var/cache/yum #yum緩存的目錄,yum在此存儲下載下傳的rpm包和資料庫,預設設定為:/var/cache/yum。

keepcache=0 #安裝完成後是否保留軟體包,0為不保留,1為保留,預設為0。

debuglevel=2 #Debug 資訊輸出等級,範圍為:0──10,預設為2。

logfile=/var/log/yum.log #yum的日志檔案,預設為:/var/log/yum.log。

pkgpolicy=newest #包的政策。一共有兩個選項,newest和last,這個作用是如果你設定了多個repository,而同一軟體在不同的repository中同時存在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會将伺服器id以字母表排序,并選擇最後的那個伺服器上的軟體安裝。一般都是選newest。

distroverpkg=redhat-release #指定一個軟體包,yum會根據這個包判斷你的發行版本,預設是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。

tolerant=1 #有1和0兩個選項,表示yum是否容忍指令行發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum 不會出現錯誤資訊。預設是0。

exactarch=1 #有兩個選項1和0,設定為1,則yum隻會安裝和系統架構比對的軟體包,例如,yum不會将i686的軟體包安裝在适合i386的系統中。預設為1。

retries=6 #網絡連接配接發生錯誤後的重試次數,如果設為0,則會無限重試。預設值為6。

obsoletes=1 #這是一個update 的參數,相當于upgrade,允許更新陳舊的RPM包。

plugins=1 #是否啟用插件,預設1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。

exclude=selinux* #排除某些軟體在更新名單之外,可以用通配符,清單中各個項目要用空格隔開,

gpgcheck=1 #有1和0兩個選擇,分别代表是否是否進行gpg(GNU Private Guard)校驗,以确定rpm包的來源是有效和安全的。這個選項如果設定在[main]部分,則對每個repository 都有效。預設值為0。

metadata_expire=1800

# PUT YOUR REPOS HERE OR IN separate files named file.repo# in /etc/yum.repos.d

yum 指令

yum指令的一般形式如下:

1yum [options] [command] [package...]

options 是可選的,選項包括:

123456789-h:顯示幫助資訊。

-y:當安裝過程中提示選擇時,全部為“yes”。

-q:不顯示安裝的過程。

-c:指定配置檔案。

-v:詳細模式。

-d:設定調試等級(0-10)。

-e:設定錯誤等級(0-10)。

-R:設定yum處理一個指令的最大等待時間。

-C:完全從緩存中運作,而不去下載下傳或者更新任何頭檔案。

command 為所要進行的操作

package 是操作的對象

常用的指令包括:

1、自動搜尋最快鏡像插件

1yum install yum-fastestmirror

2、安裝 yum 圖形視窗插件

1yum install yumex

3、檢視可能批量安裝的清單:

1yum grouplist

yum 指令詳解

1、全部安裝

1yum install

2、安裝指定的軟體包 nginx

1yum install nginx -y

3、安裝程式組 kubernetes

1yum groupinstall kubernetes

4、安裝指定版本的軟體包 kubernetes

123yum list kubernetes

# 根據輸出的軟體包全名稱進行安裝yum install -y kubernetes-1.20.12.rpm

5、全部更新

1yum update

6、更新指定的程式包 nginx

1yum update nginx

7、檢查可更新的程式

1yum check-update

8、更新指定軟體包 nginx

1yum upgrade nginx

9、更新指定程式組 kubernetes

1yum groupupdate kubernetes

10、顯示安裝包 nginx 的資訊

1yum info nginx

11、顯示所有已經安裝和可以安裝的軟體包

1yum list

12、顯示指定程式包 nginx 的安裝情況

1yum list nginx

13、顯示程式組 kubernetes 的資訊

1yum groupinfo kubernetes

14、根據關鍵字 keyword 查找安裝包

1yum search keyword

15、删除軟體包 nginx

1yum remove nginx

16、删除程式包組 kubernetes

1yum groupremove kubernetes

17、檢視軟體包 nginx 的依賴情況

1yum deplist nginx

18、清除緩存目錄下的軟體包

1yum clean nginx

19、清除緩存目錄下的headers

1yum clean headers

20、清除緩存目錄下舊的 headers

1yum clean oldheaders

21、清除緩存目錄下的軟體包及舊的 headers

123yum clean packages,yum clean oldheaders

等價于

yum clean,yum clean all

22、檢視系統預設安裝的 yum

1rpm -qa|grep yum

23、檢視 yum 的某一條指令屬于哪一個軟體包,然後就可以安裝這個軟體包了。

1yum provides lssubsys