Yum নিয়মিত প্রকাশ বা ওয়াইল্ডকার্ড অনুসন্ধান?


12

ফেডোরার ডকুমেন্টেশন বলে:

5.2। উন্নত অনুসন্ধানসমূহ

আপনি যদি প্যাকেজের নাম জানেন না, সন্ধানটি ব্যবহার করুন বা বিকল্প সরবরাহ করুন। বিকল্পভাবে, অনুসন্ধানের ক্রিয়াকলাপকে আরও প্রশস্ত করতে ওয়াইল্ড কার্ড বা যম অনুসন্ধান বিকল্পের সাথে নিয়মিত অভিব্যক্তি ব্যবহার করুন।

ওয়েল, প্রথম আমি ভেবেছিলাম যে এই কেবল ভুল বা সেকেলে, কারণ রেগুলার এক্সপ্রেশনের কোন জ্ঞাত সিনট্যাক্স সঙ্গে কাজ করবে yum search, কিন্তু তারপর আমি দেখেছি এই : yum search [cl-*]উদাহরণস্বরূপ। তবে এটি অন্যরকম কিছু করে। এটি এমন জিনিসগুলি আবিষ্কার করে যার নাম বা বর্ণনায় "গ" বা "l" অক্ষর নেই। (আমি যা চেয়েছিলাম তা হ'ল সমস্ত প্যাকেজ সন্ধান করা, যার নামগুলি cl-.*রেজিএক্সএক্সের সাথে মিলবে ।

আমি পাইপ ইয়াম ফলাফলগুলি পাইপ করার পরামর্শ দেওয়ার জন্য খুব কম লোককেও পেয়েছি grep, যা অবশ্যই সমস্যাটি সমাধান করে। তবে, কেবল নীতিগতভাবে, আমি বর্গাকার বন্ধনীতে জিনিসটি কী করেছিল তা জানতে চাই। yumআসলে যদি রিজেক্সের মাধ্যমে অনুসন্ধান করতে পারি?

উত্তর:


13

YUM এর সাথে অনুসন্ধান করা হচ্ছে

যখন সঙ্গে অনুসন্ধানের আপনি সাধারণত কোনো রেগুলার এক্সপ্রেশনের (globs) ব্যবহার করে না yum searchযেহেতু কমান্ড searchইতিমধ্যে প্যাকেজের নাম এবং তাদের সারাংশ মধ্যে উপ-স্ট্রিং জন্য খুঁজছেন হয়। আমি এটা কিভাবে জানি? একটি বার্তা আছে যা আপনাকে এটি ব্যবহার করার সময় বলে দেয় yum search

কেবল নাম এবং সংক্ষিপ্তসার মেলে, সমস্ত কিছুর জন্য "সমস্ত অনুসন্ধান করুন" ব্যবহার করুন।

দ্রষ্টব্য:[cl-*] বাশ শেলের মধ্যে স্ট্রিংটি প্রযুক্তিগতভাবে একটি গ্লোব।

সুতরাং আপনি সাধারণত যে স্ট্রিংয়ের টুকরোগুলি চান তা সন্ধান করেন search। আপনি যখন নির্দিষ্ট প্যাকেজগুলি সন্ধান করেন তখন নিয়মিত প্রকাশগুলি কার্যকর হয়। এগুলি হ'ল listএবং এর মতো YUM কমান্ড install

উদাহরণ স্বরূপ:
$ 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

আপনাকে কেবলমাত্র রেজিটেক্স / গ্লোবগুলি সম্পর্কে সতর্কতা অবলম্বন করতে হবে, যদি আপনার শেলের মধ্যে এমন কোনও ফাইল থাকে যাতে নাম দেওয়া থাকে যে সেগুলিও মেলে cl-*। এই ক্ষেত্রে আপনার শেলটি ইউইউএমকে উপস্থাপন করার আগে রেজেক্স / গ্লোব প্রসারিত করবে।

সুতরাং চালানোর পরিবর্তে yum list cl-*আপনি কমান্ডটি yum list cl-fileচালাবেন, যদি রেগেক্স / গ্লোব এর সাথে মিলে যায় এমন কোনও ফাইল থাকে cl-*

উদাহরণ স্বরূপ:
$ 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

আপনি যেমন ওয়াইল্ডকার্ড থেকে পালিয়ে এই ঘটনার হাত থেকে রক্ষা করতে পারেন:

$ 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

সুতরাং বন্ধনী সম্পর্কে কি

আমার সন্দেহ হয় আপনার স্থানীয় ডিরেক্টরিতে এমন ফাইল রয়েছে যা আপনি যখন [cl-*]যুক্তি হিসাবে ব্যবহার করেছেন তখন মিলছে yum search। শেলটির সাথে মিলে যাওয়ার পরে এই ফাইলগুলি সেই yum searchকমান্ডে পৌঁছেছিল যেখানে কোথায় মিলছে।

উদাহরণ স্বরূপ:
$ 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.

উল্লেখ্য: উপরে ম্যাচ আমার ফাইল নাম বিরুদ্ধে মিলেছে হয়েছিল, cl-file, এবং cl-*হিসাবে আমি অভিপ্রেত ছিল।


ওহ, আমি এখন দেখতে। ঠিক আছে, এটি ব্যাখ্যা করে। একটি নীটপিকিং মন্তব্য যদিও cl-*নিয়মিত প্রকাশ নয়, এটি globযাকে বলা হয় বা যা বলা হয়। এটি একটি নিয়মিত ভাষা (চমস্কিয়ান ভাষায়), তবে আমরা সাধারণত বলি যে এটি নিয়মিত ভাষার জন্য ব্যাকরণকে সংজ্ঞায়িত করলে (কমপক্ষে তিনটি বুনিয়াদি ক্রিয়াকলাপ: সংক্ষিপ্তকরণ, পরিবর্তন এবং ক্লিন তারকা) দ্বারা কিছু নিয়মিত প্রকাশ হয়।
wvxvw

@wvxvw - এটি সঠিক। আপনি টার্মিনোলজি রেজেক্স দিয়ে শুরু করেছিলেন এবং আমি কেবল এটি 8- তে ঝুঁকেছি)।
slm

3

এখানে অবশ্যই YH 3.2.29 এর সাথে RHEL 6.5 ব্যবহার করে অবশ্যই পৃথকভাবে yum সংস্করণটি সাবধান করুন:
আপনার শেল গ্লোব্বিংয়ের মাধ্যমে বর্তমান ডিরেক্টরিতে কোনও কিছুর সাথে মিল না দেওয়ার জন্য * উক্তিটি দেওয়া উচিত ... সে সম্পর্কে আরও ব্যবহারিক উদাহরণের জন্য পরবর্তী উত্তরটি দেখুন: /unix//a/155157/83329

যাই হোক, শুধু আবার একমাত্র উপায় আসলে কার্যকরভাবে অনুসন্ধান করতে ইস সন্ধানের সাথে হয় চেক করা থাকে, yum search all | grep fooযেমন yum search fooপ্রশংসনীয় ঝাপসা ফলাফল দেয়। তবে yum list "foo-*"প্রত্যাশার মতোই কাজ করে এবং কেবল আপনার ক্ষেত্রে ফলস্বরূপ প্যাকেজটি cl -mittedf.noarch হবে।

সম্পর্কিত Yum বাগেরপোর্টগুলি সম্পর্কে তাত্ক্ষণিকভাবে নজর দেওয়া ইম অনুসন্ধানে অন্যান্য ত্রুটিগুলিও রয়েছে বলে মনে হয়: https://bugs.launchpad.net/percona-server/+bug/580336/comments/2


1

দুঃখিত এখনও মন্তব্য করতে পারে না তাই একটি উত্তর ব্যবহার করতে হবে।

আপনি চেষ্টা করেছেন yum search cl-*নাকি yum list 'cl-*'? কমপক্ষে yum whatprovides */fooএটির জন্য ফাইলের নাম অনুসন্ধান করার জন্য কাজ করে, যদিও এটি কিছু বিশেষ ক্ষেত্রে। অন্যথায় আমি প্রায়শই ব্যবহার করি
yum list all | grep -i fooতবে ইউমের মাল্টলাইন আউটপুট সম্পর্কে সাবধান থাকুন, গ্রেপ কেবল প্রথম লাইনটি দেখায়, তাই সম্ভবত ব্যবহার করতে পারেyum list all | grep -iA1 foo

"তালিকার বিকল্পগুলি" এর নীচে ম্যান পৃষ্ঠায় কিছু দরকারী উদাহরণ রয়েছে। Http://yum.baseurl.org/ যেমন http://yum.baseurl.org/wiki/YumCommands বা সম্ভবত পাইথনের মাধ্যমে সরাসরি অতিরিক্ত প্রবাহের তথ্যও পাওয়া যাবে : http://yum.baseurl.org/wiki/ YumCodeSnippet / YumSearch


আমি কি চেষ্টা করেছি yum search cl-*? - হ্যা, আমি করেছিলাম. এটি কিছুই খুঁজে পায় না (সম্ভবত বিভিন্ন ইয়াম সংস্করণ? আমি এখনও এফসি 18 ব্যবহার করছি)।
wvxvw

ঠিক আছে, এর জন্য অভিযুক্ত ব্যবহারের ক্ষেত্রে পড়া থেকে yum searchনিয়মিত প্রকাশ / ওয়াইল্ডকার্ডের সাথে এটি একত্রিত করা দ্বিগুণ-অনর্থক। yum searchইতিমধ্যে একটি अस्पष्ट অনুসন্ধান করেছে, তাই ওয়াইল্ডকার্ডগুলি ব্যবহার করা বেশ অযথা। আপনি আপনার অনুসন্ধান সীমাবদ্ধ করতে চান তাহলে, ব্যবহার yum list expressionবা yum list all | grep expression। অন্যথায় আমি আপনাকে
ইয়ামের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.