我遇到了使用dh-virtualenv创建Debian软件包时的错误。 以下是debian/control文件的内容:
Source: my-software
Section: utils
Priority: extra
Maintainer: Teddy <email@example.com>
Build-Depends: debhelper (>= 9), python3.7, python-setuptools, dh-virtualenv (>= 0.8), libavutil-dev, libavcodec-dev, qt5-default, gfortran
Standards-Version: 3.9.5
Package: my-software
Architecture: any
Pre-Depends: dpkg (>= 1.16.1), python3.7, ${misc:Pre-Depends}
Depends: make, ${misc:Depends}
Description: Very cool program
对于debian/rules:
#!/usr/bin/make -f
%:
dh $@ --with python-virtualenv
override_dh_virtualenv:
dh_virtualenv --python /usr/bin/python3.7 --setuptools
当我运行
dpkg-buildpackage -b -us -uc
时,即使我已经在debian/control文件中声明了库,仍会出现以下错误:dpkg-shlibdeps: error: cannot find library libQt5WaylandCompositor.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/libdmabuf-server.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/../../lib')
dpkg-shlibdeps: error: cannot find library libQt5MultimediaQuick.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/qml/QtMultimedia/libdeclarative_multimedia.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/qml/QtMultimedia/../../lib')
dpkg-shlibdeps: error: cannot find library libgfortran-ed201abd.so.3.0.0 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/scipy/.libs/libopenblasp-r0-39a31c03.2.18.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libQt5WebView.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/webview/libqtwebview_webengine.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/webview/../../lib')
dpkg-shlibdeps: error: cannot find library libz-a147dcb0.so.1.2.3 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/cv2/.libs/libcrypto-d3d32d0c.so.1.1 (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: warning: can't extract name and version from library name 'libforestprotos.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 'libforestprotos.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 'libforestprotos.so'
dpkg-shlibdeps: warning: can't extract name and version from library name 'libforestprotos.so'
dpkg-shlibdeps: error: cannot find library libQt5WaylandCompositor.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/libxcomposite-glx.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/../../lib')
dpkg-shlibdeps: warning: debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/tensorflow/lite/python/interpreter_wrapper/_tensorflow_wrap_interpreter_wrapper.so contains an unresolvable reference to symbol PyExc_ZeroDivisionError: it's probably a plugin
dpkg-shlibdeps: warning: 68 other similar warnings have been skipped (use -v to see them all)
dpkg-shlibdeps: error: cannot find library libQt5WaylandCompositor.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/libdrm-egl-server.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/../../lib')
dpkg-shlibdeps: error: cannot find library libQt5WaylandCompositor.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/libshm-emulation-server.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DExtras.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DAnimation.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DRender.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DInput.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DLogic.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt53DCore.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt5Gamepad.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/libassimpsceneimport.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/sceneparsers/../../lib')
dpkg-shlibdeps: error: cannot find library libQt5WaylandCompositor.so.5 needed by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/libwayland-eglstream-controller.so (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/wayland-graphics-integration-server/../../lib')
dpkg-shlibdeps: error: no dependency information found for /usr/lib/x86_64-linux-gnu/libQt5EglFSDeviceIntegration.so.5 (used by debian/my-software/opt/venvs/my-software/lib/python3.7/site-packages/PyQt5/Qt/plugins/egldeviceintegrations/libqeglfs-emu-integration.so)
还有一个问题是,只有最后一个错误会持续存在,当我再次运行命令时,其他错误有时无法显示出来。请协助解决。
我已经按照以下方式更新了debin/rules
文件:
#!/usr/bin/make -f
%:
dh $@ --python /usr/bin/python3.7 --with python-virtualenv
override_dh_virtualenv:
dh_virtualenv --python /usr/bin/python3.7 --setuptools
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info --exclude=numpy --exclude=scipy --exclude=cv2 --exclude=matplotlib --exclude=Qt
程序打包正常,但运行应用程序时,出现以下错误:
Traceback (most recent call last):
.
.
.
File "/home/user/Desktop/my_software/lib/python3.7/site-packages/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: /home/user/Desktop/my_software/lib/python3.7/site-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so: ELF load command address/offset not properly aligned
这是目前的主要问题。