OBD源码运行-解压rpm包报错

【产品名称】obdeploy

【产品版本】1.0.1

【问题描述】OBD源码运行-解压rpm包报错,

python3.7 _cmd.py cluster deploy obtest -c /data/rpm/obtest/mini-distributed-example.yaml -v

[ERROR] failed to extract file from /root/.obd/mirror/remote/OceanBase-community-stable-el7/obproxy-3.1.0-1.el7.x86_64.rpm

Traceback (most recent call last):

File “/data/rpm/obdeploy-master/core.py”, line 691, in deploy_cluster

install_plugins = self.get_install_plugin_and_install(repositories, pkgs)

File “/data/rpm/obdeploy-master/core.py”, line 468, in get_install_plugin_and_install

if not repository.load_pkg(pkg, install_plugins[repository]):

File “/data/rpm/obdeploy-master/_repository.py”, line 247, in load_pkg

fd = rpm.extractfile(src_path)

File “/usr/local/lib/python3.7/site-packages/rpmfile/__init__.py”, line 174, in extractfile

member = self.getmember(member)

File “/usr/local/lib/python3.7/site-packages/rpmfile/__init__.py”, line 159, in getmember

members = self.getmembers()

File “/usr/local/lib/python3.7/site-packages/rpmfile/__init__.py”, line 136, in getmembers

magic = g.read(2)

File “/usr/local/lib/python3.7/lzma.py”, line 204, in read

return self._buffer.read(size)

File “/usr/local/lib/python3.7/_compression.py”, line 68, in readinto

data = self.read(len(byte_view))

File “/usr/local/lib/python3.7/_compression.py”, line 96, in read

if self._decompressor.needs_input:

AttributeError: ‘_lzma.LZMADecompressor’ object has no attribute ‘needs_input’

操作系统版本和python版本:

LSB Version: :core-4.1-amd64:core-4.1-noarch

Distributor ID: CentOS

Description: CentOS Linux release 7.6.1810 (Core)

Release: 7.6.1810

Codename: Core

能否提供xz-devel的版本

1 个赞

看上去想是用了低版本的so。这个版本的so是py2用的。换操作系统的so存在风险。对于centos7,建议直接使用原装的py2.7就行。obd是py2和py3兼容的

xz-devel-5.2.2-1.el7.x86_64,python的版本是3.7的