rpm包管理、yum源及创建本地仓库(同步华为源)

一、rpm包介绍

rpm包来源
1、来源网络下载
2、来源本地:自己的镜像自带的rpm包
rpm包格式
例1: mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm

软件包名:mysql-connector-odbc
版本号 Version:5.2.5
发布版本 Release:8.el7
平台:el7.x86_64
后缀:.rpm

例2: abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm

abrt-python-doc  #软件包的名称
2.1.11  #软件的版本
57  #软件编译之后的发布的次数
el7  #适合的操作系统的版本
noarch  #适⽤于不同版本的CPU 
.rpm  #后缀名
RPM闭包使⽤的平台
# 查看⾃⼰当前平台
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

#验证软件包是否安装成功
[root@localhost ~]# nginx -v
nginx version: nginx/1.18.0
管理rpm包有两种命令
# 1、rpm命令:
 需要⾃⼰找到rpm包,并且⼿动解决包的依赖性关系
 ps:实际情况下,很难分辨缺少什么依赖包
 
# 2、yum命令:
 相关rpm包事先都被存放于⼀个仓库⾥,仓库包含了所有的依赖包,所以yum按照可以帮我们解决依
赖性问题
RPM包获取 (挂载)
# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况) : 挂载镜像有以下三种⽅式
⽅式1: [root@localhost ~]# mount /dev/cdrom /opt/
⽅式2: [root@localhost ~]# mount /dev/sr0 /opt/
⽅式3 [root@localhost ~]# mount -o loop /xxx.iso /opt
查看光盘⾥的rpm包 [root@localhost ~]# ls /opt/Packages/
# 2.⾃⼰去⽹上下载rpm包进⾏安装
# 3.联⽹从yum仓库⾥获取rpm包  # yum的时候

二、rpm命令

#1、安装:rpm -ivh <RPM包名全称>
	-v : 显示安装过程
	-i :显示安装包的详细信息
	-h : 安装包哈希标记

#2、卸载:rpm -e <RPM包名>

#3、升级:rpm -Uvh <RPM包名>

#4、卸载:rpm -e <软件包名称>

#5、查询:
rpm -qa #查询系统中安装的所有RPM软件包

rpm -qa | grep php    #检索系统中已经安装有关php的软件包

rpm -q <RPM包名>    #查询指定软件包是否已安装
[root@egon ~]# rpm -q zip
 zip-3.0-11.el7.x86_64
 
rpm -qi <RPM包名>    #查询系统中已安装包的描述信息
 
rpm -ql <RPM包名>    #查询系统中已安装包⾥所包含的⽂件

rpm -qc <RPM包名> #查询指定软件包的所有配置⽂件
[root@egon ~]# rpm -qc mariadb
 /etc/my.cnf.d/client.cnf
 
rpm -qd <RPM包名> # 查询某个包安装的帮助⽂档
[root@localhost ~]# rpm -qd zlib 
 
rpm -qf ⽂件路径   #查询系统中指定⽂件所属的软件包
[root@egon ~]# rpm -qf /usr/sbin/ifconfig
 net-tools-2.0-0.25.20131004git.el7.x86_64
 
 -p # 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
[root@localhost ~]# rpm -e dos2unix # 先卸载⼀下,证明本地rpm数据库中没有该包信
 
 [root@localhost ~]# rpm -qip /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qlp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qcp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qdp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm

额外选项
--nomd5 # 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可能⽆法使⽤,最好是解决依赖性后再安装
          [root@localhost ~]# rpm -e dos2unix --nodeps # 忽略依赖关系
 
--force # 强制安装软件包,只有安装和升级可以强制执⾏
下载Nginx rpm安装包的全名
[root@localhost ~]# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm

三、yum管理rpm包

yum是CentOS的软件包管理工具,自动为我们解决软件依赖问题。yum包管理工具必须使用yum源指定软件下载地址去下载需要安装的软件包。配置的路径是:/etc/yum.repos.d

yum默认的缓存目录:/var/cache/yum/x86_64/7/base/packages/
yum源的执行原理
1、需要在/etc/yum.repos.d目录下配置yum源地址
2、清空缓存建立新的缓存
3、安装软件(自动解决依赖关系)
创建本地yum仓库的步骤
1、安装vsftp、createrepo、yum-utils
2、创建仓库`/var/ftp/`
3、同步华为源到本地reposync -r base -o /var/ftp/base
4、建立依赖createrepo base
5、编写本地yum源`/etc/yum.repos.d`
6、测试

查看yum命令与配置⽂件
[root@localhost ~]# rpm -q yum
yum-3.4.3-161.el7.centos.noarch
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf

yum命令常⽤选项
#仓库 
 yum repolist      # 查询可⽤仓库
 yum repolist all   #查看包括已启⽤或禁⽤的所有仓库状态
 # 关闭与启⽤仓库:本质:都是在修改repo⽂件中的enable的值 0 不启⽤ 1 启⽤
 yum-config-manager --disable epel    #关闭仓库epel
 yum-config-manager --enable epel     #启⽤仓库epel

#查看 
 yum list     	    #列出可⽤仓库中所有的软件包
 yum list | less
 yum grouplist 		#列出可⽤仓库中的软件组
 yum check-update	 #查看当前系统需要更新软件
 yum provides /usr/sbin/ifconfig  #查询命令所属的软件包,可以不加路径,只写命令名字
 #与rpm -qf的区别在于yum  provides后可以只跟命名名

#安装 
 yum install httpd httpd-tools         #加上-y选项可以变成⾮交互
 yum groupinstall  "开发⼯具" -y        #安装软件组,⼀个软件组中包含了多个软件包
 yum groups install "开发⼯具" -y       #同上

#卸载 
 yum remove httpd httpd-tools http* 	#卸载软件包
 yum remove httpd  -y : 免交互移除 
 yum groupremove "开发⼯具" -y. 		 #卸载软件组
 yum groups remove "开发⼯具" -y 	 #同上

#重装
 yum reinstall httpd		 #不⼩⼼删除了配置⽂件的时,可以reinstall⼀下

#更新
yum check-update		 #检查可以更新的软件包
yum update -y 			#更新所有软件包,包括内核,通常只在刚装完系统时执⾏
yum update httpd -y 	#更新某个软件包

#缓存
yum makecache 			#制作元数据缓存
yum clean all 			#清理元数据缓存
vim /etc/yum.conf 		#默认软件包下载安装后会⾃动删除
#设置keepcache=1 即开启了软件包缓存
#缓存⽬录为配置⽂件中指定的cachedir

#历史记录
 yum history # 查看执⾏过的yum命令历史记录
 yum history info ID号 # 查看具体某⼀条yum命令的详细信息
 yum history undo ID号 # 撤销执⾏过的历史命令

# 启用repo仓库
yum install yum-utils -y

启用一个yum仓库:yum-config-manager --enable (仓库名称)
关闭一个yum仓库:yum-config-manager --disable (仓库名称)

四、将网络yum源同步到本地源供其他机器安装----步骤

一、保证机器可以联网
二、在本地仓库机器上按照如下步骤操作
vim /etc/yum.conf
将keepcache的0改为1(默认为0,意为安装成功后立即删除安装包)

1、在命令行中输入:
yum install createrepo  vsftpd  wget  -y     #这三个软件下面要用到,没有请自行安装
2、安装成功后: 输入:systemctl  enable  --now  vsftpd    #立即启用ftp
3、rm -rf /etc/yum.repos.d/*       #删除本地源
4、wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo       #将华为源同步到本地(也可采用其他源,阿里云、163自行更改)
5、cd   /var/ftp    #此处一定要切换目录
6、yum  install yum-utils -y     
7、reposync  -r  (仓库名称,不知道的可以用yum repolist查看)       #将网络仓库保存到本地
8、同步好以后输入:createrepo   base      #建立依赖关系
9、输入vim /etc/yum.repos.d/local.repo将以下内容输入:
 [loacl-ftp-30]              #仓库名,可自定义
 name="This is 30 ftp server"       #描述信息
 baseurl=ftp://172.16.1.30(自己的内网地址或外网地址)/base     #yum源地址
 gpgcheck=0      #0不检查秘钥,1为检查秘钥
 enabled=1        #1为启用,0为不启用

在远程测试机上输入:

rm -rf /etc/yum.repos.d/*
输入vim /etc/yum.repos.d/local.repo将以下内容粘贴即可:
 [loacl-ftp-30]              #仓库名,可自定义
 name="This is 30 ftp server"       #描述信息
 baseurl=ftp://172.16.1.30(与本地仓库机的配置文件地址相同即可)/base     #yum源地址
 gpgcheck=0      #0不检查秘钥,1为检查秘钥
 enabled=1        #1为启用,0为不启用

#测试环境
yum clean all     #清除缓存
yum makecache	  #生成新缓存
yum install zsh   #安装zsh软件
yum repolist      #查看本地下载源仓库,此时应该只有一个ftp源

posted @ 2021-03-30 17:12  小绵  阅读(1297)  评论(0编辑  收藏  举报