buscando con YUM
Por lo general, no utiliza ninguna expresión regular (globs) cuando busca, yum search
ya que el comando search
ya está buscando subcadenas dentro de los nombres de los paquetes y sus resúmenes. ¿Cómo se esto? Hay un mensaje que te dice esto cuando lo usas yum search
.
Solo coincidencias de nombre y resumen, use "buscar todo" para todo.
NOTA: La cadena [cl-*]
es técnicamente un globo en el shell Bash.
Por lo tanto, generalmente busca fragmentos de cadenas que desee search
. Las expresiones regulares entran en juego cuando buscas paquetes particulares. Estos son los comandos YUM como list
y install
.
Por ejemplo:
$ 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 única advertencia que debe tener cuidado con regexes / globs, es si hay archivos dentro de su shell que se nombran de manera que también coincidan cl-*
. En esos casos, su shell expandirá la expresión regular / glob antes de que se presente a YUM.
Entonces, en lugar de ejecutar yum list cl-*
, ejecutará el comando yum list cl-file
, si hay un archivo que coincida con la expresión regular / glob cl-*
.
Por ejemplo:
$ 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
Puede evitar que esto suceda escapando del comodín de esta manera:
$ 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
¿Y qué hay de los corchetes?
Sospecho que tiene archivos en su directorio local que coinciden cuando lo utilizó [cl-*]
como argumento yum search
. Estos archivos, luego de ser comparados por el shell, se pasaron al yum search
comando donde coincide donde se encontraron.
Por ejemplo:
$ 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: La coincidencia anterior coincidía con el nombre de mi archivo cl-file
y no con el cl-*
que tenía previsto.
cl-*
no es una expresión regular, es unaglob
o como se llame. Es un lenguaje regular (en términos chomskianos), pero generalmente decimos que algo es una expresión regular si define una gramática para el lenguaje regular (mediante el uso de al menos tres operaciones básicas: concatenación, alteración y estrella de Kleene).