1. 程式人生 > 其它 >Linux-軟體管理

Linux-軟體管理

1.RPM基本概述

1.1 什麼是rpm

RPM 全稱 RedHat Package Manager 縮寫,是由紅帽開發用於軟體包的安裝、升級、解除安裝與查詢工具。

包格式:xxx.rpm

命令: rpm

1.2 rpm包名組成部分

1.3 如何獲取rpm包

本地映象(學習);

聯網方式獲取(生產);

搭建私有包管理平臺(生產);

1.4 其他型別的安裝包

分類 安裝 版本
/rpm 預先編譯打包,安裝簡單。 軟體(k8s開源應用)版本偏低。
原始碼包 手動編譯打包,安裝繁瑣。 軟體版本隨意(rpm包版本低,原始碼)。
二進位制包 解壓即可使用,安裝簡單。 不能修改原始碼 (小工具,解壓即用)。

2.RPM包管理命令

2.1 rpm安裝軟體包
-i:安裝軟體包
-v:顯示安裝過程
-h:顯示安裝進度條

1.使用 rpm 命令安裝本地路徑下軟體包

1 [root@node ~]# mount /dev/cdrom /mnt/
2 [root@oldxu ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

2.使用 rpm 命令安裝網際網路上的軟體包

1 #1.wget下載>本地>安裝2 #2.直接安裝>rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0
.9-1.el7.x86_64.rpm

2.2 rpm依賴包安裝

包依賴:A-->依賴-->B,B-->依賴-->C ,而C-->依賴-->A ,首先需要先安裝依賴包,再安裝主程式。

PS: 由於rpm工具安裝rpm包依賴關係太強,所以通常我們都是使用 yum 來解決。

2.3 rpm升級軟體包

1.先安裝xxx3.0低版本軟體包,再安裝xxx4.0高版本,會報錯;

2.使用rpm -Uvh=升級至4版本;

2.4 rpm解除安裝軟體包

1.rpm -q #查詢軟體包是否存在系統。

2.rpm -e #解除安裝軟體包。

2.5 rpm查詢軟體包

選項
描述
rpm -q 檢視指定軟體包是否安裝;
rpm -qa 檢視系統中所有rpm軟體包列表,可結合grep使用;
rpm -qi 檢視指定軟體包的詳細資訊;
rpm -ql 查詢指定軟體包安裝後,在系統中生成的檔案路徑;
rpm -qc 查詢指定軟體包的配置檔案;
rpm -qf 查詢配置檔案或系統命令是由哪個rpm包提供;
rpm -qlp 查詢未安裝的rpm包會產生哪些檔案

2.6 rpm包管理小結

範例:

如何查詢 mkdir 命令是由哪個 RPM 軟體包安裝的?

[root@node ~]# rpm -qf /usr/bin/mkdir coreutils-8.22-21.el7.x86_64
[root@node ~]# rpm -qf $(which mkdir) coreutils-8.22-21.el7.x86_64

3.YUM基本介紹

3.1 什麼是YUM

yum/dnf 是RedHat及CentOS 系統中的軟體包管理器。它能夠通過網際網路下載 .rpm 格式包進行安裝,並能自動處理其依賴間關係,無須繁瑣地一次次下載安裝。

3.2 什麼是[YUM源|yum倉庫

yum源概念:使用yum命令工具安裝更新軟體,需要有一個包含各種rpm軟體包的倉庫,這個倉庫稱為yum源。

yum源形式:本地倉庫;網路倉庫;

工作原理:client-->ftp/http/+yum地址-->yum倉庫=(rpm包集合)

server-->yum源地址(aliyun)-->倉庫repo檔案(baseurl地址--->網際網路上的一個倉庫--->有非常多的rpm軟體)

3.3 YUM配置檔案

#1 CentOS8 的配置檔案

cat /etc/yum.conf
[main]
gpgcheck=1     # 檢查來源是否合法,需要有製作者的公鑰資訊
installonly_limit=3 # 同時可以安裝3個軟體包、最小為2,設定為0或者1則不限制
clean_requirements_on_remove=True # 刪除包時,是否將不再使用的包刪除
best=True      # 升級時,自動選擇安裝最新版,即使缺少包的依賴
skip_if_unavailable=False

#2 CentOS7 的配置檔案

vim /etc/yum.cnf 
cachedir
=/var/cache/yum/$basearch/$releasever # 快取目錄 keepcache=0 # 快取軟體包,1啟動 0 關閉 debuglevel=2 # 除錯級別 logfile=/var/log/yum.log # 日誌記錄位置 exactarch=1 # 檢查平臺是否相容 obsoletes=1 # 檢查包是否廢棄 gpgcheck=1 # 檢查來源是否合法,需要有製作者的公鑰資訊 plugins=1 installonly_limit=5 # 同時可以安裝5個軟體包、最小為2,設定為0或者1則不限制 # metadata_expire=90m #每小時手動檢查元資料 # in /etc/yum.repos.d #包含repos.d目錄中的.repo檔案

3.4 配置YUM源示例

系統預設的源是國外提供,需要替換為國內的源。

#1 配置阿里yum源

[root@oldxu ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#2 配置第三方yum源(EPEL)

[root@oldxu ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4.YUM日常操作

4.1 yum查詢軟體包

#1.dnf/yum list #查詢所有倉庫中的所有軟體包;

#2.dnf/yum list installed #查詢所有已安裝至系統中的軟體包;

#3.dnf/yum provides #查詢系統命令來自於哪個軟體包(命令可以在當前系統,也可以不在);

rpm -qf $(which cd) 
PS:需要知道命令的絕對路徑, 如果不存在該命令是無法查詢到該命令所屬的軟體包.

4.2 yum安裝軟體包

#1.dnf/yum install #通過倉庫獲取軟體包進行安裝

yum install xx #互動,麻煩

yum install xx -y #非互動,常用

#2.dnf/yum localinstall #安裝本地的rpm包,如果存在依賴,會通過當前已有的倉庫獲取解決依賴關係;

4.3 yum重灌軟體包

誤刪除配置檔案,可以通過重灌的方式修復;

#1.dnf/yum reinstall #對軟體進行重新安裝;

#2.rpm -qc #檢查服務配置檔案是否恢復,以及軟體是否能正常使用;

4.4 yum更新軟體包
#1.yum check-update #檢查更新

#2.yum update xx -y #更新軟體

#3.yum update -y #更新系統中的所有軟體,適用於安裝完系統;

4.5 yum刪除軟體包

yum remove xx -y #刪除軟體包

4.6 yum管理組包

#1.dnf/yum groups install "xx" #安裝組包(組包用雙引號括起來,否則系統會認為是多個組包。)

#2.dnf/yum groups remove xx -y #刪除包組

4.7 yum管理倉庫

#1.dnf/yum repolist #檢視源可用的軟體倉庫

#2.yum/dnf repolist all #檢視所有的倉庫

#3.dnf/yum-config-manager --disable/enable #啟用和禁用倉庫(本質都是在修改repo檔案中引數 0關 1開)

4.8 yum管理歷史記錄

#1.dnf/yum history undo Number #刪除撤銷某個操作;

#2.dnf/yum history info Number #檢視某個操作的具體資訊;

#3.dnf/yum history redo Number #重新執行某個操作;