简体   繁体   English

将Debian软件包移植到YUM for CentOS

[英]Port a debian package to YUM for CentOS

I have a project that runs on Debian and uses many packages provided from the Debian repositories. 我有一个在Debian上运行的项目,并且使用了Debian仓库提供的许​​多软件包。

Because of demand, I've looked into porting the project to CentOS, but found that many of the packages I require are completely missing - at least 10 dependencies would have to be compiled manually at install time on the users machine. 由于需求,我已经考虑将项目移植到CentOS,但是发现我需要的许多软件包完全丢失了-在安装时必须在用户计算机上手动编译至少10个依赖项。

My question is, what is the best way to create an installer for the user's machine? 我的问题是,为用户计算机创建安装程序的最佳方法是什么? Should I use automake tools (with the standard ./configure, make, make install), to compile the required libraries, or is this a non-standard approach. 我应该使用自动制作工具(带有标准的./configure、make、make install)来编译所需的库,还是这是一种非标准的方法。 Note that my app doesn't actually need to be compiled since it is written in Python, so is it weird to do a "make", when you're not compiling your own app? 请注意,由于我的应用程序是用Python编写的,因此实际上并不需要对其进行编译,所以当您不编译自己的应用程序时,执行“ make”操作是否很奇怪?

Should the configure script just warn the user that package X is missing, and let them handle the rest? 配置脚本是否应该只是警告用户缺少包X,然后让他们处理其余的包?

Should I roll my own dependency checker by runng pkg-config manually a few times for each library required, and exit if something is missing? 我是否应该针对每个所需的库通过手动运行png-config几次来滚动自己的依赖项检查器,如果缺少某些内容,则退出?

I'm quite new to this, so any tips to get me moving in the right direction are appreciated. 我对此还很陌生,因此欢迎您提出任何使我朝正确方向前进的提示。

Edit: I am familiar with RPM and yum for red hat base distros, but CentOS is missing many multimedia packages that I require. 编辑:我熟悉RPM和Red Hat基本发行版的yum,但是CentOS缺少了我需要的许多多媒体软件包。 An example of one of my package dependencies is "liquidsoap" which is a programmable audio engine: http://savonet.sourceforge.net/ 我的软件包依赖项之一的示例是“ liquidsoap”,它是一个可编程的音频引擎: http : //savonet.sourceforge.net/

This is available on Debian, but not Redhat/Centos 这在Debian上可用,但在Redhat / Centos上不可用

See this link on CentOS package management. 请参阅有关CentOS软件包管理的链接。

http://wiki.centos.org/PackageManagement/Yum http://wiki.centos.org/PackageManagement/Yum

CentOS is redhat based and does not use .deb packages by default. CentOS是基于Redhat的,默认情况下不使用.deb软件包。 However apt package management has been ported to tons of platforms, you may be able to use a port for centOS 但是,apt软件包管理已移植到大量平台上,您也许可以将端口用于centOS

If you use YUM whatever packages you need will be there for your application as redhat distros need all the same things that any other distro does. 如果您使用YUM,则任何需要的软件包都将存在于您的应用程序中,因为redhat发行版需要与其他发行版相同的所有功能。

EDIT: To get the details out of comments 编辑:从注释中获取详细信息

Packages not available on the target platform either have to be built (possibly as a port) on the target platform and then shipped in the ported package (in this case YUM), or code needs to be modified and forked to use packages which already are available on the target platform. 目标平台上不可用的软件包或者必须在目标平台上构建(可能是作为端口),然后以移植的软件包(在这种情况下为YUM)运送,或者需要修改代码并分叉以使用已经存在的软件包在目标平台上可用。 The choice depends on which is worse, or which is even possible given your constraints. 选择取决于哪一个更糟,或者在您的约束下哪一个甚至有可能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM