解决安装rpm包的依赖关系

解决安装rpm包的依赖关系

我使用的是RHEL6

你好,我已经创建了 yum 存储库,当我尝试安装 rpm 时,我从他们的网站下载了 snort rpm 包,但出现错误,例如

snort-2.9.5.3-1.f18.i386.rpm

1:snort-2.9.5.3-1.i386 requires libsfbpf.so.0
1:snort-2.9.5.3-1.i386 requires libdnet.so.1
1:snort-2.9.5.3-1.i386 requires libpcre.so.1

1)我尝试在互联网上查找这些文件,但找不到任何

2)我如何使用yum安装snort,我尝试yum install \Desktop\snort-2.9.5*它抛出错误,我失败了依赖

错误:

Resolving Dependencies
--> Running transaction check
---> Package snort.i386 1:2.9.5.3-1 set to be updated
--> Processing Dependency: libdnet.so.1 for package: 1:snort-2.9.5.3-1.i386
--> Processing Dependency: libpcre.so.1 for package: 1:snort-2.9.5.3-1.i386
--> Processing Dependency: libsfbpf.so.0 for package: 1:snort-2.9.5.3-1.i386
--> Finished Dependency Resolution
Error: Package: 1:snort-2.9.5.3-1.i386 (/snort-2.9.5.3-1.f18.i386)
           Requires: libsfbpf.so.0
Error: Package: 1:snort-2.9.5.3-1.i386 (/snort-2.9.5.3-1.f18.i386)
           Requires: libdnet.so.1
Error: Package: 1:snort-2.9.5.3-1.i386 (/snort-2.9.5.3-1.f18.i386)
           Requires: libpcre.so.1
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

我如何安装snort,我什至尝试安装fwbuilder但失败

答案1

如果您需要找出哪些存储库包包含特定文件,您可以尝试(例如):

yum provides "*/libdnet.so.1"

这使用了 shell 通配符,因此“*/”涵盖了 yum 将查找绝对路径名的事实。这是必要的。 请注意,它会搜索您的存储库,而不仅仅是已安装的软件包。对于上面使用 F17 的示例,我得到:

libdnet-1.12-8.fc17.i686 : Simple portable interface to lowlevel networking routines
Repo        : fedora
Matched from:
Filename    : /usr/lib/libdnet.so.1



libdnet-1.12-8.fc17.x86_64 : Simple portable interface to lowlevel networking routines
Repo        : fedora
Matched from:
Filename    : /usr/lib64/libdnet.so.1

这个相当简单,但由于这是一个文件名搜索,因此您可能经常会获得大量点击,并且必须对您真正要查找的内容进行深思熟虑的猜测。

yum provides与多个 .rpm 字段标头匹配,因此您实际上不必搜索特定文件(但 shell glob 语法始终适用;该Provides:字段中通常包含内容)。例如,yum provides libdnet这里只是简单地工作——当然更常见和直接的方法也是如此:

yum search libdnet

相关内容