一个Ansible兼容性问题的处理及其引发的Cinnamon不显示任务栏问题
起因
最近忙,水一篇吧。
今天跑一个用过很多次的playbook装一台机,结果碰到奇怪的错误:
ModuleNotFoundError: No module named 'ansible.module_utils.six.moves'
问了AI也没有什么头绪,只会告诉我是six库的问题,但是我试了本地端和远端的系统,six库都没问题。
当然也有说到是ansible或python版本问题,但也没说具体是什么问题。
解决
尝试了AI提供的什么指定python解释器之类的方法都没用,最后是放狗搜到一条issue说是因为跟python3.12不兼容造成的。
刚好我这个远程端就是ubuntu 24.04,带的python就是3.12。
issue里的人提供的方案是降级到python3.11,我试了在服务端另外装一个python3.11,然后指定用这个python跑ansible,但还是会有很多其它的问题,比如依赖缺失等。
最后只能升级本机的ansible,但是本机的ansible升级到最新还是太旧,仍然不支持Python3.12,只能再升级本机的python,从3.8升级到3.9,终于可以把ansible升级到更新的版本。
现在这个ansible的core版本是2.15的,仍然跟python 3.12不完全兼容,get-url等命令会出错,但至少不会再因为six库错误这种完全没法用。
新的问题
由于本机的系统是LinuxMint20,自带的Python3.8太老了,我就随手把默认Python切换到3.9,刚开始还没发现什么问题,结果重启之后发现桌面的任务栏不见了,很多热键也不能用了。
再次放AI放狗找原因,试了各种重置Cinnamon环境配置的方法都不管用,折腾一晚上才想起来会不会跟Python有关系。
把默认Python切回3.8再重启,就全都好了……
算了,老电脑一堆故障,也懒得再升级系统啥的,反正现在用公司新电脑,装的是Mint22,没这些问题。
推送到[go4pro.org]