{"id":208356,"date":"2025-07-19T10:57:15","date_gmt":"2025-07-19T02:57:15","guid":{"rendered":"https:\/\/server.hk\/cnblog\/?p=208356"},"modified":"2025-07-19T10:58:17","modified_gmt":"2025-07-19T02:58:17","slug":"%e5%a6%82%e4%bd%95%e6%8e%92%e6%9f%a5-linux-yum-%e5%92%8c-dnf-%e5%8c%85%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e5%b8%b8%e8%a6%8b%e5%95%8f%e9%a1%8c","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/208356\/","title":{"rendered":"\u5982\u4f55\u6392\u67e5 Linux yum \u548c dnf \u5305\u7ba1\u7406\u5de5\u5177\u5e38\u898b\u554f\u984c"},"content":{"rendered":"<pre><code class=\"language-bash\"><\/code><\/pre>\n<p>\u672c\u6587\u4ecb\u7d39\u5728 <a href=\"https:\/\/server.hk\/\">\u9999\u6e2f\u4f3a\u670d\u5668<\/a>\u6216 <a href=\"https:\/\/server.hk\/\">\u9999\u6e2f\u96f2\u4f3a\u670d\u5668<\/a> \u4e0a\u7684 Microsoft Azure \u865b\u64ec\u6a5f\u5668\uff08VM\uff09\u4f7f\u7528 yum \u548c dnf \u5957\u4ef6\u7ba1\u7406\u5de5\u5177\u6642\uff0c\u5b89\u88dd\u6216\u66f4\u65b0\u61c9\u7528\u7a0b\u5f0f\u53ef\u80fd\u9047\u5230\u7684\u5e38\u898b\u554f\u984c\u53ca\u89e3\u6c7a\u65b9\u6848\u3002<\/p>\n<blockquote><p><strong>\u6ce8\u610f<\/strong>\uff1a\u672c\u6587\u63d0\u53ca CentOS\uff0c\u5176\u5df2\u9054\u751f\u547d\u9031\u671f\u7d42\u6b62\uff08EOL\uff09\u3002\u8acb\u53c3\u8003 <a href=\"https:\/\/www.centos.org\/\" rel=\"nofollow noopener\" target=\"_blank\">CentOS \u751f\u547d\u9031\u671f\u7d42\u6b62\u6307\u5357<\/a> \u9032\u884c\u898f\u5283\u3002<\/p><\/blockquote>\n<h2>\u6982\u8ff0<\/h2>\n<p><code>yum<\/code>\uff08Yellowdog Updater Modified\uff09\u662f\u57fa\u65bc RPM \u7684 Linux \u767c\u884c\u7248\uff08\u5982 RHEL\u3001CentOS\u3001Oracle Linux\u3001Mariner \u548c Fedora\uff09\u7684\u5957\u4ef6\u7ba1\u7406\u5de5\u5177\u3002<br \/>\n<code>dnf<\/code>\uff08Dandified Yum\uff09\u662f yum \u7684\u73fe\u4ee3\u5316\u589e\u5f37\u7248\u672c\uff0c\u9069\u7528\u65bc\u57fa\u65bc RPM \u7684 Linux \u7cfb\u7d71\u3002<\/p>\n<p>\u4ee5\u4e0b\u70ba\u5e38\u898b\u554f\u984c\u53ca\u89e3\u6c7a\u65b9\u6848\uff1a<\/p>\n<hr \/>\n<h2>\u65b9\u6848 1\uff1a\u5132\u5b58\u5eab\u8a2a\u554f\u554f\u984c<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1a\u8b49\u66f8\u6216\u7db2\u8def\u9023\u7dda\u932f\u8aa4\u3002<br \/>\n<strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u57f7\u884c RHUI \u6aa2\u67e5\u8173\u672c<\/strong><br \/>\nAzure \u63d0\u4f9b GitHub \u4e0a\u7684 <a href=\"https:\/\/raw.githubusercontent.com\/Azure\/azure-support-scripts\/refs\/heads\/master\/Linux_scripts\/rhui-check\/rhui-check.py\" rel=\"nofollow noopener\" target=\"_blank\">RHUI \u6aa2\u67e5\u8173\u672c<\/a>\uff0c\u7528\u65bc\u9a57\u8b49\uff1a<\/p>\n<ul>\n<li>RHUI \u5ba2\u6236\u7aef\u8b49\u66f8<\/li>\n<li>RHUI rpm \u4e00\u81f4\u6027<\/li>\n<li>EUS \u8207\u975e EUS \u5132\u5b58\u5eab\u914d\u7f6e<\/li>\n<li>RHUI \u5132\u5b58\u5eab\u9023\u7dda\u53ca SSL \u9023\u7dda<\/li>\n<\/ul>\n<p><strong>\u57f7\u884c\u547d\u4ee4<\/strong>\uff1a<\/p>\n<ul>\n<li>\u6709\u7db2\u8def\u8a2a\u554f\uff1a\n<pre><code class=\"language-bash\">curl -sL https:\/\/raw.githubusercontent.com\/Azure\/azure-support-scripts\/refs\/heads\/master\/Linux_scripts\/rhui-check\/rhui-check.py | sudo python2 -\r\n<\/code><\/pre>\n<\/li>\n<li>\u7121\u7db2\u8def\u8a2a\u554f\uff1a\u4e0b\u8f09\u8173\u672c\u5f8c\u57f7\u884c\uff1a\n<pre><code class=\"language-bash\">sudo python2 .\/rhui-check.py\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u8173\u672c\u751f\u6210\u5831\u544a\u4e26\u5132\u5b58\u81f3 <code>\/var\/log\/rhuicheck.log<\/code>\u3002<\/li>\n<li><strong>\u5176\u4ed6\u767c\u884c\u7248<\/strong>\uff1a\u78ba\u4fdd\u7aef\u53e3 443 \u9023\u7dda\u66a2\u901a\uff0c\u4e26\u4f7f\u7528\u6709\u6548\u8b49\u66f8\u3002<\/li>\n<\/ol>\n<p><strong>\u652f\u63f4\u7684 Red Hat \u6620\u50cf<\/strong>\uff1aRHEL 7.x\u30018.x\u30019.x\u300110.x PAYG VM\u3002<\/p>\n<hr \/>\n<h2>\u65b9\u6848 2\uff1a\u4f9d\u8cf4\u9805\u885d\u7a81<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1a\u66f4\u65b0\u6642\u51fa\u73fe\u4f9d\u8cf4\u9805\u885d\u7a81\u932f\u8aa4\uff0c\u5982\uff1a<\/p>\n<pre><code class=\"language-bash\">Error: package leapp-0.16.0-2.el8.noarch requires python3-leapp = 0.16.0-2.el8, but none of the providers can be installed\r\n<\/code><\/pre>\n<p><strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u75c7\u72c0 2a &#8211; \u79fb\u9664\u820a\u5957\u4ef6<\/strong><br \/>\n\u79fb\u9664\u885d\u7a81\u7684\u820a\u5957\u4ef6\uff1a<\/p>\n<pre><code class=\"language-bash\">sudo yum remove python2-leapp-0.16.0-1.el7_9.noarch\r\n<\/code><\/pre>\n<p>\u7136\u5f8c\u7e7c\u7e8c\u66f4\u65b0\u6216\u5b89\u88dd\u3002<\/li>\n<li><strong>\u75c7\u72c0 2b &#8211; \u6aa2\u67e5\u6392\u9664\u9805<\/strong><br \/>\n\u6aa2\u67e5 <code>\/etc\/yum.conf<\/code> \u6216 <code>\/etc\/dnf.conf<\/code> \u662f\u5426\u6392\u9664 <code>systemd<\/code>\uff1a<\/p>\n<pre><code class=\"language-bash\">sudo cat \/etc\/yum.conf | grep -i exclude\r\n<\/code><\/pre>\n<p>\u82e5\u5b58\u5728 <code>exclude=systemd<\/code>\uff0c\u4f7f\u7528\u7de8\u8f2f\u5668\uff08\u5982 vim \u6216 nano\uff09\u522a\u9664\u6216\u8a3b\u91cb\u8a72\u884c\u3002<\/li>\n<\/ol>\n<hr \/>\n<h2>\u65b9\u6848 3\uff1aPython \u7248\u672c\u932f\u8aa4<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1ayum\/dnf \u4f9d\u8cf4\u7279\u5b9a Python \u7248\u672c\uff0c\u932f\u8aa4\u7bc4\u4f8b\uff1a<\/p>\n<pre><code class=\"language-bash\">SyntaxError: invalid syntax\r\nNo module named yum\r\nbash: \/usr\/bin\/yum: \/usr\/bin\/pythonX.X: bad interpreter: No such file or directory\r\n<\/code><\/pre>\n<p><strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u9a57\u8b49 Python \u7248\u672c<\/strong>\uff1a\n<pre><code class=\"language-bash\">sudo ls -al `which python`\r\nsudo rpm -V python\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u4fee\u5fa9\u65b9\u6848<\/strong>\uff1a\n<ul>\n<li><strong>\u65b9\u6848 3a<\/strong>\uff1a\u4fee\u5fa9\u7b26\u865f\u9023\u7d50\uff1a\n<pre><code class=\"language-bash\">sudo cd \/usr\/bin\r\nsudo unlink python\r\nsudo ln -s python2.7 python\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u65b9\u6848 3b<\/strong>\uff1a\u91cd\u65b0\u5b89\u88dd Python \u5957\u4ef6\uff1a\n<pre><code class=\"language-bash\">sudo rpm -ivh python-&lt;release&gt;.&lt;arch&gt;.rpm --replacepkgs --replacefiles\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u65b9\u6848 3c<\/strong>\uff1a\u5f9e\u6551\u63f4 VM \u91cd\u65b0\u5b89\u88dd Python\uff08\u53c3\u8003<a href=\"https:\/\/docs.microsoft.com\/\" rel=\"nofollow noopener\" target=\"_blank\">\u5b98\u65b9\u6587\u4ef6<\/a>\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<hr \/>\n<h2>\u65b9\u6848 4\uff1a\u91cd\u8907\u5957\u4ef6\u554f\u984c<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1a\u66f4\u65b0\u4e2d\u65b7\u5c0e\u81f4\u91cd\u8907\u5957\u4ef6\uff0c\u5f15\u767c\u300c\u53d7\u4fdd\u8b77\u7684\u591a\u5eab\u300d\u932f\u8aa4\u3002<br \/>\n<strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u65b9\u6848 4a &#8211; \u5b8c\u6210\u4e8b\u52d9<\/strong>\uff1a\n<pre><code class=\"language-bash\">sudo yum-complete-transaction\r\n<\/code><\/pre>\n<p>\u82e5\u4ecd\u6709\u91cd\u8907\u5957\u4ef6\uff1a<\/p>\n<pre><code class=\"language-bash\">sudo yum-complete-transaction --cleanup-only\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u65b9\u6848 4b &#8211; \u624b\u52d5\u79fb\u9664\u91cd\u8907\u5957\u4ef6<\/strong>\uff1a\n<pre><code class=\"language-bash\">sudo tar -cjf \/tmp\/rpm_dbbkp.tar.bz2 \/var\/lib\/{rpm,yum}\r\nsudo yum check &amp;&gt; \/tmp\/yumcheck\r\ngrep \"duplicate\" \/tmp\/yumcheck | awk '{ print $NF }' | egrep -v \"\\:\" &gt; \/tmp\/duplicaterpms\r\ngrep \"duplicate\" \/tmp\/yumcheck | awk '{ print $NF }' | egrep \":\" | awk -F':' '{ print $NF }' &gt;&gt; \/tmp\/duplicaterpms\r\nfor i in $(cat \/tmp\/duplicaterpms); do sudo rpm -e --justdb --nodeps $i; done\r\nsudo yum update\r\n<\/code><\/pre>\n<p>\u82e5\u6d89\u53ca\u65b0\u5167\u6838\uff0c\u91cd\u65b0\u5b89\u88dd\uff1a<\/p>\n<pre><code class=\"language-bash\">sudo yum remove kernel-&lt;newversion&gt;-&lt;release&gt;.&lt;arch&gt;\r\nsudo yum install kernel-&lt;newversion&gt;-&lt;release&gt;.&lt;arch&gt;\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<hr \/>\n<h2>\u65b9\u6848 5\uff1aYum 404 \u932f\u8aa4<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1ayum \u986f\u793a\u300c404 \u672a\u627e\u5230\u300d\u932f\u8aa4\uff0c\u5982\uff1a<\/p>\n<pre><code class=\"language-bash\">http:\/\/olcentgbl.trafficmanager.net\/centos\/7.9\/extras\/x86_64\/repodata\/repomd.xml: [Errno 14] HTTP Error 404 - Not Found\r\n<\/code><\/pre>\n<p><strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>CentOS \u6620\u50cf<\/strong>\uff1a\u6aa2\u67e5\u4e26\u79fb\u9664 <code>\/etc\/yum\/vars\/releasever<\/code>\uff1a\n<pre><code class=\"language-bash\">sudo cat \/etc\/yum\/vars\/releasever\r\nsudo rm -f \/etc\/yum\/vars\/releasever\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>\u65b9\u6848 6\uff1aRPM \u8cc7\u6599\u5eab\u554f\u984c<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1a\u57f7\u884c rpm\/yum\/dnf \u5831\u932f\uff0c\u5982\uff1a<\/p>\n<pre><code class=\"language-bash\">error: rpmdb: BDB0113 Thread\/process 24669\/140693557245760 failed\r\n<\/code><\/pre>\n<p><strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li>\u5099\u4efd RPM \u8cc7\u6599\u5eab\uff1a\n<pre><code class=\"language-bash\">sudo tar zcvf \/var\/lib\/rpm-backup.tar.gz \/var\/lib\/rpm\r\n<\/code><\/pre>\n<\/li>\n<li>\u79fb\u9664\u9396\u5b9a\u6a94\u6848\u4e26\u9a57\u8b49\u5957\u4ef6\uff1a\n<pre><code class=\"language-bash\">sudo cd \/var\/lib\/rpm\r\nsudo rm -f __db.*\r\nsudo \/usr\/lib\/rpm\/rpmdb_verify Packages\r\n<\/code><\/pre>\n<\/li>\n<li>\u91cd\u5efa RPM \u8cc7\u6599\u5eab\uff1a\n<pre><code class=\"language-bash\">sudo rpm -vv --rebuilddb\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<hr \/>\n<h2>\u65b9\u6848 7\uff1aYum 403 \u932f\u8aa4<\/h2>\n<p><strong>\u554f\u984c<\/strong>\uff1a\u57f7\u884c yum \u5831\u300cHTTPS \u932f\u8aa4 403 &#8211; Forbidden\u300d\u3002<br \/>\n<strong>\u89e3\u6c7a\u65b9\u6848<\/strong>\uff1a<\/p>\n<ol>\n<li>\u6aa2\u67e5\u7b2c\u4e09\u65b9 curl \u5957\u4ef6\uff1a\n<pre><code class=\"language-bash\">sudo rpm -qa | grep -i curl\r\nrpm -q --queryformat '%{VENDOR}\\n' curl libcurl\r\n<\/code><\/pre>\n<\/li>\n<li>\u964d\u7d1a curl \u5957\u4ef6\u81f3 RHEL 7.9 \u7248\u672c\uff1a\n<ul>\n<li>\u5f9e Red Hat \u624b\u52d5\u4e0b\u8f09\u6216\u4f7f\u7528 yumdownloader\uff1a\n<pre><code class=\"language-bash\">sudo yumdownloader curl.x86_64 libcurl.x86_64 libcurl-devel.x86_64\r\n<\/code><\/pre>\n<\/li>\n<li>\u964d\u7d1a\uff1a\n<pre><code class=\"language-bash\">sudo cd \/path\/location\/of\/rpms\/downloaded\r\nsudo yum downgrade curl-X.XX.0-XX.el7_9.X.x86_64.rpm libcurl-X.XX.X-XX.el7_9.X.x86_64.rpm libcurl-devel-X.XX.X-XX.el7_9.X.x86_64.rpm --disablerepo=*\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<hr \/>\n<p>\u900f\u904e\u4ee5\u4e0a\u65b9\u6848\uff0c\u53ef\u6709\u6548\u89e3\u6c7a\u5728 <a href=\"https:\/\/server.hk\/\">\u9999\u6e2f\u4f3a\u670d\u5668<\/a>\u3001\u6216 <a href=\"https:\/\/server.hk\/\">\u9999\u6e2f\u96f2\u4f3a\u670d\u5668<\/a> \u4e0a\u4f7f\u7528 yum \u548c dnf \u6642\u9047\u5230\u7684\u5e38\u898b\u554f\u984c\u3002\u5982\u9700\u9032\u4e00\u6b65\u652f\u63f4\uff0c\u8acb\u53c3\u8003 Azure \u6216 Linux \u767c\u884c\u7248\u5b98\u65b9\u6587\u4ef6<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4ecb\u7d39\u5728 \u9999\u6e2f\u4f3a\u670d\u5668\u6216 \u9999\u6e2f\u96f2&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4924],"tags":[],"class_list":["post-208356","post","type-post","status-publish","format-standard","hentry","category-setup-tutorials"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=208356"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208356\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=208356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=208356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=208356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}