2015-06-01 93 views
0

我已經使用Makefile,命令「dh_make --createorig」創建了軟件包,然後調整debian文件夾生成的文件,最後使用debuild命令生成.deb文件。這個工作流程很簡單,適用於我,但我被告知要稍微調整一下,以便您可以從源代碼構建項目而不需要原始文件,但我不確定如何去做,但根據此( https://askubuntu.com/questions/17508/how-to-have-debian-packaging-generate-two-packages-given-an-upstream-source-arch)和這個結構(http://bazaar.launchpad.net/~andrewsomething/imagination/debian/files)一定有辦法。在我的情況下,我會有一個文件夾與源和所有的,然後一個debian文件夾(由dh_make生成),但我不確定如何避免debuild命令要求.orig文件,或者如果我應該使用一些其他的命令。構建不帶.orig文件的debian軟件包

對不起,我想我提供了所有相關信息,但我可以澄清是否有任何模糊的問題。

回答

2

如果要直接在源包中創建一個Debian目錄(即你的軟件包你自己的工作,而不是從上游版本),你可以使用--native選項dh_make

3

區別在於文件debian/changelog中的版本號。

如果您使用1.2.3-1,它暗示上游軟件包1.2.3的Debian版本1 - 對於該軟件,生成程序(dpkg-buildpackage和頂層的任何包裝文件)---假設.orig.tar.gz存在。

但是,如果您使用的是1.2.3,它會考慮使用'Debian native'軟件包,檔案只是一個.tar.gz而不是.orig.tar.gz

現在,選擇不應僅僅由您的便利所驅動。如果這有一個上游來源,請使用第一個方案。如果不是,第二可以罰款。在我維護的包中我都有,但的方式更多的前者。

0

我認爲問題有不同的要求,有點清楚,該項目是上游,它可能不是一個很好的理由,將其格式更改爲native

目前我打包了一些上游python項目,這個問題出現在我腦海裏。爲什麼沒有任何的dh_ *掛鉤,以實時生成這個原點壓縮包覆蓋,所以你不要被困擾:

This package has a Debian revision number but there does not seem to be an appropriate original tar file or .orig directory in the parent directory;

一開始,我添加了一個生成文件的項目:

# Makefile VERSION:=$(shell dpkg-parsechangelog -S Version | sed -rne 's,([^-\+]+)+(\+dfsg)*.*,\1,p'i) UPSTREAM_PACKAGE:=click_${VERSION}.orig.tar.gz dpkg: tar cafv ../${UPSTREAM_PACKAGE} . --exclude debian --exclude .git debuild -uc -us clean: rm -f ../${UPSTREAM_PACKAGE} debuild clean

這麼簡單make clean dpkg是所有它需要建立包。 現在我認爲問題依然存在,如果有人有一些好主意如何在debian/rules內插入tar操作,所以我可以只調用debuild -uc -us,它奇蹟般地創造了orig壓縮包,我會要命:)