আমার সার্ভারে কোনও প্যাকেজ ইনস্টল করা আছে কিনা তা আমি কীভাবে পরীক্ষা করব?


174

আমি সম্প্রতি উবুন্টু সার্ভার সংস্করণ 13.10 (সৌদি সালাম্যান্ডার) ইনস্টল করেছি। তবে আমি কিছুটা সমস্যার মধ্যে পড়েছি।

ইনস্টলের শেষে, ওপেনএসএসএইচ সার্ভার এবং ভার্চুয়াল মেশিন হোস্টের মতো আপনি অতিরিক্ত প্যাকেজগুলি চান কিনা তা আপনাকে জিজ্ঞাসা করে। আমি যা দেখছি তা এখানে:

এখানে চিত্র বিবরণ লিখুন

এখন, আমার সমস্যাটি হ'ল আমি মনে করতে পারি না যে আমি "ভার্চুয়াল মেশিন হোস্ট" চেকবক্সটি পরীক্ষা করেছিলাম কিনা। আমার সার্ভারে সংশ্লিষ্ট প্যাকেজ রয়েছে কিনা তা আমি কীভাবে চেক করব?

ভার্চুয়াল মেশিন হোস্টের সাথে কি প্যাকেজ আসে?


1
$ apt-cache policy <package-name>যেমন,$ apt-cache policy dillo
ড্যানিয়েল

উত্তর:


230

আপনি কি বিকল্পগুলির সাথে সমস্ত dpkg কমান্ড সম্পর্কে জানতে চাইছেন? নীচের লিঙ্ক থেকে একটি পড়ুন।

দেবিয়ান ভিত্তিক লিনাক্স সার্ভার পরিচালনা করতে 15 ডিপিকিজি কমান্ড

সমস্ত ইনস্টল করা প্যাকেজ তালিকাবদ্ধ করতে

এখানে "কম" হ'ল একটি সরল পাঠ্য পাঠক যা বিদ্যমান টার্মিনাল উইন্ডোতে খোলে এমন নতুন বাফারে প্যাকেজের তালিকার মাধ্যমে স্ক্রোল করতে ব্যবহৃত হয়। অন্যান্য টার্মিনাল কমান্ড এবং আউটপুটটির সাথে তালিকাটি মিশ্রিত হবে না। টার্মিনাল প্রম্পটে ফিরে আসতে 'কিউ' চাপুন। আরও তথ্যের জন্য "মানুষ কম" দেখুন।

dpkg -l | less

প্যাকেজ ইনস্টল করা আছে কি না তা পরীক্ষা করে দেখুন:

dpkg -l {package_name}
dpkg -l vlc

প্যাকেজটি ইনস্টল রয়েছে কিনা তা পরীক্ষা করতে (উদাহরণস্বরূপ, vlc)) ইনস্টল করা থাকলে প্যাকেজটি চালু করুন:

dpkg -l | grep vlc

প্যাকেজ ইনস্টল করা হয়েছে যেখানে অবস্থান প্রদর্শন করুন। "-S" (মূলধন এস) এর অর্থ "অনুসন্ধান"

sudo dpkg -S {package_name}
sudo dpkg -S skype

অনুসন্ধানে গ্রেপ ব্যবহার করতে:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

1
এই এবং ডিপি কেজি-ক্যোয়ারী -l "
প্যাকেজ

4
এর প্রস্থান কোডের উপর নির্ভর করবেন না dpkg -l packagename, কারণ প্যাকেজটি পুরোপুরি ইনস্টল না করা সত্ত্বেও 0 টি প্রস্থান কোডের সাথে এটি ফিরে আসতে পারে - দেখুন: github.com/bitrise-io/bitrise/issues/433
ভিক্টর বেণী

dpkg -l | cut -d " " -f 3 | grep "^vlc"শুরু হওয়া সমস্ত প্যাকেজের নামগুলি দেখানোর জন্যvlc
অ্যানাটোলি টেকটোনিক

এফওয়াইআই, এটি মেটা প্যাকেজগুলির জন্য কাজ করে না কারণ তারা সরাসরি কোনও ডিপিকেজির সাথে সম্পর্কিত হয় না। আপনার প্রতিক্রিয়া যদিও জিজ্ঞাসা করা প্রশ্নের উত্তর দেয়।
mtalexan

34

ব্যবহার dpkg

এই কমান্ডটি ডেবিয়ান প্যাকেজ ম্যানেজার।

এর সাথে ইনস্টল করা সমস্ত প্যাকেজ তালিকাভুক্ত করতে পারেন

dpkg -l

আপনি একটি নির্দিষ্ট প্যাকেজের সাথে বিশদটি দেখতে পারেন

dpkg -p packagename

এবং এটি ইনস্টল করা হয়েছে কিনা তা জানতে, ব্যবহার করুন

dpkg -s packagename | grep Status

আপনি যে সফ্টওয়্যারটি চান তা কোন প্যাকেজটিতে রয়েছে তা শিখতে পারেন

apt-cache search name*  

আপনার ক্ষেত্রে আপনার যে প্যাকেজের নাম চান তা অনুসন্ধান করতে আপনার এই আদেশটি ব্যবহার করা উচিত

apt-cache search virtual machine host 

29

apt -qq list PACKAGE প্যাক ইনস্টল করা আছে কিনা তা যাচাই করার জন্যও ব্যবহার করা যেতে পারে।

ইনস্টল করা থাকলে এটি ( [installed]লাইনের শেষে) মতো কিছু মুদ্রণ করবে :

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

ইনস্টল না করা থাকলে আউটপুটটি হবে:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all

1
আপনি একটি ওয়াইল্ডকার্ডের জন্য প্যাকেজ নামের শেষে একটি তারা রাখতে পারেন।
ব্রান্নো

3
আপনি সেই কমান্ডের জন্য - ইনস্টল করা বিকল্পটি ব্যবহার করতে পারেন যা প্রকৃতভাবে ইনস্টল হওয়া ম্যাচগুলির সীমাবদ্ধ করতে পারে।
mtalexan

2
কিসের -qqজন্য? এটি এগুলি ছাড়া অভিন্নরূপে কাজ করে বলে মনে হচ্ছে এবং সেই বিকল্পটি ম্যানুয়ালটিতে নেইman apt
গ্যাব্রিয়েল স্ট্যাপলস

3
@ গ্যাব্রিয়েল স্ট্যাপলস দেখে মনে হচ্ছে apt listকমান্ডটি এখনও সম্পূর্ণ নথিভুক্ত নয়। ১.0.০৪-তে কিছু দ্রুত পরীক্ষা করা ইঙ্গিত দেয় যে -qএটি --quietবিকল্পের প্রতিশব্দ । প্রথমটি -q"সম্পন্ন" শব্দটি মুদ্রিত হওয়া প্রতিরোধ করে। দ্বিতীয়টি "তালিকা ..." মুদ্রণ হতে বাধা দেয়।
অ্যান্টনি জিওগিগান

14

আমি কেবলমাত্র dpkg-কোয়েরি কমান্ড এবং কোনও পাইপ সহ প্যাকেজ ইনস্টলেশন পরীক্ষা করার একটি উপায় খুঁজে পেয়েছি।

জবাবদিহি প্লেবুকের জন্য একটি টাস্ক লেখার সময় আমি এই জাতীয় সমাধান অনুসন্ধান করেছি।

সুতরাং, আপনি এই জাতীয় কিছু করতে পারেন:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

জিনিসটি করার এটি অন্য একটি উপায়।


জবাবদিহি পাইপ shellমডিউল সঙ্গে ব্যবহার করা যেতে পারে ।
sjas

4

আমি টাস্কসেল 'টাস্কের নাম' না দেখানো dpkgবা aptকোয়েরি হিসাবে একটি নতুন উত্তর লিখছি । অর্থাত অন্যান্য উত্তরগুলি অসম্পূর্ণ (বা ভুল)।

"আমি মনে করতে পারি না আমি 'ভার্চুয়াল মেশিন হোস্ট' চেকবক্সটি পরীক্ষা করে থাকলে .."

পুনরায় চলার পরে নামের সাথে একটি তারকাচিহ্ন আছে কিনা তা পরীক্ষা করুন sudo tasksel
(বা চলতে থাকলে একটি ' আমি ' tasksel --list-tasks)।

আপনি যদি এটি না দেখেন তবে সম্ভবত আপনার 'টাস্কেল মেটা-প্যাকেজ ' ইনস্টল করা নেই।


".. আমার সার্ভারে সংশ্লিষ্ট প্যাকেজ রয়েছে কিনা তা আমি কীভাবে পরীক্ষা করব?"

ভার্চুয়াল মেশিন হোস্ট টাস্কসেল মেটা-প্যাকেজের অধীনে কি ইনস্টল করা আছে তা যদি আপনি জানতে চান:

tasksel --list-tasks

(আপনার ক্ষেত্রে tasksel --list-tasks | grep virtযথেষ্ট)

এটি যথাযথ কার্যের নাম দেয় এবং এটি ইনস্টল করা হয়েছে কিনা তা একটি ইঙ্গিত দেয়।

আপনার ক্ষেত্রে এই টাস্কসেলের নাম virt-host


"ভার্চুয়াল মেশিন হোস্টের সাথে কী প্যাকেজ আসে?"

শেষ কমান্ড থেকে, টাস্কसेल টাস্কের নামটি সন্ধান করুন।
এটি পরবর্তী কমান্ডের জন্য প্রয়োজন:

tasksel --task-packages virt-host

এটি স্বতন্ত্র টাস্কেল মেটা-প্যাকেজ (সংযুক্ত '^' দ্বারা চিহ্নিত) তালিকাভুক্ত করে যা নাম তৈরি করে।
আপনার ক্ষেত্রে এটি virt-host^

যথাযথ মেটা-নামটি একবার খুঁজে পেলে আপনি এ্যাপ ব্যবহার করতে পারেন:

 apt show virt-host^ | grep "Package:"

(বা apt-cache show ...যদি apt showকাজ না করে))

এটি প্রদত্ত মেটা প্যাকেজ তৈরির সমস্ত প্যাকেজ প্রদর্শন করবে।

তারপর:

 dpkg -l {each individual pkg name listed above}

স্বতন্ত্র প্যাকেজটি ইনস্টল / আনইনস্টল করা হয়েছে কিনা তা এটি আপনাকে জানাবে (২ য় বর্ণ দ্বারা চিহ্নিত: 'আমি' স্ট্যাটাসটি ইনস্টলড)। টাস্ক / মেটা প্যাকেজের অধীন তালিকাভুক্ত সমস্ত প্যাকেজগুলির জন্য এটি করুন।

এটির মূল প্রশ্নের উত্তর দেওয়া উচিত।

পার্শ্ব নোট: /usr/share/tasksel/descs/ubuntu-tasks.desc এও টাস্কেল মেটা-প্যাকেজগুলির বিবরণ রয়েছে। যদি আপনি: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.descএটি যথাযথ এপিটি মেটা-প্যাকেজের নামটি দেখায়। (আপনার ক্ষেত্রে এটি হয় ubuntu-virt-server)। আপনি aptএই মেটা-নাম সহ কমান্ডগুলিও ব্যবহার করতে পারেন ।

আপনি যদি টাস্কসেল প্যাকেজগুলি সরাতে চান তবে এটি কিছুটা আগাছায় .ুকবে। দয়া করে https://askubuntu.com/a/88897/169878 বা অন্যান্য উত্তরগুলির যে কোনও নম্বর এখানে দেখুন।

দয়া করে নোট করুন যে "মেটা" অ্যাপটি প্যাকেজগুলি টাস্কসেল প্যাকেজের নামের সাথে মেলে না। আরও তথ্যের জন্য দয়া করে টাস্কেল সম্প্রদায় পৃষ্ঠায় পরামর্শ করুন ।


1
উভয় প্রশ্নের সঠিক উত্তর দেওয়া হয়েছে। আপনি যদি নিম্নমানের হন, একটি কারণ দিন, বা কেন তা নয় তা আমাকে বলুন।
বিসিয়া

3

টাস্কসেল ব্যবহার করুন ( sudo apt-get install taskselযদি আপনার ইতিমধ্যে এটি না থাকে) এবং চালান tasksel --list-tasks

টাস্কসেল কার্যগুলির একটি তালিকা মুদ্রণ করবে এবং iইনস্টল uহওয়া প্রতিটি কার্যের পাশে এবং ইনস্টলড না থাকা প্রতিটি কার্যের পরে থাকবে।

আপনি যদি টাস্কটি ইনস্টল করতে চান তবে ব্যবহার করুন tasksel install <task>। আপনি যে টাস্কটি সন্ধান করছেন তার নাম virt-host

সফ্টওয়্যার নির্বাচনের আইটেমগুলিকে "টাস্ক" বলা হয়।


আমাকে কার্যটির নাম বলার জন্য ধন্যবাদ, এটি আমার অন্যতম সমস্যা ছিল, কোন প্যাকেজটি অনুসন্ধান করা উচিত তা নিশ্চিত ছিল না।
D.Zou

2

যদি কেউ আগ্রহী হন, আমি একটি ছোট স্ক্রিপ্ট তৈরি করেছি যার সাহায্যে আপনি প্যাকেজ বা অ্যাপ্লিকেশনগুলির তালিকা থেকে স্বয়ংক্রিয়ভাবে ইনস্টল করতে পারেন বা কেবল সেগুলি ইতিমধ্যে ইনস্টল রয়েছে কিনা তা যাচাই করে নিন:

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

আশা করি এটি কাউকে সাহায্য করবে।


2

সহজ সমাধান:

এখন একটি apt listকমান্ড রয়েছে যা ইনস্টল করা প্যাকেজগুলি তালিকাভুক্ত করে। আপনি এর সাথে একটি নির্দিষ্ট প্যাকেজ অনুসন্ধান করতে পারেন

apt list <package>

দেখুন man aptআরও তথ্যের জন্য। আপনি যদি সঠিক প্যাকেজটির নামটি না জানেন তবে apt searchসম্পর্কিত প্যাকেজগুলির তালিকা দেখতে আপনি এর কিছু অংশ অনুসরণ করতে পারেন ।

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