wyszukiwanie za pomocą YUM
Na ogół nie używasz żadnych wyrażeń regularnych (globów) podczas wyszukiwania, yum search
ponieważ polecenie search
szuka już podłańcuchów w nazwach pakietów i ich podsumowaniach. Skąd to wiem? Jest komunikat, który mówi ci to, kiedy używasz yum search
.
Tylko dopasowania nazw i podsumowań, użyj „szukaj wszystkiego” dla wszystkiego.
UWAGA: Ciąg [cl-*]
jest technicznie globusem w powłoce Bash.
Więc ogólnie szukasz fragmentów ciągów, które chcesz search
. Wyrażenia regularne wchodzą w grę, gdy szukasz konkretnych pakietów. Są to polecenia YUM, takie jak list
i install
.
Na przykład:
$ yum list cl-* | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
Available Packages
cl-asdf.noarch 20101028-5.fc19 fedora
cl-clx.noarch 0.7.4-4.3 home_zhonghuaren
cl-ppcre.noarch 2.0.3-3.3 home_zhonghuaren
Jedynym zastrzeżeniem, na które musisz uważać przy wyrażeniach regularnych / globach, jest to, że w twojej powłoce znajdują się pliki, które są tak nazwane, że one również pasują cl-*
. W takich przypadkach twoja powłoka rozwinie wyrażenie regularne / glob przed zaprezentowaniem go YUM.
Zamiast uruchamiać yum list cl-*
będziesz polecenie yum list cl-file
, jeśli istnieje plik pasujący do wyrażenia regularnego / glob cl-*
.
Na przykład:
$ ls cl-file
cl-file
$ yum list cl-*
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.steadfast.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.steadfast.net
Error: No matching Packages to list
Możesz uchronić się przed tym, uciekając od symbolu wieloznacznego w następujący sposób:
$ yum list cl-\* | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
Available Packages
cl-asdf.noarch 20101028-5.fc19 fedora
cl-clx.noarch 0.7.4-4.3 home_zhonghuaren
cl-ppcre.noarch 2.0.3-3.3 home_zhonghuaren
A co z nawiasami
Podejrzewam, że masz pliki w katalogu lokalnym, które są dopasowywane, gdy używasz ich [cl-*]
jako argumentu yum search
. Pliki te, po dopasowaniu przez powłokę, zostały przekazane do yum search
polecenia, w którym znaleziono dopasowania.
Na przykład:
$ ls cl-file
cl-file
$ yum search cl-*
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Loading mirror speeds from cached hostfile
* fedora: mirror.dmacc.net
* rpmfusion-free: mirror.nexcess.net
* rpmfusion-free-updates: mirror.nexcess.net
* rpmfusion-nonfree: mirror.nexcess.net
* rpmfusion-nonfree-updates: mirror.nexcess.net
* updates: mirror.dmacc.net
======================================================================= N/S matched: cl-file =======================================================================
opencl-filesystem.noarch : OpenCL filesystem layout
Name and summary matches only, use "search all" for everything.
UWAGA: Powyższe dopasowanie zostało dopasowane do nazwy mojego pliku cl-file
, a nie cl-*
zgodnie z planem.
cl-*
nie jest jednak wyrażeniem regularnym, aleglob
jakkolwiek się nazywa. Jest to język regularny (w języku chomskim), ale zwykle mówimy, że coś jest wyrażeniem regularnym, jeśli definiuje gramatykę dla języka regularnego (przy użyciu co najmniej trzech podstawowych operacji: konkatenacji, zmiany i gwiazdy Kleene).Zdecydowanie inna wersja yum, używając RHEL 6.5 tutaj z yum 3.2.29 Uwaga:
powinieneś zacytować *, aby nie pasować do niczego w bieżącym katalogu poprzez globbing powłoki ... Aby uzyskać więcej szczegółów na ten temat i praktyczny przykład, zobacz późniejszą odpowiedź: /unix//a/155157/83329
W każdym razie, właśnie sprawdzone ponownie, jedynym sposobem na skuteczne wyszukiwanie za pomocą yum search jest,
yum search all | grep foo
ponieważyum search foo
daje dość rozmyte wyniki. Aleyum list "foo-*"
działa tak, jak się spodziewano, a jedynym wynikiem w twoim przypadku byłby prawdopodobnie pakiet cl-asdf.noarch.Szybkie przeglądanie pokrewnych raportów o błędach mniam Wyszukiwanie ma również inne wady: https://bugs.launchpad.net/percona-server/+bug/580336/comments/2
źródło
Niestety nie mogę jeszcze komentować, więc musisz użyć odpowiedzi.
Próbowałeś
yum search cl-*
czyyum list 'cl-*'
? Przynajmniejyum whatprovides */foo
działa w przypadku wyszukiwania nazw plików, choć jest to szczególny przypadek. W przeciwnym razie często używam,yum list all | grep -i foo
ale uważaj na wieloliniowe wyjście yum, grep może pokazywać tylko pierwszą linię, więc może użyjyum list all | grep -iA1 foo
Istnieje również kilka użytecznych przykładów na stronie podręcznika poniżej „Opcje listy”. Dodatkowa dokumentacja jest również dostępna bezpośrednio na stronie http://yum.baseurl.org/ np. Http://yum.baseurl.org/wiki/YumCommands lub może bezpośrednio przez python: http://yum.baseurl.org/wiki/ YumCodeSnippet / YumSearch
źródło
yum search cl-*
? - tak. To nic nie znajduje (może inna mniam wersja? Nadal używam FC18).yum search
, łączenie go z wyrażeniami regularnymi / symbolami wieloznacznymi jest podwójnie zbędne.yum search
już wykonuje wyszukiwanie rozmyte, więc używanie symboli wieloznacznych jest dość bezużyteczne. Jeśli chcesz ograniczyć wyszukiwanie, użyjyum list expression
lubyum list all | grep expression
. W przeciwnym razie proponuję otworzyć prośbę o ulepszenie przeciwko mniam - powodzenia z tym: p