yum 仓库管理
配置本地仓库
mkdir -p /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
touch /etc/yum.repos.d/local.repo
echo -e '[BaseOS]\nname=BaseOS\nbaseurl=file:///mnt/cdrom/BaseOS\nenabled=1\ngpgcheck=0\n\n[AppStream]\nname=AppStream\nbaseurl=file:///mnt/cdrom/AppStream\nenabled=1\ngpgcheck=0' > /etc/yum.repos.d/local.repo
sed -i '$a /dev/sr0 /mnt/cdrom/ iso9660 defaults 0 0' /etc/fstab
yum clean all
yum list all
挂载光盘
[root@192 ~]# mount /dev/cdrom /mnt/ 将/dev/cdrom挂载到/mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@192 ~]# ls /mnt/
AppStream BaseOS EFI LICENSE TRANS.TBL images isolinux media.repo
1:1.39.5-1.el8
配置/etc/yum.repos.d/**.repo文件
[root@192 ~]# vim /etc/yum.repos.d/du.repo
[root@192 ~]# cat /etc/yum.repos.d/du.repo
[BaseOS] 仓库名字
name=BaseOS 描述信息
baseurl=file:///mnt/BaseOS 指定仓库的具体位置(本地/网络)接受的类型有 ftp://,http://,file://
gpgcheck=0 0表示为不检查来源 1表示检查软件包的来源合法性
enabled=1 1表示启用仓库 0表示为禁用仓库
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
清空yum本地缓存
[root@192 ~]# yum clean all 清除缓存
20 files removed
检验yum本地仓库
[root@192 ~]# yum list all
CentOS-8.5.2111 - Base - mirrors.aliyun.com 682 kB/s | 4.6 MB 00:06
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 45 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 705 kB/s | 8.4 MB 00:12
BaseOS 46 MB/s | 2.6 MB 00:00
Installed Packages
NetworkManager.x86_64 1:1.39.5-1.el8 @anaconda
NetworkManager-libnm.x86_64
yum网络仓库
- 官方网络yum仓库(国外)
- 阿里云yum仓库
- 163yum仓库
- xx大学yum仓库
- epel源
Centos8自带的就是国外的源下载会非常的慢
// Base/Extras/Updates: 默认国外官方源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo \
http://mirrors.aliyun.com/repo/Centos-7.repo
//国外epel源
[root@localhost ~]# yum -y install epel-release
//阿里云epel源
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo
下载阿里云yum仓库
-阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)
[root@192 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
--2022-07-11 20:16:15-- https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 116.162.173.85, 116.162.173.90, 116.162.173.88, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|116.162.173.85|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2495 (2.4K) [application/octet-stream]
Saving to: '/etc/yum.repos.d/CentOS-Base.repo'
/etc/yum.repos.d/CentOS-Bas 100%[=========================================>] 2.44K --.-KB/s in 0s
2022-07-11 20:16:15 (76.8 MB/s) - '/etc/yum.repos.d/CentOS-Base.repo' saved [2495/2495]
[root@192 yum.repos.d]# yum clean all
18 files removed
[root@192 yum.repos.d]# yum list all
yum 管理软件
yum命令语法
yum [选项] [命令] [包 ...]
常用的options
--nogpgcheck //如果从网上下载包有时会检查gpgkey,此时可以使用此命令跳过gpgkey的检查
-y //自动回答为"yes"
-q //静默模式,安装时不输出信息至标准输出
--disablerepo=repoidglob //临时禁用此处指定的repo
--enablerepo=repoidglob //临时启用此处指定的repo
--noplugins //禁用所有插件
命令的使用
[root@192 ~]# yum --nogpgcheck install ls*
Last metadata expiration check: 0:06:55 ago on Mon Jul 11 20:17:25 2022.
Package lshw-B.02.19.2-6.el8.x86_64 is already installed.
Package lsscsi-0.32-3.el8.x86_64 is already installed.
Dependencies resolved.
[root@192 ~]# yum -y install ls*
Last metadata expiration check: 0:07:58 ago on Mon Jul 11 20:17:25 2022.
Package lshw-B.02.19.2-6.el8.x86_64 is already installed.
Package lsscsi-0.32-3.el8.x86_64 is already installed.
Dependencies resolved.
[root@192 ~]# yum -q install ls*
Is this ok [y/N]:
[root@192 ~]# yum --disablerepo=BaseOS install ls*
No repository match: BaseOS
Last metadata expiration check: 0:12:07 ago on Mon Jul 11 20:17:25 2022.
Package lshw-B.02.19.2-6.el8.x86_64 is already installed.
Package lsscsi-0.32-3.el8.x86_64 is already installed.
Dependencies resolved.
[root@192 ~]# yum --enablerepo=base install ls*
Last metadata expiration check: 0:14:19 ago on Mon Jul 11 20:17:25 2022.
Package lshw-B.02.19.2-6.el8.x86_64 is already installed.
Package lsscsi-0.32-3.el8.x86_64 is already installed.
Dependencies resolved.
[root@192 ~]# yum --noplugins install ls*
Last metadata expiration check: 0:14:59 ago on Mon Jul 11 20:17:25 2022.
Package lshw-B.02.19.2-6.el8.x86_64 is already installed.
Package lsscsi-0.32-3.el8.x86_64 is already installed.
Dependencies resolved.
常用的command
list //列表
all //默认项
available //列出仓库中有的,但尚未安装的所有可用的包
installed //列出已经安装的包
updates //可用的升级
clean //清理缓存
packages
headers
metadata
dbcache
all
repolist //显示repo列表及其简要信息
all
enabled //默认项
disabled
install //安装
yum install packages [...]
update //升级
yum update packages [...]
update_to //升级为指定版本
downgrade package1 [package2 ...] //降级
remove|erase //卸载
info //显示rpm -qi package的结果
yum info packages
provides|whatprovides //查看指定的文件或特性是由哪个包安装生成的
search string1 [string2 ...] //以指定的关键字搜索程序包名及summary信息
deplist package [package2 ...] //显示指定包的依赖关系
history //查看yum的历史事务信息
localinstall //安装本地rpm包,自动解决依赖关系
grouplist //列出可用的组
groupinstall "group name" //安装一组软件
createrepo命令 //创建yum仓库的元数据信息
命令的使用
list列表
[root@192 ~]# yum list available
libmnl-devel.i686 1.0.4-6.el8 AppStream
[root@192 ~]# yum list installed
perl-Digest.noarch 1.17-395.el8 @AppStream
[root@192 ~]# yum list all
nss-altfiles.i686 2.18.1-12.el8 AppStream
[root@192 ~]# yum list updates
clean清理缓存
[root@192 ~]# yum clean packages
[root@192 ~]# yum clean all
18 files removed
repolist显示repo列表及其简要信息
[root@192 ~]# yum repolist all
repo id repo name status
AppStream CentOS-8.5.2111 - AppStream - mirrors.aliyun.com enabled
PowerTools CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com disabled
base CentOS-8.5.2111 - Base - mirrors.aliyun.com enabled
centosplus CentOS-8.5.2111 - Plus - mirrors.aliyun.com disabled
extras CentOS-8.5.2111 - Extras - mirrors.aliyun.com enabled
[root@192 ~]# yum repolist enabled
repo id repo name
AppStream CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
base CentOS-8.5.2111 - Base - mirrors.aliyun.com
extras CentOS-8.5.2111 - Extras - mirrors.aliyun.com
[root@192 ~]# yum repolist disabled
repo id repo name
PowerTools CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com
centosplus CentOS-8.5.2111 - Plus - mirrors.aliyun.com
install 安装
[root@192 ~]# yum install httpd
CentOS-8.5.2111 - Base - mirrors.aliyun.com 5.2 MB/s | 4.6 MB 00:00
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 31 kB/s |
update升级
[root@192 ~]#yum update
remove卸载
[root@192 ~]# yum remove httpd
Dependencies resolved.
================================
info 显示rpm -qi package的结果
[root@192 ~]# yum info httpd
Last metadata expiration check: 0:07:19 ago on Mon Jul 11 20:43:42 2022.
Installed Packages
Name : httpd
Version : 2.4.37
Release : 43.module_el8.5.0+1022+b541f3b1
Architecture : x86_64
Size : 4.3 M
Source : httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.src.rpm
Repository : @System
From repo : AppStream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
provides 查看指定的文件或特性是由哪个包安装生成的
[root@192 ~]# yum provides wget
Last metadata expiration check: 0:08:24 ago on Mon Jul 11 20:43:42 2022.
wget-1.19.5-10.el8.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
Repo : @System
Matched from:
Provide : wget = 1.19.5-10.el8
search string1 [string2 …] //以指定的关键字搜索程序包名及summary信息
[root@192 ~]# yum search htt
Last metadata expiration check: 0:09:18 ago on Mon Jul 11 20:43:42 2022.
=================================================== Name & Summary Matched: htt ===================================================
centos-logos-httpd.noarch : CentOS-related icons and pictures used by httpd
http-parser.i686 : HTTP request/response parser for C
http-parser.x86_64 : HTTP request/response parser for C
httpcomponents-client.noarch : HTTP agent implementation based on httpcomponents HttpCore
httpcomponents-core.noarch : Set of low level Java HTTP transport components for HTTP services
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
keycloak-httpd-client-install.noarch : Tools to configu
deplist package [package2 …] 显示指定包的依赖关系
[root@192 ~]# yum deplist httpd
Last metadata expiration check: 0:10:04 ago on Mon Jul 11 20:43:42 2022.
package: httpd-2.4.37-41.module_el8.5.0+977+5653bbea.x86_64
dependency: /bin/sh
provider: bash-4.4.20-2.el8.x86_64
dependency: /etc/mime.types
provider: mailcap-2.1.48-3.el8.noarch
dependency: httpd-filesystem
provider: httpd-filesystem-2.4.37-43.module_el8.5.0+1022+b541f3b1.noarch
dependency: httpd-filesystem = 2.4.37-41.module_el8.5.0+977+5653bbea
provider: httpd-filesystem-2.4.37-41.module_el8.5.0+977+5653bbea.noarch
dependency: httpd-tools = 2.4.37-41.module_el8.5.0+977+5653bbea
provider: httpd-tools-2.4.37-41.module_el8.5.0+977+5653bbea.x86_64
dependency: libapr-1.so.0()(64bit)
history 查看yum的历史事务信息
[root@192 ~]# yum history yum
ID | Command line | Date and time | Action(s) | Altered
-----------------------------------------------------------------------------------------------------------------------------------
8 | -y install dnf* --skip-broken | 2022-07-11 16:29 | D, I | 28 <
1 | | 2022-06-28 22:47 | Install | 378 >E
localinstall 安装本地rpm包,自动解决依赖关系
yum localinstall (本地rpm包)
grouplist 列出可用的组
[root@192 ~]# yum grouplist
Last metadata expiration check: 0:13:11 ago on Mon Jul 11 20:43:42 2022.
Available Environment Groups:
Server with GUI
Server
Workstation
Custom Operating System
Virtualization Host
Installed Environment Groups:
Minimal Install
Installed Groups:
Development Tools
Available Groups:
Legacy UNIX Compatibility
Container Management
.NET Core Development
Graphical Administration Tools
Headless Management
groupinstall “group name” 安装一组软件
[root@192 ~]# yum -y groupinstall "Development Tools"
createrepo命令 创建yum仓库的元数据信息
[root@localhost ~]# yum install createrepo -y
[root@localhost ~]# createrepo [选项] <目录>
具体实例
[root@localhost ~]# yum list all 列出软件仓库中可用的软件
[root@localhost ~]# yum list|grep httpd 进行模糊查找
[root@localhost ~]# yum info httpd 列出软件包详情
安装软件包
[root@localhost ~]# yum install httpd 安装软件只需要给出软件名称
[root@localhost ~]# yum -y install httpd 安装过程中分析依赖关系后, 直接安装, 无需交互
安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖(非来自.repo定义的软件仓库)
[root@localhost ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
安装网络上rpm包
[root@localhost ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
重装软件包
[root@192 ~]# rpm -q wget 检查软件是否存在
wget-1.19.5-10.el8.x86_64
[root@192 ~]# rpm -qc wget 检查wget软件配置文件
/etc/wgetrc
[root@192 ~]# rm -rf /etc/wgetrc 不小心删除wget配置文件
[root@192 ~]# yum reinstall wget 重新安装
[root@192 ~]# rpm -qc wget 再次检查
/etc/wgetrc
更新软件包
[root@192 ~]# yum check-update 对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@192 ~]# yum update (需要升级的包名) 更新软件
删除软件包
[root@192 ~]# yum remove wget 删除该软件包,不会删除依赖, 但是我们尽可能不要使用删除软件操作
与仓库相关的命令
[root@192 ~]# yum repolist 列出yum源可用的软件仓库
repo id repo name
AppStream CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
base CentOS-8.5.2111 - Base - mirrors.aliyun.com
extras CentOS-8.5.2111 - Extras - mirrors.aliyun.com
[root@192 ~]# yum repolist all 列出全部yum源可用和禁用的仓库
mirrors.aliyun.com enabled
PowerTools CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com disabled
base CentOS-8.5.2111 - Base - mirrors.aliyun.com enabled
centosplus CentOS-8.5.2111 - Plus - mirrors.aliyun.com disabled
extras CentOS-8.5.2111 - Extras - mirrors.aliyun.com
[root@192 ~]# yum provides cd 查看这个文件或命令属于哪个包
Last metadata expiration check: 0:28:11 ago on Mon Jul 11 20:43:42 2022.
bash-4.4.20-2.el8.x86_64 : The GNU Bourne Again shell
Repo : base
Matched from:
Filename : /usr/bin/cd
与缓存相关的命令
[root@192 ~]# yum makecache 缓存yum源软件仓库, xml元数据文件
CentOS-8.5.2111 - Base - mirrors.aliyun.com 27 kB/s | 3.9 kB 00:00
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 21 kB/s | 1.5 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 56 kB/s | 4.3 kB 00:00
Metadata cache created.
[root@192 ~]# vim /etc/yum.conf 缓存软件包, 修改yum全局配置文件
[root@192 ~]# cat /etc/yum.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
[root@192 ~]# yum clean all 清除所有yum缓存
[root@192 ~]# yum clean packages 只清除缓存的软件包
与包组相关的命令
[root@192 ~]# yum group list 列出已经安装和所有可使用的软件组
[root@192 ~]# yum groupinstall 'Development Tools' 安装一整个组的软件
[root@192 ~]# yum groupremove 'Development Tools' yum删除包组
与历史记录相关的命令
[root@192 ~]# yum history 查看历史执行yum命令
[root@192 ~]# yum history info 6 查询历史执行yum命令ID详细信息
Transaction ID : 6
Begin time : Wed Jun 29 15:15:24 2022
Begin rpmdb : 383:b10114e0b1d414da7969a3f791a5c7858495ec86
End time : Wed Jun 29 15:15:25 2022 (1 seconds)
End rpmdb : 384:a9e670fceb941722be2e5fc1807c4b5094bce7b8
User : root <root>
Return-Code : Success
Releasever : 8
Command Line : -y install tcsh
Comment :
Packages Altered:
Install tcsh-6.20.00-15.el8.x86_64 @appstream
[root@192 ~]# yum history undo 5 撤销历史执行过的yum命令
===================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================
Removing:
tree x86_64 1.7.0-15.el8 @baseos 109 k
Transaction Summary
===================================================================================================================================
Remove 1 Package
YUM签名检查机制
- rpm软件提供组织redhat在构建rpm包时, 使用其私钥private key对 rpm进行签名
- 客户端在使用rpm为了验证其合法性, 可以使用redhat提供的公钥public key进行签名检查
方式1:指定公钥位置
[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
方式2:提前导入公钥
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
方式3:不进行签名验证
[root@192 ~]# yum install wget --nogpgcheck 不检查软件包的签名