Linux
解決安裝 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 但失敗了
如果您需要找出哪些 repo 包包含特定文件,您可以嘗試(例如):
yum provides "*/libdnet.so.1"
這使用 shell globbing,因此“*/”涵蓋了 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