tìm kiếm với YUM
Nói chung, bạn không sử dụng bất kỳ biểu thức chính quy nào (tìm kiếm) khi tìm kiếm yum search
vì lệnh search
đã tìm kiếm các chuỗi con trong tên gói và tóm tắt của chúng. Làm thế nào để tôi biết điều này? Có một thông báo cho bạn biết điều này khi bạn sử dụng yum search
.
Tên và tóm tắt chỉ khớp, sử dụng "tìm kiếm tất cả" cho tất cả mọi thứ.
LƯU Ý: Về [cl-*]
mặt kỹ thuật, chuỗi là một quả cầu trong vỏ Bash.
Vì vậy, bạn thường tìm kiếm các đoạn dây mà bạn muốn search
. Các biểu thức chính quy xuất hiện khi bạn đang tìm kiếm các gói cụ thể. Đây là các lệnh YUM như list
và install
.
Ví dụ:
$ 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
Nhắc nhở duy nhất bạn phải cẩn thận với regexes / globs, là nếu có các tệp trong shell của bạn được đặt tên sao cho chúng cũng khớp cl-*
. Trong những trường hợp đó, shell của bạn sẽ mở rộng regex / global trước khi nó được trình bày cho YUM.
Vì vậy, thay vì chạy, yum list cl-*
bạn sẽ chạy lệnh yum list cl-file
, nếu có tệp khớp với regex / global cl-*
.
Ví dụ:
$ 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
Bạn có thể bảo vệ chống lại điều này xảy ra bằng cách thoát khỏi ký tự đại diện như vậy:
$ 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
Vậy những dấu ngoặc
Tôi nghi ngờ bạn có các tệp trong thư mục cục bộ của bạn đang bị khớp khi bạn sử dụng [cl-*]
làm đối số yum search
. Các tệp này sau khi được khớp bởi shell, được chuyển đến yum search
lệnh nơi khớp với nơi tìm thấy.
Ví dụ:
$ 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.
LƯU Ý: Trận đấu ở trên được khớp với tên tệp của tôi cl-file
và không khớp cl-*
như tôi dự định.
cl-*
không phải là một biểu thức thông thường, đó làglob
hoặc bất cứ điều gì nó được gọi. Đó là ngôn ngữ thông thường (theo thuật ngữ Chomskian), nhưng chúng tôi thường nói rằng một cái gì đó là một biểu thức chính quy nếu nó xác định một ngữ pháp cho ngôn ngữ thông thường (bằng cách sử dụng ít nhất ba thao tác cơ bản: ghép, thay đổi và sao Kleene).