day 20 repo软件包管理和yum使用

repo软件包说明

redhat package manager repo的全称 在linux中的.repo
结尾的文件 跟windows的.exe文件一样都是可执行的安装包文件

1)软件包的含义

ant-antunit-1.2-10.el7.noarch.rpm     
antlr-C++-2.7.7-30.el7.x86_64.rpm

以上两个软件包为例
名称|含义|
--|:--😐--
|ant-antunit|软件包名称
|1.2 |软件的版本
|10 |软件包编译发布的次数
|el7 |适用于7系列的操作系统
|el6 |适用于6系列操作系统
|noarch |适用于任何cpu架构
|x86_64 |硬件平台 位数
|.rpm |包的后缀名

2)软件包的安装方式

软件包 使用 优缺点
rpm包 预先编译好的,安装简单 版本过低
源码包 手动编译,安装繁琐 版本随意
二进制包 绿色软件 解压即用 无法修改源码

3)软件包的获取方式

本地的ISO镜像 需要挂载使用
联网下载
仓库获取 yum源

repo软件包使用

#  命令 管理软件包

#  挂载镜像 
/dev/cdrom  -->  /dev/sr0 
mount /dev/sr0  /mnt/  # 虚拟机镜像光盘挂载在/mnt临时的挂载 重启就会失效

df -h  # 查看磁盘使用情况和镜像挂载情况
ll  /mnt/Packages/  | wc -l # 统计repo软件包数量

# rpm命令选项
-i   # 安装
-v   # 显示安装的过程
-h   # 显示安装的进度条
-ivh # 安装软件显示过程和显示进度条
-e   # 移除一个安装的软件包 
-U        #升级 
-qa       #查询所有已经安装的软件包
-qi       #查询软件包本身相关信息
-ql       #查询软件包列表信息
-qc	 #查询软件包相关文件
-qf      #查询命令属于哪个软件包  必须是绝对路径  前提本地要已经存在这个软件包 
# rpm安装太需要依赖了,不会自动寻找依赖,需要手动下载依不建议使用

示例:

# 移除本地安装的tree包
[root@localhost ~]# rpm -e tree  

#  安装本地的repo包(速度非常快)
[root@localhost ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]

ll  /mnt/Packages/  | grep  apr  # 查找相关依赖包

# 联网安装软件包
rpm  -ivh
https://mirrors.aliyun.com/centos/7.8.2003/os/x86_64
/Packages/tree-1.6.0-10.el7.x86_64.rpm


rpm  一般不会使用这个命令来管理软件包 不能自己寻找依赖包
需要手动安装相关依赖包

yum管理工具

怎么获取yum源:
      本地的ISO镜像   
      yum源仓库  
      联网的方式下载 
      本地yum仓库 


yum的种类 : 
      base		#基础源 
      epel		#扩展源  

软件官方源       # nginx   zabbix   docker  
阿里源  
清华源
中科大  
163源 


yum总结:
yum repolist                    #  针对仓库操作 
yum repolist all                #  显示所有仓库repo包
yum repolist	                #  显示所有可安装的软件包 
yum installed	                #  显示已经安装的	
yum updates		        #  显示可更新的
yum check-update	        #  显示可更新的
yum update 命令	                #  更新命令最新版
yum install  命令	        #  安装命令 
yum localinstall repo包地址	#  本地安装 	
yum reinstall 包名		#  重新安装 
yum remove 包名			#  卸载
yum erase 包名			#  卸载 	
yum info 包名			#  显示软件包信息	
yum search 包名			#  搜索
yum provides 命令		#  查询命令属于哪个软件包 
yum groups 包名			#  组包管理
yum groups install 包名		#  安装组包
yum groups remove 包名		#  移除	
yum clean all			#  清空所有 
yum clean packages	        #  清空yum缓存软件包
yum clean plugins		#  清空插件		
yum makecache              	#  生成最新的仓库源缓存	 
yum history			#  yum历史记录
yum hisotry list all		#  显示所有yum历史命令
yum info ID(数字)		#  显示某次记录的信息
yum undo ID(数字)	        #  回滚这次的操作 		
yum-config-manager		#  yum仓库管理工具 
	--disable		#  禁用仓库	
	--enable		#  启用仓库 

实例:

# 只下载 不安装   指定下载的路径
[root@qls ~]# yum  install  -y  --downloadonly  --downloaddir=/opt   nginx

[root@qls ~]# cat /etc/yum.conf
[main]
# cachedir=/var/cache/yum/$basearch/$releasever
cachedir=/opt		#  指定下载保存路径
keepcache=1	        #  开启缓存 

# 回滚历史ID为10的操作
[root@qls ~]# yum  history  undo  10  -y 

# yum历史命令显示命令名称
[root@qls ~]# yum  --setopt=history_list_view=commands  history  list all


搭建本地yum仓库

# 把之前的本地仓库打包让其失效
cd /etc/yum.repos.d/
gzip ./*

# 挂载本地镜像源(临时挂载)
mount /dev/sr0  /mnt  # 虚拟机镜像包挂载在/mnt目录下

# 查看挂载目录
[root@localhost ~]# df -h | grep 'mnt'
/dev/sr0        4.3G  4.3G     0 100% /mnt  # 能过滤出来表示挂载成功

# 编写yum源文件配置
# 1 仓库地址协议
file://			#本地
ftp://			#文件传输地址
http://			#网络协议地址
https://		#网络协议地址 

[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[mpd]                      
name=this is local repo   
baseurl=file:///mnt       
enabled=1                  
gpgcheck=0              

# 清空yum缓存 所有
[root@localhost ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: mpd
Cleaning up list of fastest mirrors
Other repos take up 284 M of disk space (use --verbose for details)

# 加载yum缓存
[root@localhost ~]#  yum  makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
mpd                                                                                            | 3.6 kB  00:00:00     
(1/4): mpd/group_gz                                                                            | 166 kB  00:00:00     
(2/4): mpd/primary_db                                                                          | 3.1 MB  00:00:00     
(3/4): mpd/other_db                                                                            | 1.3 MB  00:00:00     
(4/4): mpd/filelists_db                                                                        | 3.2 MB  00:00:00     
Metadata Cache Created

将本地仓库共享给其他主机

10.0.0.100		#本地仓库地址    服务端 
10.0.0.200		#客户端  



# 在10.0.0.100 主机上面操作 
mount  /dev/cdrom   /mnt/  # 挂载镜像

#  安装文件传输工具
yum  install  -y  vsftpd

#启动
systemctl  start  vsftpd
systemctl  enable  vsftpd

#关闭防火墙
systemctl  stop  firewalld

#关闭Selinux
setenforce  0



#测试
#浏览器输出
ftp://10.0.0.100/

#访问的是这个目录
ll /var/ftp/
total 0
drwxr-xr-x 2 root root 6 Oct 31  2018 pub

# 创建目录用来存仓库包
mkdir  /var/ftp/local-base

# 拷贝rpm包到服务端
cp  -rp  /mnt/Packages/*  /var/ftp/local-base/

#下载管理工具
yum  install  -y  createrepo

#告诉系统,这是个镜像yum源仓库
createrepo   /var/ftp/local-base/

#修改yum配置文件
 cat /etc/yum.repos.d/lcoal.repo
[mpd]
name=this  is  local  repo
baseurl=ftp://10.0.0.100/local-base/
enabled=1
gpgcheck=0

# 查看仓库列表
yum  repolist


#让其他主机使用这个仓库
在10.0.0.200主机上面操作
[root@client ~]# systemctl  stop  firewalld
[root@client ~]# setenforce  0
[root@client ~]# gzip  /etc/yum.repos.d/*
[root@client ~]# ll /etc/yum.repos.d/

#编写yum源配置文件
 cat /etc/yum.repos.d/lcoal.repo
[mpd]
name=this  is  local  repo
baseurl=ftp://10.0.0.100/local-base/
enabled=1
gpgcheck=0

# 测试 
yum clean all
Loaded plugins: fastestmirror
Cleaning repos: mpd

 yum  makecache


yum缓存作用

近几日搭建服务器环境,需要使各个服务器的环境一致,考虑到直接使用yum进行安装,可能会因为repo源的更新而导致服务器的软件环境不一致问题出现(包括以后新增的服务器也需要一致配置),所以通过开启yum的缓存功能,来在A服务器上进行配置,其它服务器上直接使用A服务器中yum缓存下来的软件包进行安装即可(包括以后新增的服务器也可以使用这套软件包来进行配置)。
打开yum的缓存功能:
/etc/yum.conf配置文件,设置"keepcache=1"
1
配置文件中的”cachedir”就是用来缓存安装包的具体目录。
待A服务器完成所有配置后,将cachedir指定的目录直接拷贝到其它待安装的服务器上,然后使用”yum -C install [软件包名]”即可使用缓存安装。(-C参数表示使用系统缓存)。
好处:
1、便于多台服务器的统一配置,以及后续新增的服务器的统一配置;
2、节省了公司带宽占用。

posted @ 2020-07-30 17:05  nick_xm  阅读(360)  评论(0编辑  收藏  举报