Jak znaleźć pakiet, który udostępnia dany plik w OpenSuSE?

11

Myślę o takich jak Contents-<arch>.gzna Debianie. Usługa sieciowa również była w porządku. Czy to istnieje?

Proste opracowanie: potrzebujemy na przykład pliku binarnego o nazwie exampletoolbardzo dobrze znanej z innych dystrybucji lub systemów operacyjnych. Chcemy zainstalować to, na przykład, zypper. Ale zypper może zainstalować tylko pakiet. Aby dowiedzieć się, w którym pakiecie możemy znaleźć wymagany exampletoolplik binarny, musimy przeprowadzić praktycznie wyszukiwanie, a najlepiej szybkie wyszukiwanie indeksowane na liście plików aktualnie nie zainstalowanych, ale w dostępnych pakietach repozytoriów . W Debianie znajduje się plik indeksu w nazwanych repozytoriach pakietów Contents-amd64.gz, w którym możemy znaleźć wymagany pakiet za pomocą jednej zgrepkomendy. Szukam też podobnego, jednozadaniowego rozwiązania dla OpenSUSE. Jeśli nie ma takiej usługi, usługa sieciowa również spełniała tę samą funkcję.

peterh - Przywróć Monikę
źródło

Odpowiedzi:

7

Aby wyszukać ze wszystkich dostępnych pakietów w celu znalezienia określonego pliku, możesz użyć opcji wplub se --provides --match-exactjako przykład:

zypper se --provides --match-exact hg

Zobaczysz dane wyjściowe podobne do następujących:

Loading repository data...
Reading installed packages...

S | Name      | Summary                  | Type   
--+-----------+--------------------------+--------
  | mercurial | Scalable Distributed SCM | package

Od tego momentu możesz zainstalować pakiet poprzez standardową instalację zypper

zypper in mercurial

Należy zauważyć, że zypper wpjest przestarzały i może nie być już dostępny.

SailorCire
źródło
Nie zawsze jest to wiarygodne. Nie wiem dlaczego, ale nazwy plików, takie jak zypper search --provides [--match-exact] getenforce, nie zwracają wyników, podczas gdy zypper search --provides nslookuptak.
Lester
6

Dla googlersów przyszłości: obok cudownego rozwiązania @SailorCire :-), istnieje także narzędzie o nazwie scout, które jest w stanie przeszukiwać praktycznie wszystko, możemy znaleźć RPM-y dla pliku binarnego, tak jak możemy znaleźć słoiki dla danej klasy Java.

Na przykład możemy użyć binpolecenia scout, aby dowiedzieć się, jaki pakiet zapewnia hgplik wykonywalny:

scout bin hg

Wynikiem tego wyszukiwania jest mercurialpakiet:

 repository      | package   | path     | binary
-----------------+-----------+----------+--------
 zypp (repo-oss) | mercurial | /usr/bin | hg    
peterh - Przywróć Monikę
źródło
Czy możesz bardziej precyzyjnie określić scoutnarzędzie? Czy możesz podać jej „pełną nazwę lub adres URL” do swojego kodu?
SebMa,
@SebMa Do pobrania z rpm, prawdopodobnie przez zypper. Możliwe, że było to w niestandardowym repo. Nie pamiętam zbyt dobrze :-( Nie używam już SuSE. Ale możliwe, że tak będzie, sprawdzę to i wyjaśnię, co znalazłem. Możliwe, że SuSE bardzo się zmieniło od tego czasu
Peter - Przywróć Monikę
Na moim urządzeniu Jolla1 (SailFishOS) zypper wp scoutmówiNo matching items found.
SebMa
@SebMa Googling dla „narzędzia scout rpm” Znalazłem ten link na miejscu, w tej chwili nie mogę nic więcej pomóc. Prawdopodobnie będziesz musiał zainstalować go z jakiegoś niestandardowego repozytorium.
peterh - Przywróć Monikę
Na podanym linku jest napisane: „Scout to interfejs do notatek Tomboy lub Gnote, który używa DBus do komunikacji”. Nie jestem pewien, czy jest to narzędzie, którego szukamy.
SebMa
1

Używam Gecko Linux XFCE. Otworzyłem Yast2 i zainstalowałem gnome-search-tool i gnome-shell-search-provider-nautilus . Działa dobrze, podobnie jak Catfish.

Ross Vassilev
źródło