模块化安装常见问题
模块化安装常见问题
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]
No comments to display
No comments to display