मैं डेबियन में उपलब्ध (यानी अनइंस्टॉल) पैकेज की सूची कैसे प्राप्त करूं?


19

मूलतः मैं जो देख रहा हूँ वह डेबियन के बराबर है:

yum list available

मुझे यह दिखाने के लिए कि कौन से पैकेज उपलब्ध हैं (हालांकि वर्तमान में स्थापित नहीं हैं)। मुझे कुछ ऐसा चाहिए जो कंसोल से चलाया जा सके क्योंकि यह रिमोट सर्वर पर है। धन्यवाद।

जवाबों:


7

grep-dctrlऔर इसके डेरिवेटिव apt कैश फ़ाइलों को क्वेरी करने का एक शानदार तरीका प्रदान करते हैं। (आप इन उपकरणों को ubuntu पर sudo apt-get install dctrl-tools के साथ स्थापित कर सकते हैं)

उपलब्ध (लेकिन आवश्यक रूप से स्थापित नहीं) पैकेज के मामले में, आप उपयोग कर सकते हैं grep-available। उदाहरण के लिए, सभी उपलब्ध पैकेजों को सूचीबद्ध करने के लिए:

grep-available  -s Package .

संपादित करें:

aptitude सिर्फ इसे लॉन्च करके आपको Not Installed Package की सूची दिखा सकते हैं।

आप का उपयोग करके भी स्थापित नहीं संकुल की एक सूची प्राप्त कर सकते हैं aptitude:

aptitude -F "%p" search "?not(?installed)"

ध्यान दें कि नए मल्टी-आर्क पैकेज के साथ, आपको इस परिणाम में सूचीबद्ध अन्य आर्किटेक्चर के लिए पैकेज मिलेंगे। उदाहरण के लिए, मुझे मिलता है:

aptitude -F "%p" search "?not(?installed)"  | grep "^bash:"
bash:i386

मेरे पास bashपैकेज स्थापित है, लेकिन यह amd64 संस्करण है, क्योंकि मेरे OS को Ubuntu Precise के amd64 संस्करण के साथ स्थापित किया गया है। यदि आप अन्य आर्किटेक्चर के लिए इन पैकेजों को नहीं देखना चाहते हैं, तो आप उन पंक्तियों को बाहर कर सकते हैं जिनमें शामिल हैं ::

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'

धन्यवाद, लेकिन इसके साथ समस्या यह है कि मुझे अपने चुने हुए रिपॉजिटरी के लिए पूरे पैकेज सूची के माध्यम से ट्रॉल करना होगा। शायद इस तरह से समस्या का अनुमान लगाने का एक बेहतर तरीका होगा: कल्पना करें कि डेबियन पैकेज रिपॉजिटरी में सभी पैकेजों का सार्वभौमिक सेट होने के कारण मेरे सर्वर को इंगित किया गया है और वाई पैकेजों के सेट को कहा जा रहा है जिसे मैंने सर्वर पर स्थापित किया है; क्या, संक्षेप में, मुझे एक्स - वाई की तलाश है। अब, मुझे एहसास है कि मैं यह प्रोग्राम कर सकता हूं, लेकिन मुझे उम्मीद है कि डेबियन सिस्टम पर समान परिणाम प्राप्त करने के लिए अपेक्षाकृत सरल कमांड होगा।
freakwincy

बस आपका संपादित उत्तर देखा। इसके बिल्कुल मैं क्या देख रहा था! धन्यवाद।
freakwincy

पीएस मैं आपके जवाब पर मतदान करूंगा, लेकिन मैंने अभी तक पर्याप्त प्रतिष्ठा अंक अर्जित नहीं किए हैं।
freakwincy

कोई दिक्कत नहीं है। जिस तरह से ;-) द्वारा SU में आपका स्वागत है
ℝaphink

16

apt-cache पैकेज कैश को क्वेरी करने के लिए उपयोग किया जाता है:

apt-cache pkgnames | तरह
apt-cache search चीज
apt-cache search - केवल नाम की चीज

धन्यवाद, लेकिन मुझे डर है कि काम नहीं करता है। मैंने पहले कमांड द्वारा जनरेट की गई सूची की तुलना पहले से स्थापित पैकेजों की सूची के साथ की, जो मैंने इस प्रकार प्राप्त की: code"dpkg - - selections | grep '[[: space:]] इंस्टॉल करें $' | awk '{प्रिंट $ 1}' > install.txt ”और डुप्लिकेट पाया। आपके द्वारा प्रदान किए गए अन्य दो कमांड काम नहीं करेंगे क्योंकि मैं किसी विशेष पैकेज की खोज नहीं कर रहा हूं, बल्कि कोई भी पैकेज जो वर्तमान में स्थापित नहीं है।
freakwincy

2

apt-cacheइस उद्देश्य के लिए उपयोग करें :

apt-cache search package

चूंकि apt-cacheसिस्टम पर केवल पैकेज कैश का उपयोग करता है, सुनिश्चित करें कि यह कैश अप टू डेट है:

apt-get update

आप उपयोगिता का उपयोग कर सकते हैं apt-fileयदि आप उस फ़ाइल का नाम जानते हैं जिसे आप खोजना चाहते हैं; हालाँकि इसे सिस्टम में जोड़ना होगा। उदाहरण के लिए:

apt-file search somefilename

मैं apt-cacheनिम्नलिखित तरीकों में से एक का उपयोग करता हूं :

apt-cache search package | sort | grep item

(यह आपको उन चीजों को दिखाता है जो वास्तव में उनके सारांश या नामों में आइटम हैं ।)

apt-cache search thing | sort | less

(यह उस चीज़ को खोजता है जिसके साथ सुखद दृश्य के लिए इसे सॉर्ट करता है less।)


2

मेरा दृष्टिकोण डिफ़ॉल्ट रूप से स्थापित कमांड के साथ काम करना है, और यदि कोई विशेष कारण नहीं है तो अतिरिक्त पैकेज से बचें।

GNU के साथ मेरे डेबियन में इन सरल आदेशों को मारते हैं

apt list
apt list --all-versions

किसी भी चीज़ की सूची देता है (स्थापित और स्थापित नहीं)। मैं तब grep "स्थापित" या grep -v "स्थापित" के साथ परिणामों को सीमित कर सकता हूं। इसे एक या एक से अधिक पैकेज नामों (स्वीकार किए गए जंगली निशान) के साथ जोड़ा जा सकता है।

स्विच "-all- संस्करण" प्रत्येक पैकेज संस्करण (स्थिर, परीक्षण, अस्थिर, प्रयोगात्मक) के लिए आउटपुट अलग-अलग लाइनों में प्रदान करता है।

सरल "उपयुक्त सूची" केवल एक (सर्वोच्च प्राथमिकता) संस्करण देता है।


0

अपने प्रश्न को सख्ती से लेते हुए (आप स्थापित पैकेजों की सूची नहीं दिखाना चाहते हैं), उपयोग करने का प्रयास करें

(नीचे टिप्पणी के अनुसार संपादित)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

हालांकि सटीक वाक्यविन्यास के बारे में निश्चित नहीं है, जैसा कि मैं इसे विंडोज़ बॉक्स पर लिख रहा हूं और जांचने का कोई तरीका नहीं है। हो सकता है कि आप जिस चीज़ को पसंद करते हैं उसे बदलने की कोशिश करें


यह सूचियों स्थापित संकुल, नहीं की स्थापना रद्द
ℝफिंक

@ रीफिंक: क्षमा करें, मैंने इसे ठीक करने के लिए पोस्ट को संपादित किया
PPC

कोई समस्या नहीं है, लेकिन आप अभी भी उन पैकेजों को सूचीबद्ध नहीं कर रहे हैं जो स्थापित नहीं हैं। 'Ii' पैकेजों को छोड़कर (जो वास्तव में आपकी अभिव्यक्ति वास्तव में क्या करती है, आपको इसके '^ii'बजाय उपयोग करना चाहिए '[ii]'), आप उन पैकेजों पर गायब हैं जो स्थापित हैं लेकिन उदाहरण के लिए कॉन्फ़िगर नहीं किए गए हैं (जैसे iFया iHउदाहरण के लिए)।
20

@PPC: काश, यह या तो dpkg के रूप में काम नहीं करता -l केवल सूचीबद्ध पैकेजों को सूचीबद्ध करता है अर्थात सभी संकुल "ii" द्वारा पूर्वनिर्धारित होते हैं, इसलिए परिणाम को पाइप करने के लिए - इनवर्ट-मैच या -v झंडे का उपयोग करके पैदावार प्राप्त करते हैं। डैश की श्रृंखला जो कि हेडर सेपरेटर है। फिर भी धन्यवाद।
freakwincy

@ सनकी: सही है! भेजने से पहले इसे जांचने के लिए क्षमा करें (विंडोज़ पर काम करना)। मैनपेज के अनुसार, आपको सभी पैकेजों को सूचीबद्ध करने के लिए "dpkg -l '*'" का उपयोग करना चाहिए।
पीपीसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.