कैसे बताएं कि उबंटू या डेबियन रिपॉजिटरी एक पैकेज क्या आता है?


168

उबंटू सहित एक डेबियन आधारित प्रणाली पर, कोई यह कैसे बता सकता है कि कौन से रिपॉजिटरी से एक पैकेज डाउनलोड किया जाएगा, वास्तव में डाउनलोड शुरू किए बिना? aptitude showऔर अनुभागapt-cache info दिखाएगा (जैसे, रूपक, आधार, ग्राफिक्स), लेकिन रिपॉजिटरी नहीं है जिसमें एक पैकेज है (जैसे, http://ppa.launchpad.net/mactel-support/ppa/ubuntu या http: // us .archive.ubuntu.com / ubuntu / )।

पैकेज स्थापित करते समय, वास्तविक रिपॉजिटरी डाउनलोड के दौरान दिखाई देती है (यह "डाउनलोडिंग से ..." एप्ट और इसी तरह के कार्यक्रमों से आउटपुट में प्रिंट होता है), लेकिन पैकेज वाले रिपॉजिटरी (या एक विशिष्ट) पर कोई कैसे जानकारी प्राप्त कर सकता है एक पैकेज का संस्करण) पहले डाउनलोड और इंस्टॉल किए बिना ?

इसके अतिरिक्त, कोई पहले से ही स्थापित पैकेज के लिए स्रोत भंडार कैसे निर्धारित कर सकता है?


1
मुझे यह एप्ट की कमियों में से एक लगता है; यह बताना आसान नहीं है कि कौन से रिपॉजिटरी पैकेज इंस्टॉलर टूल के भीतर एक निश्चित पैकेज प्रदान करता है।
19-13 को

जवाबों:


203

मैं चला apt-cache policy <package name>:

$ apt-cache policy wajig
wajig:
  Installed: 2.1
  Candidate: 2.1
  Version table:
 *** 2.1 0
        100 /var/lib/dpkg/status
     2.0.47 0
        500 file:/home/wena/.repo_bin/ squeeze/main i386 Packages
        500 ftp://ftp.is.co.za/debian/ squeeze/main i386 Packages

इसका मतलब है कि तीन wajigपैकेज हैं:

  • जो स्थापित है ( /var/lib/dpkg/status)

  • एक जो स्थानीय भंडार से उपलब्ध है ( file:/home/wena/.repo_bin/)

  • एक दूरस्थ रिपॉजिटरी ( ftp://ftp.is.co.za/debian) से उपलब्ध है , जो एक ही संस्करण ( 2.0.47 ) के रूप में होता है, जो स्थानीय रिपॉजिटरी में से एक के रूप में होता है।


इसके अतिरिक्त, apt-cache madison <package name>एक सारणीबद्ध प्रारूप में समान जानकारी प्रदर्शित करेगा।

 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe amd64 Packages
 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe Sources

लेकिन यह नहीं दिखाता है कि स्थापित पैकेज कहां से आया है, क्या यह है?
एडोब

2
@ विज्ञापन मेरे मामले में, 2.1संस्करण किसी भी भंडार से उपलब्ध नहीं है। यह स्थानीय रूप से निर्मित है।
tshepang

2
स्थापित पैकेज का संकेत क्या है? ***या /var/lib/dpkg/status?
SuB

शायद दोनो? निश्चित नहीं।
tshepang

जब पैकेज स्थापित नहीं होता है, तो apt-cache policyकहते हैं Installed: (none):।
जॉन मैकगी ने

28

अहा! जाहिर है, उचित aptआदेश नहीं है apt-cache info, लेकिन इसके बजाय apt-cache showpkg,।

$ apt-cache showpkg linux-generic
Package: linux-generic
Versions: 
2.6.31.19.32 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_karmic-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c

2.6.31.14.27 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c


Reverse Depends: 
Dependencies: 
2.6.31.19.32 - linux-image-generic (5 2.6.31.19.32) 
2.6.31.14.27 - linux-image-generic (5 2.6.31.14.27) 
Provides: 
2.6.31.19.32 - 
2.6.31.14.27 - 
Reverse Provides: 

File:पंक्ति के बाद भंडार जानकारी प्रदान करता है /var/lib/apt/lists/

नहीं है एक बग रिपोर्ट है कि aptitudeस्रोत भंडार प्रदर्शित नहीं कर सकता है, लेकिन यह वर्तमान में लगता सुविधा इच्छा सूची पर अब भी है।


यह योग्यता सुविधा अभी भी 8 साल बाद व्हिसलिस्ट पर है और मुझे नहीं पता कि यह उत्तर ( apt-cache showpkg) सही क्यों नहीं है।
सेबा ताथ

8

यह मेरे लिए काम करता है (दिखाता है कि 2vcard पैकेज कहां है):

$ grep 2vcard /var/lib/apt/lists/* | grep "Filename:"

/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-i386_Packages:Filename: pool/universe/2/2vcard/2vcard_0.5-3_all.deb

यदि आप कई संस्करण उपलब्ध हैं, तो आप संस्करणों को जांचने के लिए अतिरिक्त फ़िल्टरिंग लागू कर सकते हैं।


व्यावहारिक। मुझे आश्चर्य है कि यह जानकारी किसी भी मोर्चे के माध्यम से सुलभ नहीं है dpkg, हालांकि।
जन्म

@ इसे उपलब्ध है: superuser.com/questions/106794/…
tshepang

8

मुझे आश्चर्य है कि किसी ने उल्लेख क्यों नहीं किया aptitude। मैं इसका हर समय उपयोग करता हूं।

योग्यता है:

  • कई डेबियन-आधारित वितरण के साथ डिफ़ॉल्ट रूप से भेज दिया गया। अन्य (जैसे Ubuntu) के माध्यम से स्थापित किया जा सकता हैsudo apt install aptitude
  • प्रशासनिक विशेषाधिकारों की आवश्यकता नहीं है (कम से कम कमांड के लिए)
  • एक अच्छा ncursesजीयूआई है (लेकिन ज्यादातर समय इसके बिना उपयोग किया जाता है)
  • एक बहुत सुंदर उत्पादन प्रदान करता है। पैकेज के संस्करण दिखाने के लिए, aptitude versionsकमांड का उपयोग करें :

    me@wheezy:~$ aptitude versions kde-standard
    Package kde-standard:                        
    i A 5:77+deb7u1     stable              500
    p A 5:84            testing,unstable    130
    
  • सुपर गाय पॉवर्स नहीं है

प्रत्येक स्ट्रिंग के सामने अक्षर पैकेज की स्थिति को इंगित करता है, मुझे स्थापित किया गया है और पी को शुद्ध (या कभी स्थापित नहीं), स्थिर , परीक्षण और अस्थिरता रिपॉजिटरी परिभाषाएं हैं, अंत में संख्या एक पिन प्राथमिकता है

एक उल्लेख के लायक योग्यता के हाल के संस्करणों के बारे में एक चेतावनी: डिफ़ॉल्ट रूप से यह सभी पैकेजों को दर्शाता है, जिसमें आपके द्वारा खोजा जाने वाला नाम शामिल है, इसलिए उदाहरण के लिए, सख्त नाम से खोज करने के लिए एक रेगेक्स जादू का उपयोग करें aptitude versions ^kde-workspace$


1
अच्छा आदेश, लेकिन यह अनुरोध के अनुसार भंडार को सूचीबद्ध नहीं करता है।
bjhend


आप समझ नहीं रहे हैं। अतिरिक्त पीपीए स्थापित किए जा सकते हैं। यह जानना महत्वपूर्ण है कि क्या पैकेज ऐसे पीपीए से है। तथ्य की बात के रूप में, यही मैं अभी जानने की कोशिश कर रहा हूं - अगर यह है, तो मैं पीपीए को हटा सकता हूं, समस्याओं के जोखिम को कम कर सकता हूं।
रीइनियरिएपोस्ट

हां, आप सही हैं, versionsआप केवल दिए गए पैकेजों के उपयुक्त पिनिंग मानों की जांच कर सकते हैं, न कि संबंधित रेपो की। यह तब भी उपयोगी है जब आप अपने सभी रेपो को जानते हैं और उन्हें कैसे पिन किया जाता है।
ट्रांसलूसेंटक्लाउड

6

अफसोस की बात है, यह जानकारी पैकेज की स्थापना के दौरान दर्ज नहीं की गई है। आप एक अच्छा अनुमान लगा सकते हैं यदि भंडार अभी भी स्रोत सूची में है और भंडार में अभी भी पैकेज है:

grep -l PKG /var/lib/apt/lists/*

apt-cache showpkg रिपॉजिटरी डेटाबेस से डेटा दिखा रहा है (जो स्थापित नहीं है) तो यह grep से उसी जानकारी का दूसरा रूप है।

यहां तक ​​कि अगर आप रिपॉजिटरी और अपडेट को अक्षम करते हैं तो भी सिनैप्टिक (ओरिजिनल स्क्रीन में) नहीं बता सकता।


2

या, सनी द्वारा प्रेरित आप कोशिश कर सकते हैं:

# list installed restricted packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'restricted' && echo $i; done

# list installed multiverse packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'multiverse' && echo $i; done

ps। 100% सही नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.