কোনও প্যাকেজ ইনস্টল করা আছে কিনা তা আমি কীভাবে চেক করতে পারি (কোনও সুপারউজার সুবিধা নেই)?


56

আমাদের বিশ্ববিদ্যালয়ে আমরা চাই যে কোনও উবুন্টু প্যাকেজ ইনস্টল করতে পারি, তবে আমরা নিজেরাই সুপারভাইজার নই (আমাদের প্যাকেজ ইনস্টল করার অনুরোধ করা দরকার)।

কিছু লাইব্রেরির মাধ্যমে প্যাকেজটি ইতিমধ্যে ইনস্টল রয়েছে কি না তা জানা সর্বদা সহজ নয়। এটি পরীক্ষা করার জন্য কি কোনও সহজ উপায় / আদেশ আছে?

উত্তর:


56
apt-cache policy <package name>

7
এটি প্যাকেজের নামে ট্যাব সমাপ্তি সমর্থন করে তা জানা গুরুত্বপূর্ণ। আপনি সঠিক প্যাকেজের নামটি না জানলেও এটি বেশ কার্যকর।
জাভিয়ের রিভেরা

লজ্জাজনক যে প্যাকেজ উপস্থিত না থাকলেও 0 স্থিতির সাথে প্রস্থান করে। dpkg -sযাইহোক না: Askubuntu.com/a/1108801/52975
Ciro

সঙ্গে বন্ধুত্বপূর্ণapt : apt policy <package name>বা apt show <package name>আরো তথ্যের জন্য।
পাবলো এ

18

আমি সবসময় কমান্ড লাইন থেকে এটি ব্যবহার করি:

dpkg -l | grep mysql

সুতরাং উপরোক্ত সমস্ত ইনস্টল করা প্যাকেজ তালিকাবদ্ধ করতে dpkg কে জিজ্ঞাসা করে এবং তারপরে আমি কেবল তাদের জন্য গ্রেপ করি যাদের নামে মাইএসকিএল রয়েছে।


3
dpkg -l "*mysql*"এছাড়াও কাজ করে এবং আউটপুট মধ্যে ব্যাখ্যামূলক লাইন লুকায় না।
ফিলিপ উইন্ডার

dpkg -l "*mysql*"(বা dpkg -l '*mysql*') প্রতিটি প্যাকেজ টার্মিনাল উইন্ডোর এক লাইনে ফিট করার জন্য আউটপুটটির বিশেষ বিন্যাসও তৈরি করে (গ্রেপ দেয় না)। এবং এই ফর্মটি আপনাকে ওয়াইল্ডকার্ড ফর্ম্যাট (উপসর্গ বা প্রত্যয়) চয়ন করার অনুমতি দেয় এবং আদৌ ওয়াইল্ডকার্ড ব্যবহার করতে হবে (গ্রেপের তুলনায়)। তবে
গ্রেপ


6

আপনি অপসারণ ব্যবহার করতে পারেন। এটি কেবলমাত্র অ-সু-পাঠযোগ্য অ্যাক্সেস সরবরাহ করে।

এছাড়াও, dpkg -s <package name>একটি প্যাকেজ সম্পর্কিত প্রচুর বিবরণ সরবরাহ করে। যেমন "

userme:~$ dpkg-query -s sl
Package: sl
Status: unknown ok not-installed
Priority: optional
Section: games

এটি ঠিক হিসাবে উপলব্ধ dpkg -s। এবং বিপরীতক্রমে, dpkg-query -lহিসাবে কাজ করে ঠিক যেমন ভাল dpkg -lবাdpkg --list
belacqua

4

আপনি dpkg-query -s <package> 2>/dev/null | grep -q ^"Status: install ok installed"$ স্ক্রিপ্টগুলিতে ব্যবহার করতে পারেন , যেহেতু এটি <package>ইনস্টল না করা হলে প্রস্থান কোড 1 , এবং ইনস্টল করা থাকলে 0 টি প্রদান করে <package>


4
সতর্কতা অবলম্বন করুন : যদি dpkg -sফেরত আসে 0তবে এর অর্থ এই নয় যে প্যাকেজটি পুরোপুরি / সঠিকভাবে ইনস্টল করা আছে। প্যাকেজটি অবস্থায় থাকলে বা অবস্থায় থাকলেও dpkg -sফিরে আসে (এবং আমি এটি অনুমানও করি তবে আমি এটি চেক করি নি)। এর [মানুষ পৃষ্ঠা দেখুন ( manpages.ubuntu.com/manpages/oneiric/man1/dpkg.1.html আরও "ইনকমপ্লিট" রাজ্যের জন্য)। 0half-configuredconfig-fileshalf-installeddpkg

1
@ ইগনিটার, ভাল পয়েন্ট। আমার উত্তরটি ভুল ছিল। প্যাকেজ এমনকি মুছে ফেলা যেতে পারে, কিন্তু শুদ্ধ না। সুতরাং আমি মনে করি আপনাকে পরীক্ষা করার জন্য আউটপুট পরীক্ষা করতে হবে, প্যাকেজটি ইনস্টল করা আছে কি না।
জার্নো

2
আমি উত্তর সম্পাদনা করেছি। এখন এটি dpkg- কোয়েরি আউটপুট উপর নির্ভর করে। এই সমাধানটি কতটা পোর্টেবল তা আমি জানি না; উদাহরণস্বরূপ, পাঠ্যটি কোনও সিস্টেমে অন্য ভাষায় প্রদর্শিত হতে পারে?
জার্নো

2

সহজ সমাধান:

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

apt list <package>

দেখুন man aptআরও তথ্যের জন্য।


1
এবং apt showআরও তথ্যের জন্য
wjandrea

0

dpkg -s প্রোগ্রাম্যাটিক ব্যবহার

প্যাকেজগুলির কোনও ইনস্টল না করা থাকলে dpkg -sস্থিতিশীলতার সাথে প্রস্থান করার সাথে সাথে এটি পছন্দ করে 1তোলে এটি স্বয়ংক্রিয়ভাবে সহজ করে তোলে:

pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
  sudo apt-get install $pkgs
fi

আরো দেখুন:

উবুন্টু 18.10 এ পরীক্ষা করা হয়েছে।


0

শেল স্ক্রিপ্টগুলিতে বর্ণ হিসাবে নির্দিষ্ট মান ব্যবহারের উদাহরণ (যেমন test.sh)

#!/bin/sh
PACKAGE="${1}"
INSTALLED=$(dpkg -l | grep ${PACKAGE} >/dev/null && echo "yes" || echo "no")

echo "${PACKAGE} is installed ... ${INSTALLED}"

এটি কার্যকর করার যোগ্য করুন এবং এর সাথে শুরু করুন:

test.sh openssh-server

অথবা আপনার স্ক্রিপ্টগুলিতে যা যা চান তা করুন


0

আপনার দ্বারা মুদ্রিত স্থিতিটি পরীক্ষা করা দরকার dpkg -l, উদাহরণস্বরূপ:

$ dpkg -l firefox-esr vim winff
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version                 Architecture            Description
+++-====================================-=======================-=======================-=============================================================================
hi  firefox-esr                          52.9.0esr+build2-0ubunt amd64                   Safe and easy web browser from Mozilla
ii  vim                                  2:8.1.1198-0york0~14.04 amd64                   Vi IMproved - enhanced vi editor
rc  winff                                1.5.3-3                 all                     graphical video and audio batch converter using ffmpeg or avconv

এখানে উভয়ই ইনস্টলড vimএবং firefox-esrইনস্টলড, সুতরাং আপনি টাইপ করতে পারেন:

$ dpkg -l firefox-esr | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is installed.
$ dpkg -l vim | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is installed.
$ dpkg -l winff | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is NOT installed.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.