关于dnf和yum失效的解决办法,我们首先要确定自己的系统版本,以及需要的python版本。
下面就以本人安装的openEuler-24.03-LTS为例来说明:
软件源地址:openEuler Easy Software
- 使用uname -a 查看系统版本信息。
dnf
和yum
依赖 Python 3,若误删或损坏会导致命令失效。
python3 --version # 检查 Python 3 是否正常。- 由于包管理器失效,需手动下载关键包。
首先清除dnf、yum、python3相关依赖,
sudo rpm -e --nodeps dnf python3-dnf yum
4.检查软件安装源,并确保没有损坏。
若/etc/yum.repos.d/
下配置损坏,重建仓库文件:
sudo tee /etc/yum.repos.d/openEuler.repo <<‘EOF’
[base]
name=openEuler-24.03-LTS - Base
baseurl=https://repo.openeuler.org/openEuler-24.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler
EOF
5.下载并安装相关源码。
sudo rpm -ivh --force --nodeps https://repo.openeuler.org/openEuler-24.03-LTS/OS/x86_64/Packages/python3-3.11.6-2.oe2403.x86_64.rpm
sudo rpm -ivh --force --nodeps https://repo.openeuler.org/openEuler-24.03-LTS/OS/ppc64le/Packages/dnf-4.16.2-4.oe2403.noarch.rpm
sudo rpm -ivh --force --nodeps https://repo.openeuler.org/openEuler-24.03-LTS/OS/ppc64le/Packages/python3-dnf-4.16.2-4.oe2403.noarch.rpm
sudo rpm -ivh --force --nodeps https://repo.openeuler.org/openEuler-24.03-LTS/OS/x86_64/Packages/libdnf-0.70.2-3.oe2403.x86_64.rpm
sudo rpm -ivh --force --nodeps https://repo.openeuler.org/openEuler-24.03-LTS/OS/ppc64le/Packages/yum-4.16.2-4.oe2403.noarch.rpm - 修复 Python 模块路径
检查模块路径
python3 -c “import sys; print(sys.path)”
如果缺少 /usr/lib/python3.11/site-packages
sudo ln -s /usr/lib/python3.11/site-packages/dnf /usr/local/lib/python3.11/site-packages/
7.更新缓存。
sudo dnf clean all
sudo dnf makecache
8.验证安装。
dnf --version # 应显示版本(如 DNF 5.1.0)
yum --version # 应显示兼容性封装版本
sudo dnf install -y tree # 测试安装