rpm依赖自动解决,yum批量安装,本地源

场景:

rpm包安装时都是有依赖的,手动一个个都安装,费时费力。

思路:将一堆docker的rpm包放到一个目录下,做成本地yum源,让yum自动检测安装。

 

一、开启本地源

CentOS7 开启本地源CentOS-Media.repo文件。将文件中enabled=0改成enabled=1      

       /media/cdrom/ 路径下是ISO的系统镜像文件。

       /media/CentOS/ 下放我们自定义docker的rpm包和相关依赖包。

 vi  /etc/yum.repos.d/CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl= file:///media/CentOS/
         file:///media/cdrom/
         file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

priority=1

[c7-media-CentOS]
name=CentOS-$releasever - Media
baseurl= file:///media/CentOS/

gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

priority=1

  注意:在新的[c7-media-CentOS]项的baseurl路径下不要添加其他项有的重复路径,尤其是挂载centos系统镜像的ISO路径,否则有包都会提示“ 没有可用软件包 docker。错误:无须任何处理 ”。

二、创建存放rpm包的目录,这个里放到 /media/CentOS/,因为CentOS-Media.repo配置文件中baseurl就自带这个目录.

[root@CentOs7 ~]# mkdir -p /media/CentOS/
[root@CentOs7 ~]# mv *.rpm /media/CentOS/ 

 

三、创建repodata文件夹,将/media/CentOS/目录制作成软件仓库

[root@CentOs7 ~]# yum install -y createrepo
[root@CentOs7 ~]# createrepo /media/CentOS/

 在/media/CentOS/就可以看到有个repodata文件夹,里面是相关配置文件,不要去改动。

    如果要增加或删除了rpm包,重新执行createrepo --update命令来更新。

[root@CentOs7 ~]# createrepo  --update  /media/CentOS/

  

 四、查看仓库列表

[root@CentOs7 ~]#  yum repolist

  

 五、网络访问仓库

上面操作中只是在本地建立了一个YUM仓库,这样别人是无法使用的。所以通常会在计划任务中把公网YUM源同步到本地(推荐使用reposync),同步后再执行一次createrepo更新元数据,最后把仓库目录通过FTP或者Nginx、Apache、NFS服务等共享出来,然后客户端的配置文件中修改如下:

[test]
name=test
enable=1
gpgcheck=0
baseurl=http://10.211.10.12

 

六、清除缓存

[root@CentOs7 ~]# yum clean all

  注意:如果自建的repo仓库增加或删除了文件,执行过createrepo后,就要执行 yum clean all 来清除之前的记录。

                   如果是enabled=1开启了一个仓库,不需要执行yum makecache。执行yum install 时会自动执行yum makecache

 

 七、跳过不想安装的源,比如安装docker,先找到的是本地的docker,但是不想装本地的,想装网络的。

方法一:enabled=0来关闭此项的仓库路径。

enabled=0

方法二:用 --disablerepo=c7-media_CentOS 参数来跳过本地源,搜索其他源。[c7-media_CentOS]是在CentOS-Media.repo文件里的项名称(要改成你的项名称)

yum --disablerepo=c7-media_CentOS install docker

 --disablerepo=[repo]  禁用一个或多个软件源(支持通配符)用,(逗号)分割多个参数。

yum --disablerepo=c7-media_CentOS,extras_163 install docker

  

 

yum常用命令

yum repolist {all|enabled|disabled} 列出所有/已启用/已禁用的yum源
yum list {all|installed|avaliable} 列出所有/已安装/可安装的软件包
yum info package 显示某一个软件包的信息 --建议使用rpm -qi package_name,yum显示的比较慢,需要加载缓存
yum install package -y安装软件包
yum reinstall package 重新安装软件包
yum remove|earse package 卸载软件包
yum whatprovides|provides files 查询某个文件是哪个软件包生成的,files通常指命令,比如可以写nginx--这个命令比较实用

yum grouplist {all|installed|avaliable} 列出所有/已安装/可安装的软件包组  --用的不多,了解一下即可
yum groupinfo 显示某个软件包组的信息
yum groupinstall 安装某个软件包组
yum groupremove 删除某个软件包组

yum history 查看yum使用的历史
yum clean {all|packages|metadata} 清除所有/软件包/元数据
yum makecache 生成yum元数据
yum --nogpgcheck 不校验公钥文件
yum -y 自动进行操作
yum update 升级所有包,以及升级软件和系统内核,这就是一键升级  --
yum update package 更新指定程序包package --一般不要使用这条命令

yum --disablerepo=repo  --临时禁用某个repo源
yum  install nginx --disablerepo=nginx-stable  --临时禁用指定的repo,在其他的repo安装nginx包,这条命令比较实用
yum --enablerepo=
yum -C list nginx  --在缓存中查找包,速度更快

  

yum-fastestmirror

[root@node-2 ~]# yum install yum-fastestmirror -y  

#自动搜索最快镜像插件并安装(yum多个mirror自动选择速度最快的mirror,yum-fastestmirror插件,它会自动选择最快的mirror) #我们都知道,使用yum可以简化系统软件更新的工作。为了保证更新的持续进行,通常都会提供多个mirror(镜像)地址供下载使用,但由于存在地域问题,
# 从不同的镜像下载速度差异很大。选择从适合的镜像下载软件包,会极大的影响更新速度。以CentOS为例,可使用一个叫fastestmirror的插件,
# 让yum在更新时先根据ping值进行判断,然后从最快响应的地址下载。 #首先,请配置好yum环境,然后,确认配置文件中,以及允许使用插件: cat /etc/yum.conf |grep plugins plugins=1 没有的该参数的,请加入该设定。此外,要使用fastestmirror插件,在.repo配置文件中必须使用镜像方式,也就是mirrorlist设定,而不是baseurl方式,例如: # cat CentOS-Base.repo |grep -A3 addons [addons] name=CentOS-4 - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 enabled=1

  

  

 

 

 

参照:

学神MK 第一章 4-8-2-部署docker容器虚拟化平台.mp4

http://blog.csdn.net/qq_34556414/article/details/105425688

http://wiki.centos.org/PackageManagement/Yum/Priorities

http://cnblogs.com/earendil/p/7244091.html

       
createrepo  --update
posted @ 2021-01-15 20:04  悟透  阅读(3079)  评论(0编辑  收藏  举报