c – 打包Linux软件,同时保持理智的文件结构

栏目: 服务器 · 发布时间: 5年前

内容简介:通常你会在tarball中找到一个名为’debian’的目录,其中包含debian特定文件.我会走相同的路线并创建一个目录’archlinux’并将文件放在那里.然后我会继续在archlinux目录中放置一个文件README,它解释了如何正确使用PKGBUILD.一种解决方案可能是将规则写入Makefile’package-arch’,将PKGBUILD复制到根目录,运行makepkg,然后删除冗余PKGBUILD.
所以我创建了一个软件,我想打包并发布到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等其他市长发行版提供包,所以如何在保持理智的文件结构的同时实现这一目标?

问候,

克里斯Buchholz

通常你会在tarball中找到一个名为’debian’的目录,其中包含debian特定文件.我会走相同的路线并创建一个目录’archlinux’并将文件放在那里.

然后我会继续在archlinux目录中放置一个文件README,它解释了如何正确使用PKGBUILD.

一种解决方案可能是将规则写入Makefile’package-arch’,将PKGBUILD复制到根目录,运行makepkg,然后删除冗余PKGBUILD.

这是hackish,所以我也会为Arch人员写一个bug报告来修复这个限制.但是,您是否尝试过makepkg -p archlinux / PKGBUILD?

翻译自:https://stackoverflow.com/questions/4498159/packaging-linux-software-while-keeping-a-sane-file-structure


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Lean Startup

The Lean Startup

Eric Ries / Crown Business / 2011-9-13 / USD 26.00

更多中文介绍:http://huing.com Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, chan ging the way companies are built and ......一起来看看 《The Lean Startup》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具