前几天我试图创建一个本地存储库,只包含我们在CentOS7下经常使用的软件。当然,我们可以使用curl或wget来下载任何包,但是这些命令不会下载所需的依赖包。您必须花费一些时间并手动查找并下载安装的软件所依赖的软件包。但是,我们不必这样做。在这个简短的教程中,我将向您介绍两种下载包及其所有依赖项的方法。我已经在CentOS7下对此进行了测试,但这些相同的步骤可能适用于基于RPM管理系统的其他发行版,例如RHEL、Fedora和ScientificLinux。方法一使用“Downloadonly”插件下载RPM包及其所有依赖我们可以通过yum命令的“Downloadonly”插件下载RPM包及其所有依赖。为了安装Downloadonly插件,请以root身份运行以下命令。yuminstallyum-plugin-downloadonly现在,运行以下命令下载RPM包。yuminstall--downloadonly默认情况下,此命令会将包下载并保存到/var/cache/yum/中的rhel-{arch}-channel/packageslocation目录,但是,您也可以下载并保存包打包到您可以使用--downloaddir选项指定的任何位置。yuminstall--downloadonly--downloaddir=示例:yuminstall--downloadonly--downloaddir=/root/mypackages/httpd最终输出:Loadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:centos.excellmedia.net*epel:epel.mirror.angkasa.id*extras:centos.excellmedia.net*updates:centos.excellmedia.netResolvingDependencies-->Runningtransactioncheck--->Packagehttpd.x86_640:2.4.6-40.el7.centos.4willbeinstalled-->ProcessingDependency:httpd-tools=2.4.6-40.el7.centos.4forpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->ProcessingDependency:/etc/mime.typesforpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->ProcessingDependency:libaprutil-1.so.0()(64bit)forpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->ProcessingDependency:libapr-1.so.0()(64bit)forpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->Runningtransactioncheck--->Packageapr.x86_640:1.4.8-3.el7willbeinstalled--->Packageapr-util.x86_640:1.5.2-6.el7将被安装--->打包httpd-tools.x86_640:2.4.6-40.el7.centos.4willbeinstalled--->打包mailcap.noarch0:2.1.41-2.el7willbeinstalled-->FinishedDependencyResolutionDependenciesResolved===================================================================================================================================PackageArchVersionRepositorySize===================================================================================================================================安装:httpdx86_642.4.6-40.el7.centos.4updates2.7MInstallingfordependencies:aprx86_641.4.8-3.el7base103kapr-utilx86_641.5.2-6.el7base92khttpd-toolsx86_642.4.6-40.el7.centos.4updates83kmailcapnoarch2.1.41-2.el7base31kTransactionSummary=======================================================================================================================================安装1包(+4Dependentpackages)Totaldownloadsize:3.0MInstalledsize:10MBackgrounddownloadingpackages,然后退出:(1/5):apr-1.4.8-3.el7.x86_64.rpm|103kB00:00:01(2/5):apr-util-1.5.2-6.el7.x86_64.rpm|92kB00:00:01(3/5):mailcap-2.1.41-2.el7.noarch.rpm|31kB00:00:01(4/5):httpd-tools-2.4.6-40.el7.centos。4.x86_64.rpm|83kB00:00:01(5/5):httpd-2.4.6-40.el7.centos.4.x86_64.rpm|2.7MB00:00:09------------------------------------------------------------------------------------------------------------------------------Total331kB/s|3.0MB00:00:09exitingbecause"DownloadOnly"specifiedNowgotothedirectorylocationyouspecified,youYou会看到有下载的包和依赖软件。就我而言,我已将软件包下载到/root/mypackages/目录。让我们来看看内容。ls/root/mypackages/示例输出:apr-1.4.8-3.el7.x86_64.rpmapr-util-1.5.2-6.el7.x86_64.rpmhttpd-2.4.6-40.el7.centos.4.x86_64.rpmhttpd-tools-2.4.6-40.el7.centos.4.x86_64.rpmmailcap-2.1.41-2.el7.noarch.rpm从上面的输出可以看出httpd包已经安装好了所有的依赖性下载已完成。请注意,此插件适用于yuminstall/yumupdate,但不适用于yumgroupinstall。默认情况下,此插件将下载存储库中最可用的包。但是,您可以通过指定版本号来下载特定的软件版本。示例:yuminstall--downloadonly--downloaddir=/root/mypackages/httpd-2.2.6-40.el7此外,您还可以一次下载多个包,如下所示:yuminstall--downloadonly--downloaddir=/root/mypackages/httpdvsftpd方法2使用“Yumdownloader”工具下载RPM包及其所有依赖项“Yumdownloader”是一个简单但非常有用的命令行工具,它可以一次下载任何RPM包及其所有依赖项。以root身份运行以下命令以安装“Yumdownloader”工具。安装yuminstallyum-utils后,运行以下命令下载包,例如httpd。yumdownloaderhttpd为了根据所有依赖下载包,我们使用--resolve参数:yumdownloader--resolvehttpd默认情况下,Yumdownloader会把包下载到当前工作目录。为了将软件下载到特定目录,我们使用--destdir参数:yumdownloader--resolve--destdir=/root/mypackages/httpd或者,yumdownloader--resolve--destdir/root/mypackages/httpd终端输出:Loadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:centos.excellmedia.net*epel:epel.mirror.angkasa.id*extras:centos.excellmedia.net*updates:centos.excellmedia.net-->Runningtransactioncheck--->Packagehttpd.x86_640:2.4.6-40.el7.centos.4会安装-->ProcessingDependency:httpd-tools=2.4.6-40.el7.centos.4forpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->ProcessingDependency:/etc/mime.typesforpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->ProcessingDependency:libaprutil-1.so.0()(64bit)forpackage:httpd-2.4.6-40。el7.centos.4.x86_64-->ProcessingDependency:libapr-1.so.0()(64bit)forpackage:httpd-2.4.6-40.el7.centos.4.x86_64-->Runningtransactioncheck--->Packageapr.x86_640:1.4.8-3.el7willbeinstalled--->Packageapr-util.x86_640:1.5.2-6.el7willbeinstalled--->Packagehttpd-tools.x86_640:2.4.6-40.el7.centos.4willbeinstalled--->Packagemailcap.noarch0:2.1.41-2.el7willbeinstalled-->FinishedDependencyResolution(1/5):apr-util-1.5.2-6.el7.x86_64.rpm|92kB00:00:01(2/5):mailcap-2.1.41-2.el7.noarch.rpm|31kB00:00:02(3/5):apr-1.4.8-3.el7.x86_64.rpm|103kB00:00:02(4/5):httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm|83kB00:00:03(5/5):httpd-2.4.6-40.el7.centos.4.x86_64.rpm|2.7MB00:00:19让我们确认包是否下载到我们指定的目录ls/root/mypackages/terminal输出:apr-1.4。8-3.el7.x86_64.rpmapr-util-1.5.2-6.el7.x86_64.rpmhttpd-2.4.6-40.el7.centos.4.x86_64.rpmhttpd-tools-2.4.6-40。el7.centos.4.x86_64.rpmmailcap-2.1.41-2.el7.noarch.rpm不同于Downloadonly插件,yumdownload可以下载一套相关的包。yumdownloader"@DevelopmentTools"--resolve--destdir/root/mypackages/在我看来,比起Yum的Downloadonly插件,我更喜欢Yumdownloader。但是,两者都非常简单,并且完成相同的工作。今天就到这里,如果您觉得本教程有用,请分享到您的社交媒体,让更多人知道。干杯!