dnf和yum失效后的恢复办法

关于dnf和yum失效的解决办法,我们首先要确定自己的系统版本,以及需要的python版本。
下面就以本人安装的openEuler-24.03-LTS为例来说明:
软件源地址:openEuler Easy Software

  1. 使用uname -a 查看系统版本信息。
  2. dnfyum 依赖 Python 3,若误删或损坏会导致命令失效。
    python3 --version # 检查 Python 3 是否正常。
  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
  4. 修复 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 # 测试安装