首页 > 其他分享 >在线获取所有依赖rpm包的方法

在线获取所有依赖rpm包的方法

时间:2023-01-10 09:33:48浏览次数:45  
标签:依赖 在线 level -- config repo updates packages 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              将要下载的软件包

标签:依赖,在线,level,--,config,repo,updates,packages,rpm
From: https://www.cnblogs.com/jinanxiaolaohu/p/17039145.html

相关文章