【软件包管理-yum】

本文详细介绍了Linux系统中yum软件包管理工具的使用,包括yum的基础概念、配置、日常操作如查询、安装、更新、删除软件包,以及管理仓库、历史记录、缓存等内容。此外,还探讨了yum与rpm安装的区别,并展示了如何搭建企业级yum仓库,为系统维护和管理提供了全面指导。
摘要由CSDN通过智能技术生成

yum基础介绍

什么是yum

yum/dnf是RedHat及CentOS系统中的软件包管理器。他能通过互联网下载.rpm格式包进行安装,并能自行处理其依赖关系,不需要繁琐的一次次下载安装

什么是yum源

yum源就是一个网址。这个网址对应的就是一个仓库,这个仓库中有很多的rpm包。加一个源网址,就相当于是在添加一个仓库
client——ftp/http/file——yum地址——yum仓库(rpm包集合)

yum配置文件

CentOS的配置文件

[root@localhost ~]# vim /etc/yum.conf 

[main]
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则不限制
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

配置yum源

1.配置阿里源

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

[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2.配置第三方yum源

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

3.nginx,zabbix,docker官方源

[root@localhost ~]#	vim	/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx	repo	
baseurl=http://nginx.org/packages/centos/7/$basearch/	
gpgcheck=0
enabled=1

yum日常操作

yum查询软件包

1.使用dnf/yum list查询所有仓库中的所有软件包

[root@localhost ~]# yum list
[root@localhost ~]# yum list | grep ftp

2.使用dnf/yum list installed查询所有已安装的软件包

[root@localhost ~]# yum list installed

3.使用dnf/yum provides查询系统命令来自于哪个软件包

[root@localhost ~]# rpm -qf $(which cd)			#rpm需要知道绝对路径,如果不存在该命令是无法查找到该命令所属包

[root@localhost ~]# yum provides cd

yum安装软件包

1.使用dnf/yum install通过仓库获取软件包进行安装

[root@localhost ~]# yum install vsftpd		#交互式,麻烦

[root@localhost ~]# yum install vsftpd -y	#非交互式

2.使用yum localinstall 直接安装公网的rpm包, 会自动查找当前系统上已有的仓库,会自动解决依赖关系

[root@localhost ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm

yum直接安装本的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
[root@localhost ~]# yum localinstall samba-4.8.3-4.el7.x86_64.rpm

rpm与yun安装的区别

rpm -ivh 安装 :安装过程碰到了依赖怎么处理呢?
//缺什么找什么,然后安装什么
[root@localhost ~]# wget https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.6/x86_64/RPMS/mongodb-org-3.6.0-1.el7.x86_64.rpm

[root@localhost ~]# rpm -ivh mongodb-org-3.6.0-1.el7.x86_64.rpm

配置它的源
[root@localhost ~]#	vim	/etc/yum.repos.d/mongodb.repo
[mongodb-org]
name = MongoDB Repository
baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck = 0
enabled = 1
gpgkey = https://www.mongodb.org/static/pgp/server-3.6.asc

===========================================================
yum localinstall :安装过程碰到了依赖怎么处理?  
//他会自动处理依赖
		1.分析软件的依赖
		2.通过所有已经配置的repo源,上对应的仓库去寻找所需要的依赖包
	    3.安装所有的依赖包,最后安装本地的rpm
[root@localhost ~]# yum localinstall mongodb-org-3.6.0-1.el7.x86_64.rpm	    

yum重装软件包

当我们安装好了服务后,不小心删除了相关配置文件,此时就可以通过重装的方式修复

1.首先删除vsftpd配置主文件
[root@localhost ~]# rpm -qc vsftpd	#列出主配置文件
[root@localhost ~]# rm -f /etc/vsftpd/vsftpd.conf	#删除主配置文件

2.使用yum reinstall对软件进行重新安装
[root@localhost ~]# yum reinstall vsftpd	#重新安装

3.检查vsftpd服务配置文件是否恢复,以及软件是否正常使用
[root@localhost ~]# rpm -qc vsftpd (全部恢复)

yum更新软件包

1.对比linux已安装的软件和yum仓库中的软件,有哪些需要升级
[root@localhost ~]# yum check-update 

2.更新acl软件
[root@localhost ~]# yum update acl -y

3.更新整个系统所有的软件,包括内核(谨慎使用,通常装完系统会进行执行)
[root@localhost ~]# yum update -y

yum删除软件包——yum remove

[root@localhost ~]# yum install samba -y
[root@localhost ~]# yum remove samba -y

yum管理组包

1.使用yum groups install 安装一整组的软件
[root@localhost ~]# yum groups list
[root@localhost ~] yum groups install Development tools
Compatibility libraries
Base Debugging Tools

2.使用yum groups renove删除组包
[root@localhost ~]# yum	groups remove -y Base

yum管理仓库

1.列出yum repolist源可用的软件仓库
[root@localhost ~]# yum repolist
[root@localhost ~]# yum repolist all(查看所有的仓库,包括禁用的)

2.通过yum-config-manager启用和禁用仓库
两种方式:
    1)找到该仓库的repo文件,将里面的enable 修改为 0不启用 1启动
		关闭仓库:[root@localhost ~]# yum-config-manager --disable mysql80-community
		启用仓库:[root@localhost ~]# yum-config-manager --enable mysql80-community
    2)gzip /etc/yum.repos.d/xx.repo 压缩该文件,让该文件失效

yum管理历史记录

了解即可:当我们删除某个软件时,希望撤销删除的操作,可以使用yum history undo

1.删除vsftp软件,然后查看操作记录
[root@localhost ~]# yum install httpd -y		#安装hpptd
[root@localhost ~]# yum remove httpd -y			#删除hpptd
[root@localhost ~]# yum history					#查看事件ID

2.使用yum history undo Number撤销
[root@localhost ~]# yum history info 14			#事务完成属主等
   
[root@localhost ~]# yum history undo 14			#撤销事件,恢复软件

yum缓存软件包

1.缓存rpm包方法一:通过yum全局配置文件
[root@localhost ~]# vim /etc/yum.conf 
keepcache=0			#启动缓存
[root@localhost ~]# yum install lrzsz -y		#安装

[root@localhost ~]# find /var/cache/yum/ -type f -name "*.rpm"		#查看相关缓存
2.缓存rpm包方法二:通过yum下载该软件包至本地,不进行安装
[root@localhost ~]# yum install httpd -y \
> --downloadonly \
> --downloaddir=/opt

3.清楚缓存
[root@localhost ~]# yum clean all		#清理所有yum缓存信息,包括yum清理缓存
[root@localhost ~]# yum clean packages	#仅清理所有缓存的软件包

构建yum仓库

在无网络环境下,但我们需要安装相应环境的安装包,这个时候我们就可以利用光盘搭建一个本地yum仓库

1.挂载镜像
[root@localhost ~]# mount /dev/cdrom /mnt/

2.备份原有仓库
[root@localhost ~]# gzip /etc/yum.repod/*

3.使用yum-config-manager命令可以快速添加一个本地仓库
[root@localhost ~]#yum install yum-utils -y
[root@localhost ~]#yum-config-manager --add-repo=“file:///mnt”
======================================================================
4.自行编辑一个.repo文件,将仓库信息储存在该文件
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[repo-local]		#仓库名称
name = This Local Repo Database		#仓库描述信息
baseurl = file:///data/base		#仓库的url地址,格式:file://,ftp://,http;//等协议
enable = 1		#是否使用该yum源(0代表禁用,1代表启用)
gpgcheck = 0		#是否验证软件签名(0代表禁用,1代表启激活)

5.生成缓存信息
[root@localhost ~]# yum makecache

6.安装测试(成功)
[root@localhost ~]# yum install lrzsz -y

搭建企业级yum仓库

在这里插入图片描述

  • 本地光盘提供基础软件包:Base
  • yum缓存提供常用软件包:nginx,zabbix,docker
服务端操作配置
1.准备两台服务器
  * 一台充当Server服务端;  一台充当Client客户端;
  
2.服务端操作如下:
	1)提供几个仓库:
				base仓库(光盘的数据):
				zabbix仓库(互联网下载| 同步过来);
				nginx仓库 (互联网下载)
=========================================================================================
	2)将这几个目录做成仓库:
			[root@magedu-node1 ~]#  createrepo /var/ftp/zabbix/
			[root@magedu-node1 ~]#  createrepo /var/ftp/base/
			[root@magedu-node1 ~]#  createrepo /var/ftp/nginx/
	
=========================================================================================			
基础源base软件包
[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/base/
第三方源的rpm软件包
[root@localhost ~]# mkdir -p /var/ftp/zabbix
[root@localhost ~]# vim wget_ngin_rpm
#!/usr/bin/bash
# 获取软件包名称
web_site="http://nginx.org/packages/centos/7/x86_64/RPMS/"
pkg_name=$(curl -s ${web_site} | grep "<a" | awk -F '"' '{print $2}')
# 遍历包名称,依次赋予给i变量;
for i in ${pkg_name}
do
        wget -O /var/ftp/nginx/${i} ${web_site}/${i}
done

=========================================================================================
	3)2.2) 准备一个ftp服务;将几个目录对外提供;
			[root@localhost ~]# yum install vsftpd -y
			[root@localhost ~]# systemctl restart vsftp
			[root@localhost ~]# systemctl enable vsftpd
			[root@localhost ~]# setenforce 0
			[root@localhost ~]# systemctl stop firewalld

客户端操作配置
1) 客户端必须与服务端处于同一个局域网络中
2) 配置好yum源指向到服务端;
			[root@localhost ~]# gzip /etc/yum.repos.d/*
			[root@localhost ~]# vim /etc/yum.repos.d/all_in.repo
			[base]
			name = base
			baseurl = ftp://10.0.0.200/base
			enable = 1
			gpgcheck = 0
			
			[nginx]
			name = Nginx Repo
			baseurl = ftp://10.0.0.200/nginx
			enable = 1
			gpgcheck = 0

			[zabbix]
			name = Zabbix Repo
			baseurl = ftp://10.0.0.200/zabbix
			enable = 1
			gpgcheck = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赵的小记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值