dh_install -O – buildsystem = cmake dh_install:缺少文件:usr / lib / * / lib * .so
我试图在启动板上将我的cmake项目发布到ppa。 该项目是一个名为“base”的库。
bzr builddeb -- -us -uc -sd
在尝试假装安装dev
版本的软件包时失败并出现以下错误。
... ... Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "None" -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1.0 -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1 -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myxml.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/Socket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ClientSocket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mycurl.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mystdlib.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ServerSocket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/JPEGImage.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/SocketException.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/FerryTimeStamp.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myconverters.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/baseConfig.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/pkgconfig/libbase.pc -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/share/pkgconfig/libbase.pc make[1]: Leaving directory '/home/gowtham/Packages/build-area/base-1.1/obj-x86_64-linux-gnu' dh_install -O--buildsystem=cmake dh_install: base-dev missing files: usr/lib/*/lib*.so dh_install: base-dev missing files: usr/lib/*/pkgconfig/* dh_install: base1 missing files: usr/lib/*/lib*.so.* dh_install: missing files, aborting debian/rules:11: recipe for target 'binary' failed make: *** [binary] Error 20 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 debuild: fatal error at line 1376: dpkg-buildpackage -rfakeroot -D -us -uc -sd failed bzr: ERROR: The build failed.
如何在安装header files
使dev
版本的builddeb
不同
于Debian /规则
#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 override_dh_auto_test: override_dh_usrlocal: %: dh $@ --buildsystem=cmake
base-dev.install
和base1.install
中的路径是错误的。
dh_install: base-dev missing files: usr/lib/*/lib*.so dh_install: base-dev missing files: usr/lib/*/pkgconfig/* dh_install: base1 missing files: usr/lib/*/lib*.so.*
它们将如下所示正确并且可以构建包:
usr/lib/lib*.so usr/lib/pkgconfig/* usr/lib/lib*.so.*
但是对于多拱系统安装, /usr/lib/
不安全的lintian
消息。
-
您可以在源级别(作为上游开发人员)修复它,因此
cmake
将这些文件安装到/usr/lib/
。 这是正确的方法。/ -
或者通过覆盖
base-dev.install
和base1.install
安装路径来修复它在打包级别(作为打包程序)#!/usr/bin/dh-exec usr/lib/lib*.so /usr/lib/${DEB_HOST_MULTIARCH} usr/lib/pkgconfig/* /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/lib*.so.* /usr/lib/${DEB_HOST_MULTIARCH}