WSL下Oracle Linux 9.2执行scl_source命令后yum失效,求无损解决办法
解决WSL Oracle Linux 9.2中source scl_source后yum失效的问题
问题原因
执行scl_source enable gcc-toolset-13后,Software Collections(SCL)会修改系统环境变量PATH,但WSL默认会将Windows系统的PATH导入到Linux环境中。当Windows路径包含空格(比如/mnt/c/Program Files/...)时,SCL的脚本处理PATH时会出现分割错误,导致yum调用时解析出无效路径,最终报错。
解决办法
1. 临时恢复当前会话的yum功能
直接重置PATH为系统默认值,即可正常使用yum:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
如果需要继续使用gcc-toolset-13,手动添加其路径到PATH头部:
export PATH=/opt/rh/gcc-toolset-13/root/usr/bin:$PATH
2. 永久禁用Windows PATH导入(彻底避免问题)
编辑WSL配置文件/etc/wsl.conf,添加以下内容:
[interop] appendWindowsPath = false
保存后执行wsl --shutdown关闭WSL,重新打开后,Linux环境的PATH将不再包含Windows路径,此时再执行scl_source enable gcc-toolset-13就不会触发yum报错问题。
3. 临时绕过SCL环境执行yum
如果需要保留当前SCL环境同时运行yum,可以用env -i清除干扰环境变量,仅保留必要路径:
sudo env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin yum list
内容的提问来源于stack exchange,提问作者q0987
相关产品推荐
相关产品推荐

