源碼編寫c程序源碼我們從零開始,首先創(chuàng)建源碼目錄demo和一個demo.c文件 demo.c內(nèi)容如下: #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格式。 以上工作完成后,就是一個最基礎(chǔ)的軟件結(jié)構(gòu),我們截圖看一下。 打包源碼dh_make -s --createorig debian打包目錄修改服務(wù)器軟件uos和debian對于打包服務(wù)器軟件規(guī)則完全一致,參見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上的二進制包名。包名是用來區(qū)分不同軟件包的名字,不用糾結(jié)為什么不一樣,只需要知道包名如何起就可以。 包名的生成規(guī)則是該軟件所在網(wǎng)站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 $@
#自動執(zhí)行預(yù)編譯,由于沒有cmake、qmake、configure等預(yù)編譯工程,因此不執(zhí)行該功能
override_dh_auto_configure:
#覆蓋默認的自動構(gòu)建規(guī)則,重新編寫
override_dh_auto_build:
make PREFIX=/opt/apps/org.demo/files -j$(JOBS)
#覆蓋默認的自動安裝規(guī)則,重新編寫
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
#不執(zhí)行安裝changelog
override_dh_installchangelogs:
#不執(zhí)行安裝doc
override_dh_installdocs:
#不執(zhí)行安裝info
override_dh_installinfo: 需要重寫dh_auto_build和dh_auto_install,如果有預(yù)編譯文件,還需要重寫dh_auto_configure,然后不執(zhí)行安裝changelog、doc和info文件。這就是UOS打包和Debian打包最重要的區(qū)別,安裝目錄不同。 進行打包dpkg-buildpackage -us -uc
|