pesquisando com YUM
Geralmente, você não usa expressões regulares (globs) ao pesquisar, yum search
pois o comando search
já está procurando sub-strings nos nomes dos pacotes e seus resumos. Como eu sei disso? Há uma mensagem que informa isso quando você usa yum search
.
Apenas o nome e o resumo correspondem, use "pesquisar tudo" para tudo.
NOTA: A string [cl-*]
é tecnicamente uma esfera no shell Bash.
Então você geralmente procura por fragmentos de strings que deseja search
. As expressões regulares entram em jogo quando você procura pacotes específicos. Estes são os comandos do YUM como list
e install
.
Por exemplo:
$ 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 única ressalva que você deve ter cuidado com as expressões regulares / globs é se existem arquivos no seu shell que são nomeados de modo que eles também correspondam cl-*
. Nesses casos, seu shell expandirá o regex / glob antes de ser apresentado ao YUM.
Então, em vez de executar, yum list cl-*
você estará executando o comando yum list cl-file
, se houver um arquivo correspondente ao regex / glob cl-*
.
Por exemplo:
$ 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
Você pode se proteger contra isso, escapando do curinga da seguinte maneira:
$ 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
Então, e os suportes
Eu suspeito que você tenha arquivos em seu diretório local que estão sendo correspondidos quando você usou [cl-*]
como argumento yum search
. Esses arquivos após serem correspondidos pelo shell, foram passados para o yum search
comando onde as correspondências foram encontradas.
Por exemplo:
$ 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.
NOTA: A correspondência acima foi comparada com o nome do meu arquivo cl-file
, e não cl-*
como eu pretendia.
cl-*
não seja uma expressão regular, é umglob
ou como é chamada. É uma linguagem regular (em termos chomskianos), mas geralmente dizemos que algo é uma expressão regular se define uma gramática para a linguagem regular (usando pelo menos três operações básicas: concatenação, alteração e estrela de Kleene).