Jakie jest polecenie, aby wyświetlić listę rpms, które mogą dostarczyć konkretny plik: rpm, który zapewnia pliki już zainstalowane lub rpms, który może dostarczyć pliki, które nie są zainstalowane?
W przypadku już zainstalowanych plików / pakietów:
[jb @ smokey ~] $ rpm -qf / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64
W przypadku niezainstalowanych plików i pakietów:
[jb @ smokey ~] $ mniam co zapewnia „/ etc / sudoers” sudo-1.6.9p13-8.fc9.x86_64: Zezwala na ograniczony dostęp do konta root określonym użytkownikom Repo: aktualizacje-nowy klucz Dopasowane z: Nazwa pliku: / etc / sudoers sudo-1.6.9p13-4.fc9.x86_64: Zezwala na ograniczony dostęp do konta root określonym użytkownikom Repo: fedora Dopasowane z: Nazwa pliku: / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64: Zezwala na ograniczony dostęp do konta root określonym użytkownikom Repo: zainstalowane Dopasowane z: Inne: Provides-match: / etc / sudoers
Zauważ, że „mniam to, co zapewnia” jest dopasowaniem do wzorca, więc jeśli nie masz pewności, gdzie szukany plik będzie istniał w strukturze katalogów, po prostu otaczaj go cudzysłowami i gwiazdkami:
mniam, co zapewnia „* foo *”
Podobnie, jeśli masz pewność, że szukasz pliku binarnego, możesz:
mniam, co zapewnia „* bin / foo”
Nie wiem o plikach, które nie zostały jeszcze zainstalowane, ale w przypadku pliku, który jest już zainstalowany, możesz użyć rpm -qif:
rpm -qif / bin / ls Nazwa: coreutils Relokacje: (nie można przenieść) Wersja: 5.97 Producent: Red Hat, Inc. Wydanie: 23.el5 Data kompilacji: Pn 13 lipca 2009 04:21:27 AM MDT Data instalacji: Pt 11 września 2009 04:46:01 Host kompilacji MDT: hs20-bc1-7.build.redhat.com Grupa: Środowisko systemowe / podstawowe źródło RPM: coreutils-5.97-23.el5.src.rpm Rozmiar: 9053874 Licencja: GPLv2 + Podpis: DSA / SHA1, Wt 28 lip 2009 03:42:40 AM MDT, Key ID 5326810137017186 Packager: Red Hat, Inc. URL: Podsumowanie: Podstawowe narzędzia GNU: zestaw narzędzi powszechnie używanych w skryptach powłoki Opis: Są to podstawowe narzędzia GNU. Ten pakiet jest kombinacją stare pakiety plików, sh-utils i textutils GNU.Jeśli masz pobrane RPM, możesz zapytać, co chcesz zainstalować:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm ostrzeżenie: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: Podpis DSA nagłówka V3: NOKEY, identyfikator klucza 37017186 Nazwa: jzlib Relokacje: (nie można przenieść) Wersja: 1.0.7 Producent: Red Hat, Inc. Wydanie: 4jpp.1 Data kompilacji: wt 08 sierpnia 2006 12:10:03 PM MDT Data instalacji: (nie zainstalowano) Kompiluj hosta: hs20-bc1-6.build.redhat.com Grupa: Programowanie / Biblioteki / Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm Rozmiar: 280436 Licencja: w stylu BSD Podpis: DSA / SHA1, czw. 18 sty 2007 08:49:50 AM MST, Key ID 5326810137017186 Packager: Red Hat, Inc. URL: Podsumowanie: Ponowna implementacja Zlib w JZlib w czystej Javie Opis: Zlib został zaprojektowany jako darmowy, uniwersalny, prawnie nieobciążony - to znaczy nieobjęte żadnymi patentami - bezstratna kompresja danych biblioteka do użytku na praktycznie każdym sprzęcie komputerowym i systemie operacyjnym. Zlib został napisany przez Jean-loup Gailly (kompresja) i Mark Adler (dekompresja). /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so /usr/share/doc/jzlib-1.0.7 /usr/share/doc/jzlib-1.0.7/LICENSE.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jarmożesz pominąć „-i” w opcjach, jeśli nie chcesz zobaczyć wszystkich informacji o RPM.
W repozytoriach opartych na yumie możesz spróbować czegoś takiego yum provides */filename
afaik, nie jest to możliwe przy czystych obrotach na minutę. rpm zapewnia to tylko dla zainstalowanych pakietów z opcją --whatprovides
.
kiedy możesz użyć yum, spróbuj yum provides <filename>
wyszukać w repozytorium.
Jeśli nie chcesz (lub nie możesz) używać yum (np. Na komputerze offline), możesz przeszukiwać niezainstalowane RPM, wykonując
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
Może to zająć trochę czasu, więc bądź cierpliwy, wyszukując plik * .rpm w dużym repozytorium, na przykład na instalacyjnym dysku DVD. Ale w przeciwieństwie do „-qpl”, „-qp --filesbypkg” wyświetli zarówno plik, jak i RPM, do którego należy, na przykład:
# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4
# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs /usr/lib/libpq.so.4
postgresql-libs /usr/lib64/libpq.so.4
w takim przypadku widoczny duplikat wynika z obecności pakietów i386 i x86_64 (co wynika z łańcucha „lib64”).
Obawiam się, że nie jestem pewien, jak to zrobić z RPMS, ale z Debianem i Ubuntu możesz korzystać z programu apt-file