在线获取所有依赖rpm包的方法
背景
现在经常有一些不能上网的LInux机器但是需要安装一些软件.
但是有时候经常因为有依赖关系找不到的情况比较麻烦.
或者是一些公司的网络总是受限,网络速度非常慢.
下载安装非常折磨人.
这个时候就需要从能够上网的机器拉取 rpm包进行处理.
但是此时经常有两个问题.
1. 拉取的架构可能不兼容.
2. 拉取的rpm包可能用来关系不完整
基于此, 需要寻找一下解决方案.
常用解决方案
最常用的下载方式有:
yum --downloadonly --downloaddir
yumdownloader xxx
如果需要解决依赖关系可能需要使用
yumdownloader ansible --resolve
但是这一个好像有一点不太一样的地方. 跟已经安装的软件多少有关系
可能会下载不完整.
还需要注意需要使用这个工具:
yum install yum-utils -y
repotrack的解决方案
首先可以查看是什么软件带这个命令:
yum provides repotrack
可以发现:
centos7的是 yum-utils*
centos8的是 dnf-plugins-core*
如果需要可以安装着两个软件 再进行处理.
查看帮助
最近学习过程中发现自己最大的缺点是动不动就想搜索解决问题.
其实最快最好的解决问题的方法是查看帮助 man 或者是 -h
通过快速查看帮助文档可以快速解决问题.
常用命令
mkdir -p /fio/x86_64
mkdir -p /fio/aarch64
cd /fio/x86_64
repotrack fio --forcearch x86_64
cd /fio/aarch64
repotrack fio --forcearch aarch64
注意如果默认的repo没有可能无法下载.
还可以指定repo
下载常用的repo
我这边还是放到了 /etc/yum.repos.d/下面
然后进行了一些简单处理.
可以使用 yum repolist 查看具体的repo
然后使用如下命令获取部分下载路径.
repotrack fio --repoid AppStream --forcearch x86_64 --urls
注意 在银河麒麟上面他的releasever 的版本是 10 与 CentOS是不一样的.
需要单独处理
sed -i 's/$releasever/8.5.2111/g' Centos-8.repo
但是银河麒麟依旧有一些与CentOS8的冲突没有解决掉.
建议还是找一个能上外网的同发行版的机器进行验证.
附件查看帮助
[root@gscloud-app-kunpeng-arm ansible_x86_64]# repotrack -h
usage: dnf download [-c [config file]] [-q] [-v] [--version]
[--installroot [path]] [--nodocs] [--noplugins]
[--enableplugin [plugin]] [--disableplugin [plugin]]
[--releasever RELEASEVER] [--setopt SETOPTS]
[--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]
[-R [minutes]] [-d [debug level]] [--debugsolver]
[--showduplicates] [-e ERRORLEVEL] [--obsoletes]
[--rpmverbosity [debug level name]] [-y] [--assumeno]
[--enablerepo [repo]] [--disablerepo [repo] | --repo
[repo]] [--enable | --disable] [-x [package]]
[--disableexcludes [repo]] [--repofrompath [repo,path]]
[--noautoremove] [--nogpgcheck] [--color COLOR]
[--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly]
[--comment COMMENT] [--bugfix] [--enhancement]
[--newpackage] [--security] [--advisory ADVISORY]
[--bz BUGZILLA] [--cve CVES]
[--sec-severity {Critical,Important,Moderate,Low}]
[--forcearch ARCH] [--source] [--debuginfo]
[--debugsource] [--arch [arch]] [--resolve] [--alldeps]
[--url] [--urlprotocols {http,https,rsync,ftp}]
packages [packages ...]
下载软件包至当前目录
General DNF options:
-c [config file], --config [config file]
config file location
-q, --quiet quiet operation
-v, --verbose verbose operation
--version show DNF version and exit
--installroot [path] set install root
--nodocs do not install documentations
--noplugins disable all plugins
--enableplugin [plugin]
enable plugins by name
--disableplugin [plugin]
disable plugins by name
--releasever RELEASEVER
override the value of $releasever in config and repo
files
--setopt SETOPTS set arbitrary config and repo options
--skip-broken resolve depsolve problems by skipping packages
-h, --help, --help-cmd
show command help
--allowerasing allow erasing of installed packages to resolve
dependencies
-b, --best try the best available package versions in
transactions.
--nobest do not limit the transaction to the best candidate
-C, --cacheonly run entirely from system cache, don't update cache
-R [minutes], --randomwait [minutes]
maximum command wait time
-d [debug level], --debuglevel [debug level]
debugging output level
--debugsolver dumps detailed solving results into files
--showduplicates show duplicates, in repos, in list/search commands
-e ERRORLEVEL, --errorlevel ERRORLEVEL
error output level
--obsoletes enables dnf's obsoletes processing logic for upgrade
or display capabilities that the package obsoletes for
info, list and repoquery
--rpmverbosity [debug level name]
debugging output level for rpm
-y, --assumeyes automatically answer yes for all questions
--assumeno automatically answer no for all questions
--enablerepo [repo] Enable additional repositories. List option. Supports
globs, can be specified multiple times.
--disablerepo [repo] Disable repositories. List option. Supports globs, can
be specified multiple times.
--repo [repo], --repoid [repo]
enable just specific repositories by an id or a glob,
can be specified multiple times
--enable, --set-enabled
enable repos with config-manager command
(automatically saves)
--disable, --set-disabled
disable repos with config-manager command
(automatically saves)
-x [package], --exclude [package], --excludepkgs [package]
exclude packages by name or glob
--disableexcludes [repo], --disableexcludepkgs [repo]
disable excludepkgs
--repofrompath [repo,path]
label and path to an additional repository to use
(same path as in a baseurl), can be specified multiple
times.
--noautoremove disable removal of dependencies that are no longer
used
--nogpgcheck disable gpg signature checking (if RPM policy allows)
--color COLOR control whether color is used
--refresh set metadata as expired before running the command
-4 resolve to IPv4 addresses only
-6 resolve to IPv6 addresses only
--destdir DESTDIR, --downloaddir DESTDIR
set directory to copy packages to
--downloadonly only download packages
--comment COMMENT add a comment to transaction
--bugfix Include bugfix relevant packages, in updates
--enhancement Include enhancement relevant packages, in updates
--newpackage Include newpackage relevant packages, in updates
--security Include security relevant packages, in updates
--advisory ADVISORY, --advisories ADVISORY
Include packages needed to fix the given advisory, in
updates
--bz BUGZILLA, --bzs BUGZILLA
Include packages needed to fix the given BZ, in
updates
--cve CVES, --cves CVES
Include packages needed to fix the given CVE, in
updates
--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
Include security relevant packages matching the
severity, in updates
--forcearch ARCH Force the use of an architecture
Download command-specific options:
--source 取而代之下载源代码软件包 src.rpm
--debuginfo 取而代之下载 -debuginfo 软件包
--debugsource download the -debugsource package instead
--arch [arch], --archlist [arch]
限定查询指定架构的软件包
--resolve 解析并下载所需的依赖关系
--alldeps when running with --resolve, download all dependencies
(do not exclude already installed ones)
--url, --urls 打印 rpm 可被下载的 url 列表而不是直接下载
--urlprotocols {http,https,rsync,ftp}
当执行时带有 --url 参数,则限制使用指定协议
packages 将要下载的软件包
在线获取所有依赖rpm包的方法的更多相关文章
- CentOS 5.4 制作 Python 2.6 RPM 包的方法
不知道什么原因,CentOS 5.4 了,默认的Python的版本还是2.4的. 但是Python在CentOS里面的又非常的重要,可是 2.4版本的Python有很多的模块没有,最新的Python ...
- 在yum出问题的情况下安装某个rpm包的方法
1 核心命令 rpm -i 2 方法 centos镜像站去找到所有的rpm包. 安装这个rpm包,发现有一个依赖没有安装,就去下载安装.因为整体的包是有限的,因此终会收敛的. 比如安装rpmbuild ...
- centos 7 无网络情况下,解决yum 安装依赖rpm包
方法一:在一台有网络的机器,用yum下载好所需程序,传到另外一台网络的机器上安装 yum install xtrabackup --downloadonly --downloaddir=/rpmpat ...
- 简单介绍RPM包制作方法
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.使用r ...
- RPM包制作方法
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- src.rpm包安装方法
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译.这类软件包有多种安装方法,以redhat为例说明如下: 注意: 如果没有rpmbuild可以从系统安装光 ...
- yum 下载全量依赖 rpm 包及离线安装(终极解决方案)
目录 简介 验证环境 查看依赖包 方案一(推荐):repotrack 方案二:yumdownloader 方案三:yum 的 downloadonly 插件 离线安装 rpm 参考资料 简介 通常生产 ...
- 用centos光盘安装RPM包的方法
1.在虚拟机光盘选项中设置连接路径为centos安装光盘. 2.将光盘挂载到本地目录. #新建一个文件夹 mkdir cdrom #把光盘挂载到cdrom目录下 mount /dev/cdrom cd ...
- 解压查看二进制rpm包的方法
详细参考: man cpio 具体方法: rpm2cpio qt5-qtbase-5.6.0-13.fc21.x86_64.rpm | cpio -dium 执行后可在当前目录查看 安装目录 etc ...
- Linux搭建局域网yum源和后期在yum源中更新rpm包方法
在内网中搭建自己的yum源,可以方便在内网中使用,下面简单介绍搭建局域网yum源的方法和后期更新yum源rpm包的方法. 一.搭建局域网yum源 1.需要在局域网访问,首先需要一个web服务器,比如a ...
随机推荐
- 零代码修改,教你Spring Cloud应用轻松接入CSE
摘要:本文介绍了Sermant Agent的接入原理和如何使用Sermant Agent无修改接入CSE. 本文分享自华为云社区<Spring Cloud应用零代码修改接入华为云微服务引擎CSE ...
- Spring Boot JWT 用户认证
JWT token验证后,通过 ThreadLocal 进行传值 https://jwt.io/#debugger 官网提供的 JAVA 工具还是挺多的,选了个 Star 比较多的 https://g ...
- Python 将省、市 json 替换 成拼音
1.将 city_code_cn.json 中的省.市.区,翻译成英文,或直接替换去掉省.市 如:苏州市 -> 苏州 转成拼音后就变成 Suzhou,否则就会转成 Suzhoushi 怪怪的 ...
- 升讯威周报与工时统计系统 V3
欢迎使用"升讯威周报与工时统计系统"本系统是一款适合各类型企业.机构.团队使用的周报填写.查询:工时上报.统计分析的软件. 本系统主要特点: 员工按周填写周报,录入工时:可区分项目 ...
- Function--jdk8用法
Lambda表达式.首先是参数部分,接着是->,可以视为产出,->之后的内容都是方法体. 当只有一个参数时,可以不需要括号(): 正常情况使用()包裹参数,为了保持一致性,也可以使用括号( ...
- AIO异步通信。BIO同步阻塞式IO, NIO同步非阻塞通信。
IO 什么是IO? 它是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的.单独的程序一般是让系统为它们完 ...
- 一、mysql5.7 rpm 安装(单机)
一.下载需要的rpm包mysql-community-client-5.7.26-1.el6.x86_64.rpmmysql-community-common-5.7.26-1.el6.x86_64. ...
- C#从字符创中分离文件路径、文件名及扩展名
效果图 代码如下 private void btn_Openfile_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialo ...
- php基础之PHP语言学习介绍
前言 PHP是网络安全中需要掌握的一门语言,但是就这么一点儿时间学网络安全,所以不可能特别精通PHP,这里并不是说要求你精通PHP,但是需要对于一些基础代码能够认识.能够编写那么就可以了. 同时,这里 ...
- spring--集成RocketMQ
在Spring Boot中集成RocketMQ通常涉及以下步骤: 1. **添加依赖**:首先,需要在项目的`pom.xml`文件中添加RocketMQ的Spring Boot Starter依赖. ...