Veeam Agent for Linux 4.x 安装时遇到需要python3依赖

Veeam 民间 KB ^_^ @Mars Zhang

问题:需要python3依赖

近日有许多全作伙伴在部署Veeam Agent for Linux 时遇到需要python3的依赖,表现为即使安装了python3,也不能解决的问题,当然大家可以用加--nodeps参数的方式进行安装,这种方法适用于正在使用python2.x的用户,如果用户已经转到python3,就可以采用如下方式。还是提醒大家,如果对生产环境进行操作一定弄明白客户当前的环境与对环境的需求。

[root@ip-172-31-18-8 ec2-user]# rpm -ivh kmod-veeamsnap-4.0.0.1961-1.el7.x86_64.rpm
warning: kmod-veeamsnap-4.0.0.1961-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID efdcea77: NOKEY
error: Failed dependencies:
        /usr/bin/python3 is needed by kmod-veeamsnap-4.0.0.1961-1.el7.x86_64
        python3 is needed by kmod-veeamsnap-4.0.0.1961-1.el7.x86_64

用例

  1. Veeam Agent for Linux 4.x 安装时遇到需要python3依赖
  2. 目前没有在使用 python2.x的 用户,安装 Veeam Agent for Linux 4.x

解决方案

在安装pyhon3之后调整python软链路径

## 正常安装 Python3
yum install python3

## 找到python各版本位置
[root@ip-172-31-18-8 ec2-user]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib64/python2.7 /usr/lib64/python3.6 /etc/python /usr/include/python2.7 /usr/include/python3.6m /usr/share/man/man1/python.1.gz

## 查看当前python版本软链,发现是python2
[root@ip-172-31-18-8 ec2-user]# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Oct 17  2018 /usr/bin/python -> python2

## 删除当前python版本软链
[root@ip-172-31-18-8 ec2-user]# rm /usr/bin/python
rm: remove symbolic link ‘/usr/bin/python’? y
[root@ip-172-31-18-8 ec2-user]# 

## 建立新的python3版本软链
[root@ip-172-31-18-8 ec2-user]# ln -s /usr/bin/python3.6  /usr/bin/python
[root@ip-172-31-18-8 ec2-user]# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 18 Apr  4 07:59 /usr/bin/python -> /usr/bin/python3.6

## 再次安装,问题解决!
[root@ip-172-31-18-8 ec2-user]# rpm -ivh kmod-veeamsnap-4.0.0.1961-1.el7.x86_64.rpm
warning: kmod-veeamsnap-4.0.0.1961-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID efdcea77: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:kmod-veeamsnap-4.0.0.1961-1.el7  ################################# [100%]

可能遇到的问题

在升级之后,您会遇到原系统对python2.x版本的调用,比如 yum install

# yum install 出错
[root@ip-172-31-18-8 ec2-user]# yum install kernel-devel
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

# 修改 /usr/bin/yum 首行 #!/usr/bin/python 为 #!/usr/bin/python2.7,即加上python 2.x 版本号,如果您的系统版本不是2.7,只要找到合适的版本号就可以。

[root@ip-172-31-18-8 ec2-user]# vi /usr/bin/yum
#!/usr/bin/python2.7
import sys
try:
    import yum
except ImportError:

解决方案求助

如果在Linux Agent 安装还有后续问题可以,邮件到mars.zhang@veeam.com 欢迎与您讨论。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注