小胖学Linux day26~27:yum管理工具

但使书种多,会有岁稔时。这篇文章主要讲述小胖学Linux day26~27:yum管理工具相关的知识,希望能为你提供帮助。
yum管理工具今日思维导图:

yum概述什么是yum
yum 也是一种 rpm 包管理工具,相比于rpm命令,优势是可以自动解决依赖关系。
自动解决依赖关系前提条件,你的yum源中要有这些依赖包
举例:
nginx 安装需要依赖 pcre-devel 、 openssl-devel

yum install -y nginx

什么是yum源
yum源:可以理解为手机中的应用商店
yum源其他名称:镜像站,yum仓库,rpm仓库
配置yum
# 使用阿里云的yum源
http://mirrors.aliyun.com

# 系统中需要的基础yum源
base源:和镜像中的Linux基础rpm包差不多
epel源:一些扩展安装包

# yum源的配置文件存放目录
[root@wudidesangege < sub> ]\\ ll /etc/yum.repos.d/
-rw-r--r-- 1 root root 1759 Jul 5 2021 CentOS-Base.repo
-rw-r--r-- 1 root root 664 Jul 5 2021 epel.repo

# 1.删除所有官方yum源
[root@wudidesangege < /sub> ]\\ rm -f /etc/yum.repos.d/*
# 2.安全方式 :打成压缩包 方便恢复
[root@wudidesangege < sub> ]\\ gzip -r /etc/yum.repos.d/
# 3.下载Base源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@wudidesangege < /sub> ]\\ ll /etc/yum.repos.d
-rw-r--r-- 1 root root 2523 Apr 20 23:42 CentOS-Base.repo

# 4.下载epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@wudidesangege ~]\\ ll /etc/yum.repos.d/
-rw-r--r-- 1 root root 2523 Apr 20 23:42 CentOS-Base.repo
-rw-r--r-- 1 root root 664 Apr 20 23:48 epel.repo
## 注意:在/etc/yum.repos.d/目录下所有的yum源配置,必须以.repo结尾

## 安装nginx服务,使用nginx官方yum源
# 1.打开官网 http://nginx.org/
# 2.找nginx的yum仓库
# 3.创建一个vim /etc/yum.repos.d/nginx.repo 写入以下源码
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 清华源里的替换yum源的的命令↓
sudo sed -e s|^mirrorlist=|#mirrorlist=|g \\
-e s|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g \\
-i.bak \\
/etc/yum.repos.d/CentOS-*.repo

1.??阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)??
2.??欢迎访问网易开源镜像站 (163.com)??
3.??清华大学开源软件镜像站 | Tsinghua Open Source Mirror??
【小胖学Linux day26~27:yum管理工具】4.??USTC Open Source Software Mirror??
5.??华为开源镜像站_软件开发服务_华为云 (huaweicloud.com)??


yum命令实践yum 查询
## list:查看yum仓库中的所有可以安装的rpm包
[root@wudidesangege < sub> ]\\ yum list
包名版本和发布次数这包在哪个仓库
zziplib-devel.x86_640.13.62-12.el7base
zziplib-utils.x86_640.13.62-12.el7base
..............

## 过滤看看yum仓库中是否有wget包
[root@wudidesangege < /sub> ]\\ yum list|grep wget
wget.x86_641.14-18.el7_6.1@base

## info:查看指定包的详细信息
[root@wudidesangege < sub> ]\\ yum info wget
Installed Packages
Name: wget
Arch: x86_64

## 查看yum仓库中,所有安装包的详细信息
[root@wudidesangege < /sub> ]\\ yum info

## provides:根据命令查找包
[root@wudidesangege < sub> ]\\ yum provides ifconfig
# 该命令隶属于的包名↓
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
# 该命令隶属于的仓库↓
Repo: @base
# 装完后,命令会在/usr/sbin下叫ifconfig↓
Matched from:
Filename: /usr/sbin/ifconfig

## provides:根据命令查找属于哪个安装包,最好写命令的绝对路径
[root@wudidesangege < /sub> ]\\ yum provides */ifconfig
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo: base
Matched from:
Filename: /sbin/ifconfig

net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo: @base
Matched from:
Filename: /sbin/ifconfig

yum安装
yum安装方式:
- 本地安装
yum localinstall -y 包名 (前提该包已经下载在服务器上了)
- yum源安装
yum install -y tree
- 网站上安装
yum install -y http://test.driverzeng.com/Nginx_package/nginx-1.12.2-
3.el7.x86_64.rpm

自动解决依赖关系的前提条件:在你的所有yum源中都要有该软件的依赖包

yum卸载
# 以下两种方式 选择一种即可
yum erase 包名 -y
yum remove 包名 -y

yum重装
yum reinstall -y 包名

## 作用:误删除了该服务相关的任何一个文件,使用reinstall都可以恢复,但是恢复的是最初始的配置,只恢复被删除的文件 ,其他文件不变,还是重装前的配置

## reinstall重装的方式,必须跟最开始安装这个包的方式保持一致
- 本地安装:重装时就得进入到包设置目录或加上包的绝对路径 并加上完整包名
- 从源里装:重装就只要包名

示例↓
[root@wudidesangege < sub> ]\\yum install -y vsftpd
[root@wudidesangege < /sub> ]\\ rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@wudidesangege ~]\\ cd /etc/vsftpd/
[root@wudidesangege /etc/vsftpd]\\ ll
total 20
-rw-------. 1 root root125 Jun 102021 ftpusers
-rw-------. 1 root root361 Jun 102021 user_list
-rw-------. 1 root root 5116 Jun 102021 vsftpd.conf
-rwxr--r--. 1 root root338 Jun 102021 vsftpd_conf_migrate.sh
#不小心删除了配置文件 或者损坏↓
[root@wudidesangege /etc/vsftpd]\\ rm -f vsftpd.conf
[root@wudidesangege /etc/vsftpd]\\ ll
total 20
-rw-------. 1 root root125 Jun 102021 ftpusers
-rw-------. 1 root root361 Jun 102021 user_list
-rwxr--r--. 1 root root338 Jun 102021 vsftpd_conf_migrate.sh

#yum reinstall -y重装↓
[root@wudidesangege /etc/vsftpd]\\ yum reinstall -y bsftpd
[root@wudidesangege /etc/vsftpd]\\ ll
total 20
-rw-------. 1 root root125 Jun 102021 ftpusers
-rw-------. 1 root root361 Jun 102021 user_list
-rw-------. 1 root root 5116 Jun 102021 vsftpd.conf
-rwxr--r--. 1 root root338 Jun 102021 vsftpd_conf_migrate.sh

yum更新
# 查看当前系统中,有哪些软件是可以更新的
[root@wudidesangege /etc/vsftpd]\\ yum check-update
NetworkManager.x86_641:1.18.8-2.el7_9updates
NetworkManager-libnm.x86_641:1.18.8-2.el7_9updates

# 更新指定的软件包
[root@wudidesangege < sub> ]\\ yum update -y zlib

# 更新所有可更新的软件包
# 危险操作 因为连系统本身都会升级
[root@wudidesangege < /sub> ]\\ yum update -y

yum缓存命令
## 清除所有的缓存
yum clean all

## 加载缓存
yum makecache
例↓
[root@wudidesangege < sub> ]\\ yum makecache
(1/5): epel/x86_64/prestodelta|935 B00:00:00
(2/5): extras/7/x86_64/other_db| 147 kB00:00:01
..........

## 默认情况下,yum是不会下载rpm的只会安装
## 除非开启,下载的配置
vim /etc/yum.conf
将配置中的keepcache=0改为=1linux中一般 0代表关闭 1代表开启

## 下面是yum下载的默认路径
[root@wudidesangege < /sub> ]\\ ll /var/cache/yum/x86_64/7/
total 24
drwxr-xr-x. 4 root root 4096 Apr 23 16:24 base
drwxr-xr-x. 4 root root 4096 Apr 23 16:24 epel
..........

## 下载nginx,不安装,并指定目录
[root@wudidesangege < sub> ]\\ yum install nginx -y --downloadonly --downloaddir=/tmp

--downloadonly:仅下载,不安装
--downloaddir:指定下载的目录

## yum clean packages :清除所有下载的包 但只会清除yum默认路径下rpm包 在其他目录的包不会被一起删除
[root@wudidesangege < /sub> ]\\ find/var/cache/yum/ -type f -name *.rpm
/var/cache/yum/x86_64/7/base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm
/var/cache/yum/x86_64/7/base/packages/gperftools-libs-2.6.1-1.el7.x86_64.rpm
/var/cache/yum/x86_64/7/epel/packages/nginx-1.20.1-9.el7.x86_64.rpm
..........

[root@wudidesangege ~]\\ yum clean packages

yum包组管理命令
# 查看有哪些包组可以安装
[root@wudidesangege ~]\\ yum group list

# 安装包组
yum groups install 包组名字

# 卸载包组
yum groups remove 包组名字

yum历史命令
# 查看yum的历史操作
[root@wudidesangege < sub> ]\\ yum history
命令的ID号执行的命令执行的时间动作操作几个包
ID| Command line| Date and time| Action(s)| Altered
--

    推荐阅读