收集yum install安装的软件的全量依赖 rpm 包

2023-05-16

在这里插入图片描述

离线安装主要有两种方式:源码编译、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 [options] package1 [package2] [package..]    

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 包。

注意

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

方案三: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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收集yum install安装的软件的全量依赖 rpm 包 的相关文章

  • PC终端执行开发板上的图形界面程序时出错:Gtk-WARNING **: cannot open display:

    场景 root span class hljs variable 64 NanoPi2 span span class hljs symbol home fa Documents opencv demo span span class hl
  • iOS label显示HTML(富文本)代码 (解析)并实现高度自适应

    网络解析后 有一个HTML字符串 需要在label显示 xff08 一般是要求显示的内容有颜色 字体 背景颜色的变化 xff09 如果不做处理 显示的就是HTML代码内容 处理方法如下 已知网络请求得到一个HTML 字符串 self HTM
  • ORACLE11G实战演练--数据库安装篇(一)

    作为一个主要职责为DBA的开发人员 xff0c 基本上部门内所有的数据库问题 xff0c 小到安装 sql开发 xff0c 大到系统恢复 优化 xff0c 每天遇到的大大小小的问题非常多 每次遇到问题的时候 xff0c 有时候凭借经验 xf
  • ssh no matching key exchange method found错误

    我在使用ubuntu2021 ssh 登录另一个系统时出现如下报错 xff1a Unable to negotiate with span class token number 192 168 span 2 1 port span clas
  • elasticsearch批量删除索引

    查看索引 在elasticsearch节点上使用curl XGET 39 http XX XX X XX 9200 cat shards 39 查看索引 root 64 192 168 x x scripts curl XGET 39 ht
  • git clone --mirror -q git://github.com/adobe-webplatform/eve.git

    解决办法 xff1a git全局添加一个属性 git config global url 34 https 34 insteadOf git 然后 xff0c 重新npm install
  • 理解npm包管理机制

    推荐文章 https segmentfault com q 1010000004114972 ea 61 496109 https blog csdn net azl397985856 article details 103982369
  • 面试题:使用promise实现并发请求限制(最优解)

    问题 xff1a 有 8 个图片资源的 url xff0c 已经存储在数组 urls 中 xff0c 而且已经有一个函数 function loadImg xff0c 输入一个 url 链接 xff0c 返回一个 Promise xff0c
  • PHP八大设计模式

    PHP命名空间 可以更好地组织代码 xff0c 与Java中的包类似 Test1 php span class php span class hljs preprocessor lt php span span class hljs key
  • putty 报server unexpectedly closed network connection错误

    由于IP变了 xff0c 再用putty访问组内的服务器时 xff0c 竟然总是出错 xff0c 报server unexpectedly closed network connection错误 我公司的服务器是centos7 xff0c
  • echarts主题属性设置

    theme 61 span class hljs comment 全图默认背景 span backgroundColor span class hljs string 39 rgba 0 0 0 0 39 span span class h
  • echarts和highchart的区别

    echarts 先大体了解一下echarts的历史 xff1a echarts是百度公司前端开发的一个图表库 支持柱状图 饼状图 k线图 map图 热导向图 折线图 主要采用canvas画图 highchart highcharts是国外的
  • Cannot resolve module 'fs'

    可能很多人都会遇到这个问题 xff0c 反正我的话已经遇到两次了 xff0c 上一次解决的时候没有记录解决办法 xff0c 这次又遇到了 xff0c 而且国内搜索引擎是搜不到这个问题的解决办法的 xff0c 所以写个博客记录一下吧 xff0
  • 调整浏览器滚动条样式

    我们知道浏览器自带滚动条很丑 xff0c 有时影响整个页面到美观 xff0c 尤其在页面内嵌一个滚动列表 xff0c 显得奇丑无比 xff0c 下面我们根据如下代码调节滚动条样式 span class token punctuation s
  • 空指针的查找经验

    对象为空不会空指针 而对象的属性方法为空就会报空指针异常 那么我们来看一个出空指针的例子 从报错行开始 每一个参数都输出 发现都有参数 ctrl 43 左键 进入每一个非jdk内部的方法查看 发现在map方法中 Map lt String
  • centos 8 将普通用户添加到sudoers

    centos 系统并没有将普通用户默认添加到sudoers用户组 xff0c 所以在centos xff08 6 xff0c 7 xff0c 8 xff09 中普通用户是无法使用sudo的 xff0c 可是为了系统安全 xff0c 特别如果
  • idea操作hadoop

    cd span class token operator span opt span class token operator span software tar span class token operator span zcvf ha
  • 基于VMware 的 hive安装与启动

    1将have jar文件解压到software目录下 tar span class token operator span zxf have span class token punctuation span span class toke
  • 配置本地镜像--配置华为镜像---安装mysql

    查看镜像是否挂载 df h 本地镜像挂载 mount dev sr0 mnt 配置本地镜像源 cd etc yum repos d 创建备份文件夹 xff0c 将默认的镜像文件备份至该文件夹 mkdir bak mv repo bak 创建
  • java实现简单的生成行为日志文件 (一)

    第一步 在windows中创建目录 第二部 写properties 配置信息 log4j span class token punctuation span rootLogger span class token operator 61 s

随机推荐