recherche avec YUM
En règle générale, vous n'utilisez pas d'expressions régulières (globes) lors de la recherche avec, yum search
car la commande search
recherche déjà des sous-chaînes dans les noms de package et leurs résumés. Comment le sais-je? Il y a un message qui vous le dit lorsque vous utilisez yum search
.
Les correspondances de nom et de résumé uniquement, utilisez "Rechercher tout" pour tout
REMARQUE: la chaîne [cl-*]
est techniquement un glob dans le shell Bash.
Vous recherchez donc généralement les fragments de chaînes que vous souhaitez utiliser search
. Les expressions régulières entrent en jeu lorsque vous recherchez des packages particuliers. Ce sont les commandes YUM comme list
et install
.
Par exemple:
$ 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
La seule mise en garde que vous devez faire attention avec les expressions régulières / globes, c'est s'il y a des fichiers dans votre shell qui sont nommés de manière à ce qu'ils correspondent également cl-*
. Dans ces cas, votre shell étendra l'expression régulière / glob avant de la présenter à YUM.
Ainsi, au lieu d'exécuter, yum list cl-*
vous exécuterez la commande yum list cl-file
, s'il existe un fichier correspondant à l'expression régulière / glob cl-*
.
Par exemple:
$ 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
Vous pouvez vous prémunir contre cela en échappant au caractère générique comme suit:
$ 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
Qu'en est-il des supports
Je soupçonne que vous avez des fichiers dans votre répertoire local qui sont mis en correspondance lorsque vous les utilisez [cl-*]
comme argument yum search
. Ces fichiers, après avoir été mis en correspondance par le shell, ont été passés à la yum search
commande où les correspondances ont été trouvées.
Par exemple:
$ 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.
REMARQUE: la correspondance ci-dessus a été comparée au nom de mon fichier cl-file
, et non pas cl-*
comme je l'avais prévu.
cl-*
n'est pas une expression régulière, c'est uneglob
ou quelque chose comme ça. C'est un langage régulier (en termes chomskiens), mais nous disons généralement que quelque chose est une expression régulière s'il définit une grammaire pour le langage régulier (en utilisant au moins trois opérations de base: concaténation, altération et étoile de Kleene).