打包Linux软件,同时保持一个健全的文件结构

因此,我创build了一个软件,我想打包并发布到Arch Linux用户仓库,AUR, – 请注意,我从来没有为任何发行版打包任何东西 – 我也已经打包并安装在我自己的机器上通过Arch的包pipe理器Pacman成功,但现在我想知道我将如何构build文件夹和文件?

通常当我编写软件时,我使用这种结构:

build / | src / | 生成文件

至less和这个软件一样,makefile只不过是编译一个来自src /的.cpp文件来编译/。 为了制作Arch软件包,我还必须创build一个.rc文件,以正确使用程序作为守护程序和PKGBUILD文件(这是告诉makepkg程序如何构build安装程序包的文件) – 这两个文件,不过,Arch是特定的。 如果我想打包程序说debian,我需要另一套文件也这样做,但这些文件只适用于debian。 现在,我不能把.rc文件和PKGBUILD文件放到程序的根文件夹中,因为那样会“很乱”,特别是如果我还有文件为debian打造一个软件包的话,发行版特定的文件? 我需要把它放在程序的根文件夹-at-least-中,以便能够跟踪它,而我最初的想法是使用诸如distro / arch /的Arch Linux特定文件的结构,然后PKGBUILD文件只是在程序根文件夹中运行makefile,然后在编译的文件从build /到distro / arch /之前做任何事情,但是我发现我不能让PKGBUILD这样工作,Freenode的#archlinux上的人也是说这不是一个聪明的主意。

那么我在哪里放置发行版特定的文件? 如果我知道我只需要为Arch提供这个程序,那么仅仅为了Makepkg而构造它就很容易,但是我不想像这样封闭这个软件,而且我也可以想象为Debian这样的其他市长发行版提供软件包,所以我怎么做到这一点,同时保持一个健全的文件结构?

问候,克里斯Buchholz

很多时候你会在tarball中找到一个名为“debian”的目录,其中包含debian特定的文件。 我会走相同的路线,并创建一个目录“archlinux”,并把文件在那里。

然后,我将继续在archlinux目录下放置一个文件自述文件,说明如何正确使用PKGBUILD。

一个解决方案可能是将一个规则写入Makefile'package-arch',将PKGBUILD复制到根目录,运行makepkg,然后删除多余的PKGBUILD。

这是骇人听闻的,所以我也会为Arch人写一个错误报告来解决这个限制。 但是,你尝试makepkg -p archlinux/PKGBUILD