Skip to main content

模块化安装常见问题

模块化安装常见问题

llvm-toolset无法安装

问题现象

执行命令,安装llvm-toolset。

dnf module install llvm-toolset:uel20/common

显示类似的如下所示的错误信息。

Error:

Problem: problem with installed package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64

  - package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64 requires libLLVM-10.so()(64bit), but none of the providers can be installed

  - package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64 requires libLLVM-10.so(LLVM_10)(64bit), but none of the providers can be installed

  - cannot install both llvm-libs-11.0.0-2.up1.module_uel20+13+1b98fcdf.x86_64 and llvm-libs-10.0.1-2.uel20.x86_64

  - package clang-11.0.0-1.02.module_uel20+12+1b98fcdf.x86_64 requires libLLVM-11.so()(64bit), but none of the providers can be installed

  - package clang-11.0.0-1.02.module_uel20+12+1b98fcdf.x86_64 requires libLLVM-11.so(LLVM_11)(64bit), but none of the providers can be installed

  - package llvm-toolset-11.0.0-1.module_uel20+7+1b98fcdf.x86_64 requires clang = 11.0.0, but none of the providers can be installed

  - conflicting requests

  - package llvm-libs-10.0.1-2.uel20.x86_64 is filtered out by modular filtering

(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

可能原因

操作系统预装的mesa-vulkan-drivers或者mesa-dri-drivers依赖了llvm-libs-10,而llvm-toolset模块提供了llvm-libs-11,这两个版本不能共存,并且llvm-toolset安装的llvm-libs不满足mesa-vulkan-drivers或者mesa-dri-drivers的安装依赖。

解决方法

使用dnf的--allowerasing选项,允许删除冲突的软件,即可正常安装。即执行如下命令,来安装llvm-toolset。

dnf module install llvm-toolset:uel20/common --allowerasing

备注

卸载llvm-toolset模块的时候,需要回退被升级的llvm-libs,这需要使基础镜像或在线源提供的llvm-libs-10可见。此时,请先禁用llvm-toolset模块,然后执行dnf history命令查询安装llvm-toolset模块的事务编号,最后执行“dnf history undo”命令来卸载llvm-toolset。即应该执行如下命令:

dnf module disable llvm-toolset
dnf history # 查询 transno
dnf history undo [transno]

rust-toolset无法安装

问题现象

执行命令,安装rust-toolset。

dnf module install rust-toolset:uel20/common

显示类似的如下所示的错误信息。

Error:

Problem: problem with installed package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64

  • package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64 requires libLLVM-10.so()(64bit), but none of the providers can be installed

  • package mesa-vulkan-drivers-20.1.4-2.uel20.x86_64 requires libLLVM-10.so(LLVM_10)(64bit), but none of the providers can be installed

  • cannot install both llvm-libs-11.0.0-2.up1.module_uel20+13+1b98fcdf.x86_64 and llvm-libs-10.0.1-2.uel20.x86_64

  • package rust-1.49.0-1.module_uel20+7+ed636893.x86_64 requires libLLVM-11.so()(64bit), but none of the providers can be installed

  • package rust-1.49.0-1.module_uel20+7+ed636893.x86_64 requires libLLVM-11.so(LLVM_11)(64bit), but none of the providers can be installed

  • package rust-toolset-1.49.0-1.module_uel20+3+ed636893.x86_64 requires rust = 1.49.0, but none of the providers can be installed

  • conflicting requests

  • package llvm-libs-10.0.1-2.uel20.x86_64 is filtered out by modular filtering

(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

可能原因

rust-toolset模块依赖llvm-toolset模块,报错信息实际是因需要安装llvm-toolset模块中的软件包引起的。

解决方法

使用dnf的--allowerasing选项,允许删除冲突的软件,即可正常安装。即执行如下命令,来安装rust-toolset。

dnf module install rust-toolset:uel20/common --allowerasing

备注

请先禁用llvm-toolset和rust-toolset模块,然后查找安装rust-toolset的事务编号,最后执行“dnf history undo”命令来卸载rust-toolset。即应该执行如下命令:

dnf module disable llvm-toolset rust-toolset
dnf history # 查询 transno
dnf history undo [transno]