【问题标题】:Port a debian package to YUM for CentOS将 debian 软件包移植到 CentOS 的 YUM
【发布时间】:2012-10-11 05:17:25
【问题描述】:

我有一个在 Debian 上运行的项目,并使用了 Debian 存储库提供的许​​多软件包。

由于需求,我已经考虑将项目移植到 CentOS,但发现我需要的许多包完全丢失 - 至少有 10 个依赖项必须在用户机器上安装时手动编译。

我的问题是,为用户机器创建安装程序的最佳方式是什么?我应该使用 automake 工具(使用标准的 ./configure、make、make install)来编译所需的库,还是这是一种非标准方法。请注意,我的应用程序实际上不需要编译,因为它是用 Python 编写的,所以当你不编译自己的应用程序时,做一个“make”是不是很奇怪?

配置脚本是否应该只警告用户包 X 丢失,让他们处理其余的?

我是否应该通过手动运行 pkg-config 为每个所需的库手动运行几次我自己的依赖项检查器,如果缺少某些内容则退出?

我对此很陌生,所以任何让我朝着正确方向前进的提示都值得赞赏。

编辑:我熟悉用于红帽基础发行版的 RPM 和 yum,但 CentOS 缺少许多我需要的多媒体包。我的包依赖项之一的示例是“liquidsoap”,它是一个可编程音频引擎:http://savonet.sourceforge.net/

这在 Debian 上可用,但在 Redhat/Centos 上不可用

【问题讨论】:

  • 由于可能的许可证/编解码器问题,多媒体包是一个主要的痛苦,如果您可以在 CentOS 上构建自己并且许可证许可,您可以将它们与您的包一起提供。

标签: linux centos debian redhat dependency-management


【解决方案1】:

在 CentOS 软件包管理上查看此链接。

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

CentOS 是基于 redhat 的,默认情况下不使用 .deb 包。然而 apt 包管理已被移植到大量平台,您也许可以使用 centOS 的移植

如果您使用 YUM,您的应用程序所需的任何软件包都将在那里,因为 redhat 发行版需要与任何其他发行版相同的东西。

编辑:从 cmets 中获取详细信息

在目标平台上不可用的包要么必须在目标平台上构建(可能作为端口),然后在移植的包(在本例中为 YUM)中交付,要么需要修改代码并分叉以使用包已经在目标平台上可用。选择取决于哪个更糟,或者考虑到您的限制,哪个是可能的。

【讨论】:

  • 更新了我的问题。 Centos/Redhat 缺少很多 Debian 自带的软件包。
  • 这不是一个包管理问题,因为它已经为这个平台问题构建了这个依赖关系。就像我说的那样,如果您有这种需要,请寻找一个 apt 端口。那里有很多。或者在 YUM 包中自己发布和构建缺少的依赖项。
  • 我想这是唯一的方法。不幸的是,有 10 多个包需要移植。
  • 那是个无赖的家伙,也许你可以在那些平台上找到已经满足你需求的包,然后稍微分叉你的代码。可能会更容易,具体取决于您的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多