qt源码dpkg 一步打包

1 准备安装包

sudo apt-gt install build-essential dh-make devscripts

2 配置DEBEMAIL DEBFULLNAME

分别为源码发布者email和name

DEBEMAIL=myxuan475@126.com
DEBFULLNAME=myxuan

直接写到~/.bashrc 里面末尾
或者

cat>>~/.bashrc<<EOF

使用这个命令输入到~/.bashrc, 输入EOF退出编辑
然后执行~/.bashrc 立即生效

3 生成debian

只是第一次需要生成debian,以后可以放到源码里面去
单独创建build目录,不要在源码目录下。进入build目录,然后执行以下脚本:

project_name=$1
version=$2
srcdir=$3

mkdir -p ${project_name}-${version}
cd ${project_name}-${version}
dh_make --createorig -s -t $srcdir
  • 说明
    project_name 就是包名,version为版本号,中间一定要用’-‘隔开
    srcdir 是源码目录
  • 例子
    比如,将上面脚本保存为gendebian.sh,放在build目录,然后执行 ./gendebian.sh package-name 1.0.1 ../package-dir
    就会生成一个debian的目录,在build下生成的是package-name-0.1.0.orig.tar.xz 即源码压缩包。

4 改rules文件

在debian 下有个rules文件,需要改写:如下

#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export DH_VERBOSE = 1
TARGET_NAME=$(shell dpkg-parsechangelog -S Source)
TARGET_CPU=$(shell dpkg-architecture -qDEB_TARGET_GNU_CPU)

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
export DEB_LDFLAGS_MAINT_APPEND = -Wl
%:
    dh $@ --parallel --with autoreconf


# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
#dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

# Make sure the script returns 0
override_dh_auto_configure:
    qmake $(SOURCE_DIR)/
override_dh_auto_build:
    make -j4
override_dh_install:
    sh debian/install.sh
override_dh_strip:
    #dh_strip
override_dh_shlibdeps:
    dh_shlibdeps -l$(shell pwd)/printer

override_dh_auto_clear:

其他照写,主要关注:

  • override_dh_auto_configure
    我们把这里改成执行qmake
  • override_dh_auto_build
    使用make即可
  • override_dh_install
    实际可以使用make install,也可以自己写脚本放到指定位置。必须在debian目录下建立一个以包名命名的文件夹,将执行文件放这里。
    比如希望安装的时候希望放在/usr/local/bin/ 下,那么可以直接写作:

    override_dh_install:
    cp target_dir/target debian/target/usr/local/bin/

    如果有自己生成的库也一样。但是系统依赖的库,qt自带的库,不需要。他会自动写入control文件或shlibdeps 文件。

5 打包

dpkg-buildpackage -us -uc
最终在build下生成标准的deb的包。
第一次打包完成后需要把debian放到源码里面去,第二次打包的时候,直接拷贝过去,并且手动压缩.orig.tar.xz 。压缩包也可以是.orig.tar.gz ,名称格式为:

{package-name}_{version}.orig.tar.gz 

然后运行 dch -v 0.1.0-2 修改发布版本和changelog.
然后再执行dpkg-buildpackage -us -uc

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值