প্যাকেজটি ইউমে ইনস্টল করা আছে কি করে সঠিকভাবে যাচাই করবেন?


56

আমি উত্তর পেতে থাকি:

yum list installed | grep bind

অথবা

rpm -qa | grep bind

তবে এটি সঠিক নয় কারণ আমি এই জাতীয় কয়েকটি বাইন্ড প্যাকেজগুলির তালিকা পাচ্ছি:

bind-utils-9.8.2-0.17.rc1.el6_4.5.x86_64
rpcbind-0.2.0-11.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.5.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-winbind-clients-3.6.9-151.el6.x86_64
ypbind-1.20.4-30.el6.x86_64

এটা আমি চেয়েছিলাম না। পরিবর্তে আমি বাইন্ড কোর প্যাকেজ ইনস্টল করা হয়েছে কিনা তা সঠিকভাবে পরীক্ষা করতে চাই। যেমন।bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6

আমি এমন কিছু আশা করছিলাম:

yum check installed bind

তবে আশা করি কেউ আলো ফেলতে পারে।

উত্তর:


61

আপনি কি এই চেষ্টা করেছেন?

$ yum list installed bind

আমি পেয়ে করছি Error: No matching Packages to listএবং $?1 ফেরৎ, এবং যখন আমি চেষ্টা yum list installed bind-libs, $?ফেরৎ 0. কোনটি সঠিক এতদূর হওয়া উচিত। আপনার কমান্ডটি কোনও প্যাকেজ ইনস্টল করা হয়েছে তা সঠিকভাবে নির্ধারণ করে আমি নিরাপদে সিদ্ধান্ত নিতে পারি? আমি rpm -q bindএখনই খুঁজে পেয়েছি । এটি কি আপনার আদেশের সমতুল্য?
চেকসাম

এটি সঠিক AFAIK, প্যাকেজটি ইনস্টল থাকলে কেবলমাত্র প্রস্থান কোড 0
plasmid87

আমি মনে করি এটি কাজ করছে। আমি একক লাইন solutions.:D পছন্দ
চেকসাম

আমি মনে করি সঠিক কমান্ডটি ওয়াইল্ডকার্ডের সাথে রয়েছে: yum list installed bind*
আলেজান্দ্রো অ্যাঞ্জেলিকো

2
@ NoahSussman আপনি yum -C list installed bindনেটওয়ার্ক এড়ানোর চেষ্টা করতে পারেন । এটি সমস্ত প্লাগইন সক্ষম করে রাখে (কেবলমাত্র আপনি যদি কোনও বিদেশী কিছু থাকবেন যা yumdb এ চেহারাগুলিকে প্রভাবিত করে) এবং আপনাকে জানায় যে প্যাকেজটি প্যাকেজটি ইনস্টল করা হয়েছিল
plasmid87

13

এই কোয়েরি জারি করার একটি আরও সহজ উপায় আছে: rpm -qa | grep bindবা rpm -q bind। আপনি প্যাকেজের নাম সম্পর্কে পুরোপুরি নিশ্চিত না হলে প্রাক্তনটি সেরা।


4
+1 কারণ rpm -q $packageআমি বিশ্বাস করি এটি সবচেয়ে দ্রুত এবং সমাধান, কারণ যে কোনও কিছু করা yumক্যাশে আপডেটকে (সাধারণত ধীর গতিতে) বাধ্য করতে পারে।
অ্যালেক্স এস

এই সমাধানটি (ব্যবহার করে rpm) গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি পরিষ্কার প্রস্থান স্থিতি ফিরে পায় এবং yumসমাধানগুলি যেমন করে দূরবর্তী URL গুলির একগুচ্ছকে কল করার প্রয়োজন হয় না ।
নোহ সুসমান

1
@ নোহসসমান আপনি যে সমস্ত উদাহরণের কথা চিন্তা করতে পারেন তার মধ্যে একই আচরণের জন্য প্রস্থান কোডগুলি অনুসরণ করুন yumএবং rpmঅনুসরণ করুন (0 = ইনস্টলড, 1 = ইনস্টল / ত্রুটি নেই) তাই আপনি যদি কোনও পৃথক প্রস্থান কোড দেখছেন কিনা তা জানার জন্য এটি দরকারী। নেটওয়ার্ক অ্যাক্সেস এড়ানোর জন্য ক্যাশে ব্যবহার সম্পর্কিত উপরে আমার প্রতিক্রিয়াটি একবার দেখুন
প্লাজমিড ৮৪

@ প্লাজমিড ৮৮ আমি জানি না যে ইউমকে yum -Cনেটওয়ার্ক হোস্টের সাথে যোগাযোগ করার জন্য এই সমস্ত অতিরিক্ত সময় ব্যয় করা থেকে বিরত রাখতে আমি ব্যবহার করতে পারি । আপনাকে ধন্যবাদ, আমি এখন দেখছি যে এখানে ইয়াম এবং আরপিএম কীভাবে বিনিময়যোগ্যভাবে ব্যবহৃত হতে পারে !!
নোহ সুসমান

9

এই আদেশের ফলাফলগুলি বিশ্লেষণ করা সর্বাধিক সম্পূর্ণ উত্তর। আপনাকে সঠিক প্যাকেজের নাম জানতে হবে।

yum info bind

Loaded plugins: refresh-packagekit, rhnplugin
This system is receiving updates from RHN Classic or RHN Satellite.
Installed Packages
Name        : bind
Arch        : x86_64
Epoch       : 32
Version     : 9.8.2
Release     : 0.17.rc1.el6_4.6
Size        : 7.3 M
Repo        : installed
From repo   : rhel-x86_64-workstation-6
Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
URL         : http://www.isc.org/products/BIND/
License     : ISC
Description : BIND (Berkeley Internet Name Domain) is an implementation of the DNS
        : (Domain Name System) protocols. BIND includes a DNS server (named),
        : which resolves host names to IP addresses; a resolver library
        : (routines for applications to use when interfacing with DNS); and
        : tools for verifying that the DNS server is operating properly.

2
হুম, আমাকে bindইনস্টল করা আছে কিনা তা বলার পরিবর্তে আমাকে বলার সুবিধা / বৈধ ইয়ম প্যাকেজটি পাওয়া যায় না ?
চেকসাম

2
এটি সুস্পষ্ট নয়, তবে ইনস্টলটি রেপো ট্যাগের নীচে তালিকাবদ্ধ করা থাকলে এটি ইনস্টল করা আছে। অন্যথায় এটি যে রেপোটি পাওয়া যায় তার তালিকা করে।
ফ্রেড ম্যাজিক ওয়ান্ডার ডগ

আমি চাই সমস্ত আমার স্থানীয় মেশিনে কী ঘটছে তা দেখার জন্য যখন দূরবর্তী ইউম রেপোতে সংযুক্ত হওয়ার ফলস্বরূপ ।
নোহ সুসমান

1

এটি করার জন্য আমি যে সেরা একটি লাইনার নিয়ে এসেছি (এটি স্ক্রিপ্টগুলিতে দ্রুত ব্যবহারের জন্য দুর্দান্ত) তা হ'ল:

yum info <package_name> | grep Repo | awk '{ print $3 }'

উদাহরণস্বরূপ: যদি আমি বর্তমানে gitইনস্টল করেছি:

yum info git | grep Repo | awk '{ print $3 }'

এই ফিরে আসবে installed

আমি বর্তমানে এমন না আছে gitইনস্টল যে একই পূর্ববর্তী কমান্ড ফিরে আসবে: base/7/x86_64যার জন্য সাম্প্রতি উপলব্ধ ইনস্টলেশনgit


আমি চাই সমস্ত আমার স্থানীয় মেশিনে কী ঘটছে তা দেখার জন্য যখন দূরবর্তী ইউম রেপোতে সংযুক্ত হওয়ার ফলস্বরূপ ।
নোহ সুসমান

1
@NoahSussman সমস্ত প্যাকেজ আপনার স্থানীয় মেশিন আপনি ব্যবহার করতে পারেন বর্তমানে ইনস্টল তালিকা yum list installed। সেখান থেকে আপনি grepযা সন্ধান করছেন তার আরও সুনির্দিষ্ট উত্তর পেতে আপনি কমান্ডটি ব্যবহার করতে পারেন । এছাড়াও যদি আপনি একটি নির্দিষ্ট প্যাকেজ পরীক্ষা করতে চান তবে আপনি এটি আপনার কমান্ড - এক্স: এ যুক্ত করতে পারেন php70wyum list installed php70wহয় ইনস্টল করা প্যাকেজটিতে তথ্যের তালিকা বা ফিরে আসবেNo matching Packages to list
ডমডামব্রোগিয়া

-1

পাইথন কোডটি ব্যবহার করুন পাইটি ব্যবহার করে পাইথনে প্যাকেজ ইনস্টল করা আছে কিনা:

def is_installed(package_name):
    return "not installed" in commands.getstatusoutput("rpm -q " + package_name)[1]

এই হওয়া উচিত নয় not in?
ইনবার রোজ 23'18

-2
yum list installed bind >/dev/null ; echo $?

ফলাফল 0 (শূন্য) হলে প্যাকেজ ইনস্টল করা হয়


rpm -q bindজন এর উত্তরে প্রদর্শিত সমাধানের তুলনায় এটি খুব ধীর ।
নোহ সুসমান

যদিও সম্ভবত ব্যবহার yum -C ...দ্রুত হবে।
নোহ সুসমান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.