石家庄网站建站推广,视频直播类网站开发难度,2021还适合开网店吗,开发网络新技术的平台背景
业务需要#xff0c;打一个openstack组件的deb包
openstack组件有setup.py可直接支持打rpm包#xff0c;但不支持deb包#xff0c;所以手动打deb包
用了dh_make准备打包文件#xff0c;然后用debuild或dpkg-buildpackages打deb包
步骤
方法有很多#xff0c;我用…背景
业务需要打一个openstack组件的deb包
openstack组件有setup.py可直接支持打rpm包但不支持deb包所以手动打deb包
用了dh_make准备打包文件然后用debuild或dpkg-buildpackages打deb包
步骤
方法有很多我用的是debuild和dpkg-buildpackages选一个就行
下载源代码与准备打包文件
先用dh_make生成打包的依赖文件先装dh-makeapt install dh-make
装好dh-make后把需要打包的源代码下载下来然后重命名为代码名-版本号如nova-1.2.3dh_make要求的格式必须这么搞)
重命名完了在当前目录创建一个源代码文件夹的tar.gz包tar -cvzf xxx.tar.gz xxx(xxx是要打包的代码目录dh_make打包需要这样一个tar.gz文件
创完tar.gzcd到源代码目录里执行dh_make -f ../xxx.tar.gz -s -c apache -y执行成功后目录下会生成debian目录目录底下放的是打包需要的文件
安装打包的依赖包
比如python3-all, devscripts, dh-python可能还有apt install pkga pkgb pkgc ...安装即可
配置
需要配置debian目录dh_make生成的目录底下的文件主要是文件control和rules
control
需要添加依赖python3-all, dh-python不然报错
rules
以下配置可以直接在dh $后一行里加就行
根据你的py版本添加 --with python3 或 --with python2 或 --with python2,python3
要是报错不能用python-disutils可以在行末加--buildsystempybuild
%:dh $ --with python3 --buildsystem pybuild --disable tests
禁用测试可选
打包时如果源代码有测试用例打包时可能会执行测试用例如果测试失败会导致打包失败此时可禁用测试可在dh $行末添加--disable tests或者在下面新增行(如下
override_dh_auto_test:echo Testing is disabled. debian/test.log
打包
cd到源代码目录下执行debuild打包顺利的话结束后会在父目录下生成一个.deb后缀文件就是目标文件
问题与报错
Q lease use the third-party pybuild build system instead of python-distutils dh_auto_clean: error: This feature was removed in compat 12
A 修改debian/rules为dh $ --with python3 --buildsystempybuild
Q Please add appropriate interpreter package to Build-Depends
A 查看pybuild手册不但要把依赖包apt安装还要把依赖包名加到debian/control里
Q dh: error: unable to load addon python3: Cant locate Debian/Debhelper/Sequence/python3.pm in INC (you may need to install the Debian::Debhelper::Sequence::python3 module) (INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl) at (eval 15) line 1.
A 在debian/control依赖添加dh-python
参考资料
Linux 中用 dh_make 将 Qt CMake 项目打包为 deb 文件_linux qt 软件安装包制作工具-CSDN博客