0

我正在尝试在 centOs5 上安装 nxLog。

运行“rpm -ivh nxlog-ce-2.8.1248-1.x86_64.rpm”时出现以下错误:

error: Failed dependencies:
    libcap.so.2()(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libcrypto.so.10()(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libcrypto.so.10(libcrypto.so.10)(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libdbi >= 0.8.1 is needed by nxlog-ce-2.8.1248-1.x86_64
    libdbi.so.0()(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libexpat.so.1()(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libssl.so.10()(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64
    libssl.so.10(libssl.so.10)(64bit) is needed by nxlog-ce-2.8.1248-1.x86_64

我一直在查找这些依赖项(yum 无法解决它们),并且我可以在包中找到其中的许多依赖项,例如这个:

http://rpm.pbone.net/index.php3/stat/4/idpl/20908084/dir/centos_other/com/openssl10-libs-1.0.1e-1.ius.centos6.x86_64.rpm.html

然而,这些都标记为 centOs 6+。nxlog 文档声明它支持 centOs 5。有没有一种干净的方法来解决这些依赖关系?或者我是否必须混合和匹配这些包(一旦我将它们全部放在我的机器上,希望 RPM 能够解决它们?)直到我可以运行 nxlog?

谢谢

4

1 回答 1

2

至少有两种方法可以解决这样的问题:

  1. 查找并使用提供包的备用/补充存储库
  2. 重新编译选定的包,以便它们在旧系统上工作。

CentOS 5 相当老旧(CentOS 7 于去年发布,CentOS 5 只得到修复)。尽管如此,专注于单个所需的包,一个下午的工作就足以成功或发现有许多依赖项也必须重新构建。如果没有合适的现有存储库,并且程序确实在旧系统上构建/工作,那么重建并不是那么痛苦。

查看当前来源nxlog.spec.RHEL5,在 Packaging/redhat 子目录中有一个 RPM 规范文件(正在查看)。这列出了开发人员认为构建包的最低要求:

BuildRequires:  BuildRequires: apr-devel pcre-devel openssl-devel libdbi-devel libcap-devel expat-devel openssl-devel gcc libtool glibc-devel libgcc perl  
Prereq(post,preun):     /sbin/install-info  
Requires(pre):  shadow-utils, apr >= 1.2, libdbi >= 0.8.1, openssl, pcre, expat, zlib 

其中大部分似乎没有问题。

  • 您应该验证您的系统是否至少具有版本引用的最低要求。
  • 如果你能满足这些,那么(添加rpmbuild)安装列出的包是下一步。
  • rpmbuild通过将 tar 文件(列在规范文件的Source行中)放入来设置使用~/rpmbuild/SOURCES
  • 运行rpmbuild -ba nxlog.spec(根据需要提供该文件的完整路径名——重命名为使用“.spec”后缀,因为 rpmbuild 似乎关心文件后缀)。

如果一切顺利,您将在下面有一个 rpm 文件~/rpmbuild/RPMS

于 2015-03-28T20:18:26.253 回答