今天因为要用到mysql5.7,所有安装了一个mysql5.7,但是当用firewall-cmd放开端口的限制时,遇到了报错
Traceback (most recent call last):
File "/usr/bin/firewall-cmd", line 24, in <module>
from gi.repository import GObject
ImportError: No module named gi.repository
百度是因为python版本的问题,centos7.5默认的是2.7.5,现在自己系统的python3.8(我以为是因为我装mysql5.7时候替换的,原来不是因为我看到/root/的目录下面就有一个python3.8,坑爹,自己装的都不记得。。。),之前我装了python3.8,卸了centos7.5默认的python2.7,于是我想用yum来下载python2.7,yum也用不了。。。,自己只好到官网下载一个在编译安装。
编译安装完,把/usr/bin/python 链接到 python2.7还是没管用,yum 看起来命令是好的,但install的时候会包no module name yum。 看了很多人写的博客,最后去站点:http://mirrors.163.com/centos/7/os/x86_64/Packages/
下载下面几个包到一个目录下面(要是包名字不同了可以通过文件名前缀查找相对应即可)
python-2.7.5-86.el7.x86_64.rpm
python-kitchen-1.1.1-5.el7.noarch.rpm
python-urlgrabber-3.10-9.el7.noarch.rpm
yum-plugin-aliases-1.1.31-52.el7.noarch.rpm
yum-utils-1.1.31-52.el7.noarch.rpm
python-chardet-2.2.1-3.el7.noarch.rpm
python-libs-2.7.5-86.el7.x86_64.rpm
rpm-python-4.11.3-40.el7.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
python-devel-2.7.5-86.el7.x86_64.rpm
python-pycurl-7.19.0-19.el7.x86_64.rpm
yum-3.4.3-163.el7.centos.noarch.rpm
yum-plugin-protectbase-1.1.31-52.el7.noarch.rpm
python-iniparse-0.4-9.el7.noarch.rpm
python-setuptools-0.9.8-7.el7.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-updateonboot-1.1.31-52.el7.noarch.rpm
下载好之后,在目录下指向命令: rpm -ivh --force *.rpm --nodeps
这样yum可以使用了,但是firewall-cmd还是有问题,差了很久大概意思是要用pip安装gi模块还有firewall-config,但是不自己为啥我pip用不了(不想去折腾了),就用yum执行下面命令就好了
yum -y install python-gobject
yum -y install python-firewall
yum -y install firewall-config
搞了一个下午,以前听人吐槽python的兼容性,一直不理解,现在终于深刻的体会到了。
systemctl start firewalld.service
firewall-cmd --zone=public --add-port=3306/tcp --permanent