小胖学Linux day26~27:yum管理工具
Posted 城南花已开。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小胖学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)
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