源码编写c程序源码我们从零开始,首先创建源码目录demo和一个demo.c文件 demo.c内容如下: #include<stdio.h>
int main() {
printf("this is a demo ! \n");
return 0;
} Makefile编写一个Makefile PREFIX=/usr/local
all: prepare build-bin
prepare:
mkdir -p bin
build-bin:
$(CC) -o bin/demo demo.c
install:
mkdir -p ${DESTDIR}${PREFIX}/bin
mkdir -p ${DESTDIR}${PREFIX}/share/applications
mkdir -p ${DESTDIR}${PREFIX}/share/icons/hicolor/48x48/apps
install -v bin/demo ${DESTDIR}${PREFIX}/bin
install -v demo.desktop ${DESTDIR}${PREFIX}/share/applications
install -v demo.png ${DESTDIR}${PREFIX}/share/icons/hicolor/48x48/apps
clean:
rm -rf bin
.PHONY: all install clean 快捷方式和图片写一下快捷方式文件demo.desktop [Desktop Entry]
Name=demo
Exec=demo
Terminal=false
Type=Application
Icon=demo
Categories=Network; 制作一个图片,推荐svg格式,也可以是png格式。 以上工作完成后,就是一个最基础的软件结构,我们截图看一下。 
打包源码dh_make -s --createorig 
debian打包目录修改服务器软件uos和debian对于打包服务器软件规则完全一致,参见debian打包文档即可。 桌面软件由于uos的安装路径和debian的默认安装路径不同,因此需要额外做一些工作。 请保留source目录以及changelog、compat、control、copyright、rules这几个文件,删掉其他文件。 
修改control文件Source: demo
Section: net
Priority: optional
Maintainer: zhaozhen <zhaozhen@>
Build-Depends: debhelper (>= 11)
Standards-Version: 4.1.3
Homepage: https://
#Vcs-Browser: https://salsa./debian/demo
#Vcs-Git: https://salsa./debian/demo.git
Package: org.demo
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: a demo application 请注意Source和Package字段,Source表示软件源码包的名称,一般亦是软件名。Package指在UOS上的二进制包名。包名是用来区分不同软件包的名字,不用纠结为什么不一样,只需要知道包名如何起就可以。 包名的生成规则是该软件所在网站url的倒置,举例: www.,包名可以叫org.demo,也可以叫org.demo.www,一般忽略www demo.,包名可以叫org.demo.demo,域名倒置 www./demo,包名可以叫org.demo.demo,域名倒置,路径不倒置 www./a/demo,包名可以叫org.demo.a.demo,域名倒置,路径不倒置 修改changelogdemo (1.0.0.0) unstable; urgency=medium
* Initial release
-- zhaozhen <zhaozhen@> Mon, 01 Mar 2021 13:55:16 +0800 需要注意版本号形式为a.b.c.d,然后编写版本修订记录,方便以后查询 修改Desktop建议不要直接修改源码,请使用补丁形式,修改Exec字段。 cat debian/patches/fix-desktop.patch --- a/demo.desktop
+++ b/demo.desktop
@@ -1,6 +1,6 @@
[Desktop Entry]
Name=demo
-Exec=demo
+Exec=/opt/apps/org.demo/files/bin/demo
Terminal=false
Type=Application
Icon=demo 增加info文件在debian目录增加info文件 修改rules#!/usr/bin/make -f
export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
JOBS=$(shell echo nproc)
%:
dh $@
#自动执行预编译,由于没有cmake、qmake、configure等预编译工程,因此不执行该功能
override_dh_auto_configure:
#覆盖默认的自动构建规则,重新编写
override_dh_auto_build:
make PREFIX=/opt/apps/org.demo/files -j$(JOBS)
#覆盖默认的自动安装规则,重新编写
override_dh_auto_install:
make install DESTDIR=$(CURDIR)/debian/org.demo
mkdir -p $(CURDIR)/debian/org.demo/opt/apps/org.demo/entries
cp -r $(CURDIR)/debian/org.demo/opt/apps/org.demo/files/share/*/ $(CURDIR)/debian/org.demo/opt/apps/org.demo/entries
cp $(CURDIR)/debian/info $(CURDIR)/debian/org.demo/opt/apps/org.demo
#不执行安装changelog
override_dh_installchangelogs:
#不执行安装doc
override_dh_installdocs:
#不执行安装info
override_dh_installinfo: 需要重写dh_auto_build和dh_auto_install,如果有预编译文件,还需要重写dh_auto_configure,然后不执行安装changelog、doc和info文件。这就是UOS打包和Debian打包最重要的区别,安装目录不同。 进行打包dpkg-buildpackage -us -uc
|