chr*_*olz 8 c++ linux archlinux
所以我创建了一个软件,我想打包并发布到Arch Linux用户存储库,AUR, - 请注意,我以前从未为任何发行版打包过任何东西 - 而且我还将它打包并安装在我自己的机器上通过Arch的包管理员Pacman成功,但现在我想知道我是怎么构建文件夹和文件的?
通常当我编写软件时,我使用这种结构:
建立/ | src/| 生成文件
至少,在这个软件的情况下,makefile只是编译从.rc /到build /的.cpp文件.为了制作Arch包,我还必须创建一个.rc文件,正确使用该程序作为守护进程和PKGBUILD文件,该文件告诉makepkg程序如何构建installer-package - 这两个文件,虽然,特定于Arch.如果我想将程序打包为debian,我还需要另外一组文件来执行此操作,但这些文件仅适用于debian.现在,我不能只将.rc文件和PKGBUILD文件放入程序根目录文件夹中,因为这样会"乱七八糟",特别是如果我还有用于为debian构建软件包的文件,但我在哪里放特定于发行版的文件?我需要在程序根文件夹中使用它 - 至少 - 能够跟踪它,我最初的想法是使用像distro/arch /这样的结构来获取Arch Linux特定文件,然后是PKGBUILD文件只是在程序根文件夹中运行makefile并将编译后的文件从build /复制到distro/arch /之前做了其他任何事情,但我发现我无法让PKGBUILD以这种方式工作,而且在Freenode上的#archlinux上也有人说这不是一个聪明的主意.
那么我在哪里放置发行版特定文件?如果我知道我只需要为Arch提供这个程序,那么只为Makepkg构建它很容易,但是我不喜欢将软件这样监禁,而且我也可以设想为debian等其他市长发行版提供包,所以如何在保持理智的文件结构的同时实现这一目标?
此致,Chris Buchholz
您经常会在 tarball 中找到一个名为“debian”的目录,其中包含 debian 特定文件。我会走同样的路线并创建一个目录“archlinux”并将文件放在那里。
然后我会继续在 archlinux 目录中放置一个 README 文件,解释如何正确使用 PKGBUILD。
一种解决方案可能是在 Makefile“package-arch”中写入一条规则,将 PKGBUILD 复制到根目录中,运行 makepkg,然后删除多余的 PKGBUILD。
这很 hackish,所以我还会为 Arch 人员写一份错误报告来修复这个限制。然而,你尝试过吗makepkg -p archlinux/PKGBUILD?