幸福有爱 發表於 2025-10-24 00:00:00

Linux系统中yum无法下载软件的问题分析及解决方案

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、情况概要</li><li>二、解决过程<ul class="second_class_ul"><li>1、检查是否存在DNS解析出错的问题</li><li>2、更换yum的镜像源</li><ul class="third_class_ul"><li>(1)在root用户下输入cd /etc/yum.repos.d命令,输入ls&nbsp;并展开&nbsp;</li><li>(2)将CentOS-Base.repo 进行备份</li><li>(3)更换镜像源</li><li>(4)清理软件源</li><li>(5)加载插件并进行数据下载</li><li>(6)更新yum</li><li>(7)利用yum下载wget软件</li></ul></ul></li><li>yum安装过程中安装包存放位置<ul class="second_class_ul"><li>修改yum.conf配置</li><ul class="third_class_ul"></ul><li>示例</li><ul class="third_class_ul"></ul></ul></li><li>利用yum下载软件包的三种方法<ul class="second_class_ul"><li>方法一: downloadonly插件</li><ul class="third_class_ul"></ul><li>方法二:yum-utils中的yumdownloader</li><ul class="third_class_ul"></ul><li>方法三:利用yum的缓存功能</li><ul class="third_class_ul"></ul></ul></li><li>结语<ul class="second_class_ul"></ul></li></ul></div><p class="maodian"></p><h2>一、情况概要</h2>
<p>在跟着黑马学习Linux的过程中,发现输入yum search wget后出现了如下界面:</p>
<p style="text-align:center"><img alt="一、情况概要" height="1023" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531L15.png" width="1679" /></p>
<p>问了AI后大概是两个问题:</p>
<p>第一个是说我的DNS解析出错;</p>
<p>第二个是yum的官方源已经下架了,导致用不了,需要更改镜像源;</p>
<p>接下来我记录一下我自己的解决过程。</p>
<p class="maodian"></p><h2>二、解决过程</h2>
<p class="maodian"></p><h3>1、检查是否存在DNS解析出错的问题</h3>
<p>在Linux系统的命令行中分别ping一下的两个地址,看一下是否能够得到应答,若能够得到应答证明DNS解析没有问题:</p>
<p>第一个:ping 8.8.8.8 &nbsp; &nbsp; # 测试能否直接访问 IP<br />第二个:ping www.baidu.com &nbsp;# 测试 DNS 是否正常</p>
<p>最后我的结果是正确的,能够收到应答,如果能得到应答证明没问题,我的结果如下图所示:</p>
<p style="text-align:center"><img alt="1、检查是否存在DNS解析出错的问题" height="860" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531J08.png" width="1201" /></p>
<p class="maodian"></p><h3>2、更换yum的镜像源</h3>
<p>注:由于我在处理的过程中忘记截图了,所以这里我就直接拿up主的图片了,相关作品已标明!</p>
<p class="maodian"></p><h4>(1)在root用户下输入cd /etc/yum.repos.d命令,输入ls&nbsp;并展开&nbsp;</h4>
<p style="text-align:center"><img alt="(1)在root用户下输入cd /etc/yum.repos.d命令,输入ls 并展开" height="193" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531IV.png" width="1537" /></p>
<p>可以看到该文件夹下有一个CentOS-Base.repo文件;</p>
<p class="maodian"></p><h4>(2)将CentOS-Base.repo 进行备份</h4>
<p>在root管理员权限下,输入命令:</p>
<div class="dxycode"><pre class="brush:bash;">cp CentOS-Base.repo CentOS-Base.repo.back</pre></div>
<p>这样就实现了该文件的备份,再次输入ls可看到最新的文件夹内容:</p>
<p style="text-align:center"><img alt="(2)将CentOS-Base.repo 进行备份" height="354" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531U22.png" width="2097" /></p>
<p class="maodian"></p><h4>(3)更换镜像源</h4>
<p>在root用户下输入如下命令:</p>
<div class="dxycode"><pre class="brush:bash;">curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo</pre></div>
<p>完成页面如下:</p>
<p style="text-align:center"><img alt="(3)更换镜像源" height="202" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531X54.png" width="2328" /></p>
<p class="maodian"></p><h4>(4)清理软件源</h4>
<p>接下来要做的是清理软件源,在命令行中输入如下命令:</p>
<div class="dxycode"><pre class="brush:bash;">yum clean all</pre></div>
<p>最后的页面如下:</p>
<p style="text-align:center"><img alt="(4)清理软件源" height="180" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531Xb.png" width="946" /></p>
<p class="maodian"></p><h4>(5)加载插件并进行数据下载</h4>
<p>在命令行中输入如下命令:</p>
<div class="dxycode"><pre class="brush:bash;">yum makecache</pre></div>
<p>运行后页面如下:</p>
<p style="text-align:center"><img alt="(5)加载插件并进行数据下载" height="1023" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-251024115319213.png" width="2506" /></p>
<p class="maodian"></p><h4>(6)更新yum</h4>
<p>在命令行中输入如下命令:</p>
<div class="dxycode"><pre class="brush:bash;">yum update -y</pre></div>
<p>这个过程会非常非常久,我更新了差不多一千多个包,大家耐心等待即可,若有时候卡住了,可以点一下屏幕可能就好了,运行页面如下:</p>
<p style="text-align:center"><img alt="(6)更新yum" height="1048" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-251024115319453.png" width="1381" /></p>
<p class="maodian"></p><h4>(7)利用yum下载wget软件</h4>
<p>完成上面一步之后就可以直接下载软件了,在命令行中输入如下命令:</p>
<div class="dxycode"><pre class="brush:bash;">yum install wget</pre></div>
<p>出现的页面如下,其中nothing to do应该是我前面更新的时候它已经帮我下载并更新wget这个软件了:</p>
<p style="text-align:center"><img alt="(7)利用yum下载wget软件" height="185" src="https://zhuji.jb51.net/uploads/allimg/20251024/2-25102411531b50.png" width="1064" /></p>
<p class="maodian"></p><h2>yum安装过程中安装包存放位置</h2>
<p class="maodian"></p><h3>修改yum.conf配置</h3>
<p>日常运维工作中经常会遇到服务器本地yum源缺少包,但又不方便或者不允许搭建网络YUM源的情况,这时候要安装部分包就只能去网上手动下载资源进行安装,但如果遇到需要很多依赖包而且又不能跳过(免依赖强制安装)的情况,这时候我们就需要在互联网搭建测试环境进行网络yum搭建,安装所需包,并把下载的包及依赖包拷贝到内网服务器进行安装,但yum安装过程中的安装包默认是不存储的,需要修改/etc/yum.conf配置</p>
<p>具体操作如下所示;</p>
<p>修改/etc/yum.conf文件,</p>
<p>其中第一行是存放位置的,最好不要修改,记住前面的固定位置即可(固定路径+服务器架构+系统版本+yum源)</p>
<p>第二行是是否存放,0是不存放,1是存放,修改完后保存即可,无需重启服务</p>
<div class="dxycode"><pre class="brush:bash;">#cat /etc/yum.conf|grep cache
cachedir=var/cache/yum/$basearch/$releasever
keepchche=1</pre></div>
<p class="maodian"></p><h3>示例</h3>
<p>以安装ftp工具为例,</p>
<div class="dxycode"><pre class="brush:bash;">yum install ftp</pre></div>
<p>安装完成后进入上述配置路径查找rpm包,或者直接在固定路径/var/cache/yum/下搜索即可</p>
<div class="dxycode"><pre class="brush:bash;">find /var/cache/yum/ -name ftp*
/var/cache/yum/aarch64/7/localcentos/packages/ftp-0.17-67.e17.aarch64.rpm</pre></div>
<p>然后把下载的包及依赖包拷贝到内网服务器依照依赖顺序进行安装即可。</p>
<p class="maodian"></p><h2>利用yum下载软件包的三种方法</h2>
<p class="maodian"></p><h3>方法一: downloadonly插件</h3>
<p>yum install xxx 会下载并且安装软件包,如何实现yum之下载不安装呢?</p>
<p>可以下载yum-downloadonly插件包。</p>
<p>(1) yum install yum-downloadonly</p>
<p>(2) yum install xxx --downloadonly --downloaddir=/xxx -y</p>
<p>安装软件包xxx到/xxx位置,然后记得指定--downloadonly这个。</p>
<p class="maodian"></p><h3>方法二:yum-utils中的yumdownloader</h3>
<p>yum-utils包含着一系列的yum的工具,比如 debuginfo-install, package-cleanup, repoclosure, repodiff, repo-graph, repomanage, repoquery, repo-rss, reposync, repotrack, verifytree, yum-builddep, yum-complete-transaction, yumdownloader, yum-debug-dump 和 yum-groups-manager.</p>
<p>1. 安装yum-utils.noarch</p>
<div class="dxycode"><pre class="brush:bash;">yum -y install yum-utils</pre></div>
<p>2. 使用yumdownloader</p>
<div class="dxycode"><pre class="brush:bash;">yumdownloader httpd</pre></div>
<p>呵呵,就这么简单。</p>
<p class="maodian"></p><h3>方法三:利用yum的缓存功能</h3>
<p>用yum安装了某个工具后,我们想要这个工具的包。那yum安装的过程其实就已经把包给下载了,只是没有保持而已。</p>
<p>所以,我们要做的,是将其缓存功能打开。</p>
<p>1.vi /etc/yum.conf&nbsp; 将其中 keepcache=0改为keepcache=1,保存退出。</p>
<p>2./etc/init.d/yum-updatesd restart</p>
<p>3.yum install httpd</p>
<p>4.cat /etc/yum.conf |grep cachedir<br />&nbsp;&nbsp; cachedir=/var/cache/yum</p>
<p>5.跳到上术目录 cd cachedir=/var/cache/yum &amp;&amp; tree ./</p>
<p>6.这个时候的目录树中应该可以找到你需要的安装包了。</p>
<p>配置yum源结束之后,要清空yum 缓存,并重建yum缓存,执行以下命令:</p>
<div class="dxycode"><pre class="brush:bash;">yum clean all &amp;&amp; yum clean metadata &amp;&amp; yum clean dbcache &amp;&amp; yum makecache &amp;&amp; yum update</pre></div>
<p class="maodian"></p><h2>结语</h2>
<p>到这应该你的问题就可以解决了,希望能帮助到大家!</p>
<p>以上就是Linux系统中yum无法下载软件的问题分析及解决方案的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁: [1]
查看完整版本: Linux系统中yum无法下载软件的问题分析及解决方案