• 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
  • 相关阅读:
    iOS 谁说程序猿不懂浪漫之 爱心
    iOS 星星评价视图 3行搞定
    iOS 柱状图的定制
    iOS 跑马灯 一句话集成
    代理的使用
    发送的网络请求中含有中文 转码的实现
    杂记
    使用纯代码实现UICollectionView(UITableView)需要注册
    NSASSert的使用
    iOS进阶第三节 数据处理之CoreData
  • 原文地址:https://www.cnblogs.com/wutou/p/14283939.html
Copyright © 2020-2023  润新知