Linux 更改二进制打包应用程序及其调用命令的名称
我已经获取了一个大型C项目AppA的源代码,并对其进行了修改以生成我的版本AppB。AppA和AppB都在Debian和Red Hat上干净地编译,现在我想为这两个平台构建二进制软件包 我需要做的最后一个修改是确保应用程序B可以与应用程序A一起安装而不受任何干扰。我应该能够在终端中调用Linux 更改二进制打包应用程序及其调用命令的名称,linux,packages,compilation,rpm,deb,Linux,Packages,Compilation,Rpm,Deb,我已经获取了一个大型C项目AppA的源代码,并对其进行了修改以生成我的版本AppB。AppA和AppB都在Debian和Red Hat上干净地编译,现在我想为这两个平台构建二进制软件包 我需要做的最后一个修改是确保应用程序B可以与应用程序A一起安装而不受任何干扰。我应该能够在终端中调用app-a和app-b,并且在任何桌面环境中都作为单独的软件项列出 这些项目有一个debian/文件夹(包含rules、control等)和一个rpm/文件夹,其中包含一个SPEC文件。目前,构建和安装.rpm和.
app-a
和app-b
,并且在任何桌面环境中都作为单独的软件项列出
这些项目有一个debian/
文件夹(包含rules
、control
等)和一个rpm/
文件夹,其中包含一个SPEC
文件。目前,构建和安装.rpm和.deb包是可行的,但应用程序B被认为是应用程序A,因此不符合上述要求ldd
显示程序具有相同的精确依赖性,我无法实现库的静态链接
我希望安装一个应用程序和该应用程序的修改版本,并将其识别为独立于我构建的.deb和.rpm文件的应用程序。
我需要对我的项目进行哪些修改才能达到预期的结果?请具体说明,因为我已经研究了软件包构建,但找不到解决此问题的材料。我将回答Debian软件包的问题
/usr/bin/app-A
,变量“B”将具有/usr/bin/app-B
。这应该是显而易见的,因为否则您将无法同时安装它们/usr/lib/app-a/…
和/usr/lib/app-b
debian/control
文件并更改创建的二进制软件包的名称。名称是包:
字段的值。此外,您还需要更改源程序包的名称(source:
字段,通常位于debian/control
的最顶端)/usr/bin/app-{a,b}
)不同,则您可能希望将两者合并到一个源程序包中,并从该单一源程序包生成三个二进制程序包:一个程序包包含两个项目共享的文件(程序包:app common
),每个变体各一个(包装:app-a
和包装:app-b
)。然后,您需要一个Makefile
来构建这两个变体,并为dh_install
编写配置文件,将文件排序到正确的目录中(app-a
需要进入debian/app-a/usr/bin
和类似的app-b
)对于右侧,您必须编辑您记录的
.spec
文件,然后重新运行rpmbuild
。有很多教程,但第一次通过“搜索和替换”将是一个很好的开始。