午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

源碼打包為deb

 開花結(jié)果 2024-03-27 發(fā)布于北京

源碼編寫

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,域名倒置,路徑不倒置

修改changelog

demo (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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多