[转帖]收集yum install安装的软件的全量依赖 rpm 包

收集,yum,install,安装,软件,依赖,rpm · 浏览次数 : 0

小编点评

**内容简介** 文章包含关于使用 yum 的多个命令的内容,包括安装、下载、依赖关系、版本控制等。 **内容摘要** 1. **安装**:使用 yum install 命令安装软件包。 2. **下载**:使用 yumdownloader 命令下载依赖关系包。 3. **依赖关系**:使用 yum install --downloadonly 命令安装依赖关系包。 4. **版本控制**:使用 yum -y install --downloadonly --downloaddir=<指定下载目录> <rpm包> 命令安装软件包。 5. **离线安装**:使用 yum localinstall 命令安装软件包。 **其他内容** * 文章包含多个示例,可帮助用户理解不同命令的使用场景。 * 文章使用排版和标题标记,方便用户阅读和理解。 * 文章提供参考链接,帮助用户进一步学习相关知识。

正文

在这里插入图片描述

离线安装主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。

有时候离线 rpm 包有比较难于收集齐全,但测试环境我们又可以通过 yum install XXX 完成某个软件的安装,那我们是否可以将

yum 方式安装的软件,通过某种方式收集该软件的rpm 包和它依赖的 rpm 包。

在离线的内网环境下进行安装一些软件的时候会出现依赖不完整的情况,一般情况下会使用如下方式进行下载依赖包

验证环境

Centos 7.6

查看依赖包

yum provides <value> : 查看提供某个命令的rpm包

yum deplist <rpm包> : 查看rpm包所需的全部依赖

可以使用“yum deplist”命令来查找 rpm 包的依赖列表。例如,要查找“skopeo”rpm的依赖包:

[root@gv213 test]#  yum deplist skopeo
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com
    软件包:skopeo.x86_64 1:0.1.40-11.el7_8
    依赖:containers-common = 1:0.1.40-11.el7_8
    provider: containers-common.x86_64 1:0.1.40-11.el7_8
    依赖:libassuan.so.0()(64bit)
    provider: libassuan.x86_64 2.1.0-3.el7
    依赖:libc.so.6(GLIBC_2.14)(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libdevmapper.so.1.02()(64bit)
    provider: device-mapper-libs.x86_64 7:1.02.170-6.el7_9.5
    依赖:libdevmapper.so.1.02(Base)(64bit)
    provider: device-mapper-libs.x86_64 7:1.02.170-6.el7_9.5
    依赖:libdevmapper.so.1.02(DM_1_02_97)(64bit)
    provider: device-mapper-libs.x86_64 7:1.02.170-6.el7_9.5
    依赖:libdl.so.2()(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libdl.so.2(GLIBC_2.2.5)(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libgio-2.0.so.0()(64bit)
    provider: glib2.x86_64 2.56.1-9.el7_9
    依赖:libglib-2.0.so.0()(64bit)
    provider: glib2.x86_64 2.56.1-9.el7_9
    依赖:libgobject-2.0.so.0()(64bit)
    provider: glib2.x86_64 2.56.1-9.el7_9
    依赖:libgpg-error.so.0()(64bit)
    provider: libgpg-error.x86_64 1.12-3.el7
    依赖:libgpgme-pthread.so.11()(64bit)
    provider: gpgme.x86_64 1.3.2-5.el7
    依赖:libgpgme.so.11()(64bit)
    provider: gpgme.x86_64 1.3.2-5.el7
    依赖:libgpgme.so.11(GPGME_1.0)(64bit)
    provider: gpgme.x86_64 1.3.2-5.el7
    依赖:libgpgme.so.11(GPGME_1.1)(64bit)
    provider: gpgme.x86_64 1.3.2-5.el7
    依赖:libostree-1.so.1()(64bit)
    provider: ostree.x86_64 2019.1-2.el7
    依赖:libostree-1.so.1(LIBOSTREE_2016.3)(64bit)
    provider: ostree.x86_64 2019.1-2.el7
    依赖:libostree-1.so.1(LIBOSTREE_2016.8)(64bit)
    provider: ostree.x86_64 2019.1-2.el7
    依赖:libpthread.so.0()(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libpthread.so.0(GLIBC_2.2.5)(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libpthread.so.0(GLIBC_2.3.2)(64bit)
    provider: glibc.x86_64 2.17-326.el7_9
    依赖:libselinux.so.1()(64bit)
    provider: libselinux.x86_64 2.5-15.el7
    依赖:rtld(GNU_HASH)
    provider: glibc.x86_64 2.17-326.el7_9
    provider: glibc.i686 2.17-326.el7_9
    您在 /var/spool/mail/root 中有邮件

    方案一(推荐):repotrack

    首先使用yum install yum-utils安装repotrack工具,然后使用repotrack <rpm包>下载全量依赖包

    # 安装yum-utils
    

    $ yum -y install yum-utils

    # 安装repotrack
    yum provides repotrack
    yum install -y -q yum-utils-1.1.31-54.el7_8.noarch

    # 下载 skopeo 全量依赖包
    $ repotrack -p /root/fly/test skopeo

      repotrack 用法

      [root test]# repotrack -h
      Usage: 
          Repotrack: keep current on any given pkg and its deps. It will download the package(s) you 
                     want to track and all of their dependencies
      
      /usr/bin/repotrack <span class="token punctuation">[</span>options<span class="token punctuation">]</span> package1 <span class="token punctuation">[</span>package2<span class="token punctuation">]</span> <span class="token punctuation">[</span>package<span class="token punctuation">..</span><span class="token punctuation">]</span>    
      

      Options:
      -h, --help show this help message and exit
      -c CONFIG, --config=CONFIG
      config file to use (defaults to /etc/yum.conf)
      -a ARCH, --arch=ARCH check as if running the specified arch (default:
      current arch)
      -r REPOID, --repoid=REPOID
      specify repo ids to query, can be specified multiple
      times (default is all enabled)
      --repofrompath=REPOFROMPATH
      specify repoid & paths of additional repositories -
      unique repoid and complete path required, can be
      specified multiple times. Example:
      --repofrompath=myrepo,/path/to/repo
      -t, --tempcache Use a temp dir for storing/accessing yum-cache
      -p DESTDIR, --download_path=DESTDIR
      Path to download packages to
      -u, --urls Just list urls of what would be downloaded, don't
      download
      -n, --newest Toggle downloading only the newest packages(defaults
      to newest-only)
      -q, --quiet Output as little as possible

        方案二:yumdownloader

        # 安装yum-utils
        $ yum -y install yum-utils
        

        # 下载 skopeo 依赖包
        $ yumdownloader --resolve skopeo --downloaddir=/root/fly/test

          参数说明:

          • —destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
          • —resolve:下载依赖的 rpm 包。

          注意

          仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
          
          • 1

          方案三:yum 的 downloadonly 插件

          使用yum install --downloadonly --downloaddir=<指定下载目录> <rpm包>

          # 安装插件
          $ yum -y install yum-download
          

          # 下载 skopeo 依赖包
          $ yum -y install skopeo --downloadonly --downloaddir=/tmp

            注意

            与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
            

              离线安装 rpm

              # 离线安装
              $ rpm -Uvh --force --nodeps *.rpm
              # 或者
              $ yum localinstall -y *.rpm --nogpgcheck
              

                参考资料

                • https://serverfault.com/questions/470964/yumdownloader-vs-repotrack
                文章知识点与官方知识档案匹配,可进一步学习相关知识
                云原生入门技能树首页概览8794 人正在系统学习中

                与[转帖]收集yum install安装的软件的全量依赖 rpm 包相似的内容:

                [转帖]收集yum install安装的软件的全量依赖 rpm 包

                离线安装主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。 有时候离线 rpm 包有比较难于收集齐全,但测试环境我们又可以通过 yum install XXX 完成某个软件的安装,那我们是否可以将 yum 方式安装的软件,通过某种方式收

                [转帖]Sosreport:收集系统日志和诊断信息的工具

                https://zhuanlan.zhihu.com/p/39259107 如果你是 RHEL 管理员,你可能肯定听说过 Sosreport :一个可扩展、可移植的支持数据收集工具。它是一个从类 Unix 操作系统中收集系统配置详细信息和诊断信息的工具。当用户提出支持服务单时,他/她必须运行此工具并

                [转帖]Hp服务器iLO IML硬件日志收集与远程巡检

                项目地址: https://github.com/zhangrj/HP-iLO-Log-Collector 惠普服务器的iLO模块,可用于远程控制服务器电源、开启远程控制台、检查服务器健康状态等,其中IML( Integrated Management Log )是排查硬件故障的重要手段,这套小程序

                [转帖]ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用

                https://www.cnblogs.com/linuxk/p/9273160.html 1、收集Nginx的json格式日志 1.1、Nginx安装 View Code 1.2、配置logstash [root@linux-node1 ~]# vim /etc/logstash/conf.d/n

                [转帖]oracle OSWatcher安装部署

                Oswatch是oracle官方提供,用于收集操作系统性能的小工具,oswatch的安装与使用也比较简单,直接解压就可以使用。oswatch是通过调用系统的命令完成信息的收集,如:ps ,top ,mpstat ,iostat,netstat ,traceroute vmstat 。支持的操作系统包

                [转帖]07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)

                https://developer.aliyun.com/article/885820?spm=a2c6h.24874632.expert-profile.279.7c46cfe9h5DxWK 简介: 2.需求描述 客户端需求: 1.客户端每天凌晨1点在服务器本地打包备份(系统配置文件、日志文件、其

                [转帖]JVM系列之:GC调优基础以及初识jstat命令

                本文为《深入学习 JVM 系列》第二十二篇文章 影响垃圾收集性能有三个主要的属性,垃圾收集调优又有三个基本原则,以及垃圾收集调优时需要采集的信息。如果想要对垃圾收集进行调优,则需要根据实际场景对不同属性做出取舍,理解调优的原则以及收集什么信息。 性能属性 吞吐量 吞吐量是评价垃圾收集器能力的重要指标

                [转帖]【JVM】Java内存区域与OOM

                引入 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 Java虚拟机运行时数据区 如图所示 1.程序计数器(线程私有) 作用 记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节

                [转帖]【JVM】Java内存区域与OOM

                引入 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 Java虚拟机运行时数据区 如图所示 1.程序计数器(线程私有) 作用 记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节

                [转帖]Spring Cloud 整合 SkyWalking

                https://www.jianshu.com/p/e81e35dc6406 Java Agent 服务器探针 探针,用来收集和发送数据到归集器。参考官网给出的帮助 Setup java agent,我们需要使用官方提供的探针为我们达到监控的目的,按照实际情况我们需要实现三种部署方式 IDEA 部署