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

Posted 城南花已开。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小胖学Linux day26~27:yum管理工具相关的知识,希望对你有一定的参考价值。

yum管理工具

今日思维导图:
小胖学Linux

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​

4.​​USTC Open Source Software Mirror​

5.​​华为开源镜像站_软件开发服务_华为云 (huaweicloud.com)​


yum命令实践

yum 查询

## list:查看yum仓库中的所有可以安装的rpm包
[root@wudidesangege <sub>]\\ yum list
包名 版本和发布次数 这包在哪个仓库
zziplib-devel.x86_64 0.13.62-12.el7 base
zziplib-utils.x86_64 0.13.62-12.el7 base
..............

## 过滤看看yum仓库中是否有wget包
[root@wudidesangege </sub>]\\ yum list|grep wget
wget.x86_64 1.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 root 125 Jun 10 2021 ftpusers
-rw-------. 1 root root 361 Jun 10 2021 user_list
-rw-------. 1 root root 5116 Jun 10 2021 vsftpd.conf
-rwxr--r--. 1 root root 338 Jun 10 2021 vsftpd_conf_migrate.sh
# 不小心删除了配置文件 或者损坏↓
[root@wudidesangege /etc/vsftpd]\\ rm -f vsftpd.conf
[root@wudidesangege /etc/vsftpd]\\ ll
total 20
-rw-------. 1 root root 125 Jun 10 2021 ftpusers
-rw-------. 1 root root 361 Jun 10 2021 user_list
-rwxr--r--. 1 root root 338 Jun 10 2021 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 root 125 Jun 10 2021 ftpusers
-rw-------. 1 root root 361 Jun 10 2021 user_list
-rw-------. 1 root root 5116 Jun 10 2021 vsftpd.conf
-rwxr--r--. 1 root root 338 Jun 10 2021 vsftpd_conf_migrate.sh

yum更新

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

# 更新指定的软件包
[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 B 00:00:00
(2/5): extras/7/x86_64/other_db | 147 kB 00:00:01
..........

## 默认情况下,yum是不会下载rpm的只会安装
## 除非开启,下载的配置
vim /etc/yum.conf
将配置中的 keepcache=0 改为=1 linux中一般 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
--小胖学Linux day10:文件管理命令4

小胖学Linux day15:用户管理2

小胖学Linux day16~17:用户组管理及用户提权

小胖学LInux day28:自制YUM仓库

小胖学Linux day11:文件的属性及类型

小胖学Linux day42~43:NFS共享存储