我正在尝试在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无法解决它们),我可以在这样的包中找到很多依赖项:
然而,这些都被标记为centOs 6+。 nxlog文档声明它支持centOs 5.是否有一种干净的方法来解决这些依赖关系?或者我是否必须混合和匹配这些软件包(一旦我在机器上安装了所有软件包,希望RPM能解决它们吗?)直到我可以运行nxlog?
由于
答案 0 :(得分:2)
至少有两种方法可以解决这样的问题:
CentOS 5相当陈旧(CentOS 7于去年发布,CentOS 5仅获得修复)。然而,专注于单个所需的软件包,下午的工作就足以成功或发现有许多依赖项也必须重建。如果没有合适的现有存储库,并且该程序确实构建/使用旧系统,那么重建并不是那么痛苦。
查看current sources,打包/ redhat子目录中有一个RPM规范文件(查看nxlog.spec.RHEL5
)。这列出了开发人员认为构建软件包的最低要求:
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
Source
行中)来设置使用~/rpmbuild/SOURCES
rpmbuild -ba nxlog.spec
(根据需要提供该文件的完整路径名 - 重命名为使用“.spec”后缀,因为rpmbuild似乎关心文件后缀)。如果一切顺利,您将在~/rpmbuild/RPMS