मुझे कैसे पता चलेगा कि कौन सा भंडार पैकेज से आता है?


146

क्या कोई विधि या आदेश है जो बता सकता है कि किस भंडार से एक पैकेज आ रहा है?


1
यह अस्पष्ट है। क्या आपका मतलब है: जो वर्तमान में सक्षम रिपॉजिटरी दिए गए नाम के साथ एक पैकेज प्रदान करता है, या: उस रिपॉजिटरी का उपयोग उस नाम के साथ पैकेज को स्थापित करने के लिए किया गया था जो वर्तमान में स्थापित है? (दोनों उपयोगी हैं। मैं बाद की तलाश कर रहा हूं, पूर्व की नहीं।)
रीनियर पोस्ट

जवाबों:


111

आवश्यक आदेश:

  • dpkg -s <package>- आप स्थापित है कि आप का संस्करण खोजने के लिए अनुमति देता है। ( स्रोत )
  • apt-cache showpkg <package>- उपलब्ध पैकेज के संस्करणों की एक सूची दिखाएगा। प्रत्येक संस्करण के लिए, पैकेज का स्रोत, एक इंडेक्स फ़ाइल नाम के रूप में दिया जाएगा।

यदि आप वर्तमान में स्थापित पैकेज का स्रोत ढूंढना चाहते हैं, तो आपको इसके उत्पादन की आवश्यकता होगी dpkg -s <package>। अन्यथा, आप बस द्वारा नवीनतम संस्करण आउटपुट को देख सकते हैं apt-cache showpkg <package>

उदाहरण:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

पहले कमांड से, मैं देख सकता हूं कि Liferea संस्करण 1.6.2-1ubuntu6 स्थापित है। दूसरी कमांड से, मैं देख सकता हूं कि उस संस्करण को सूचीबद्ध किया गया है /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages

बहुत ज्यादा प्रयास के बिना, मैं मान सकते हैं कि स्रोत पंक्ति है archive.ubuntu.com, ubuntu, lucid, और main

और, निश्चित रूप से, मेरी /etc/apt/sources.listनिम्नलिखित पंक्ति है।

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

मैक, आपके विस्तृत उत्तर के लिए धन्यवाद! दुर्भाग्य से यह एक unmet निर्भरता समस्या के अपने प्रारंभिक मुद्दे के साथ मेरी मदद नहीं करता है :-( मैं libqt4-opengl स्थापित करने की कोशिश कर रहा हूँ और यह कहता है: निम्नलिखित संकुल में unmet निर्भरताएँ हैं: libqt4-opengl: Depend: libqtcore4 (= 4: 4.6.2-0ubuntu5.1) लेकिन 4: 4.7.0 ~ बीटा 1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 डिपेंड करना है: libqtgui4 (= 4: 4.6.2-0ubuntu5.1) लेकिन 4: 4.7। 0 ~ बीटा 1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 स्थापित किया जाना है
dfme

यह देखना मुश्किल है कि समस्या क्या है। आपको एक नया प्रश्न खोलना चाहिए ताकि आप पूर्ण विवरण प्रदान कर सकें। यदि आप करते हैं, तो एक टिप्पणी में एक लिंक छोड़ दें। :-)
माइकल क्रेंशॉ

4
apt-cache policy <package name>(from: superuser.com/a/236605/37279 )
franzlorenzon

क्या apt-cache {showpkg, policy} वास्तव में दिखाते हैं कि एक स्थापित पैकेज कहाँ से स्थापित किया गया था , या जहाँ इसे क्वियर किया गया था , वहाँ से इसे स्थापित किया जाएगा ?
क्रोड लैंगशान

1
बाद वाला। यदि मैं आम तौर पर उबंटू trustyपैकेज स्रोतों का उपयोग करता हूं , तो अस्थायी रूप utopicसे sources.listसंस्करण 1.20ubuntu3 के संस्करण को स्थापित करने के लिए मेरे साथ जोड़ें init-system-helpersऔर फिर रेपो को फिर से मेरे पास से हटा दें sources.list, apt-cache showpkg init-system-helpersबस मूल पैकेज सूची के बारे में झूठ बोलेंगे और apt-cache policy init-system-helpersस्पष्ट रूप से बताएंगे ।
ब्लबरडाइबुल जुब

103

निम्न आदेश का उपयोग करें। इसका बेहतर आउटपुट है:

apt-cache policy <Package Name>

Ubuntu 16.04 के लिए और बाद में ऐसा करने का एक छोटा तरीका है:

apt policy <Package Name>

11
यह सही जवाब है! Mac9416 द्वारा उत्तर में आज्ञाओं को उनके आउटपुट के आधार पर थकाऊ व्याख्या + अनुमान की आवश्यकता है। के बारे में अधिक जानकारी के लिए apt-cache policyयह भी देखना superuser.com/a/236605/61370
pabouk

3
apt-cache policyअच्छा है, लेकिन कुछ बार आपको apt-cache showpkgपैकेज से एमडी 5 रकम की तुलना करने की आवश्यकता होती है। यह भी देखेंdebsums --changed
११:०५ पर गावेंको

इस policyविकल्प है जब साथ तुलना सबसे अधिक उपयोगी हैsources.list
अनंत-आदि

यह स्वीकृत उत्तर होना चाहिए! @pabouk सही है। वर्तमान में स्वीकृत एक की तुलना में यह उत्तर प्रश्न के लिए अधिक प्रासंगिक है।
हेक्सक्यूब

जैसे @ पाब्लो-बियांची ने अपने जवाब में कहा , एक और भी सरल apt policy <package-name>का उपयोग किया जा सकता है, 16.04LTS से। 2018 में 14.04LTS EOL'd हो जाने के बाद, यह उत्तर शायद नए कमांड का उपयोग करने के लिए संपादित किया गया है।
HEXcube

9

apt उबंटू में 16.04+

बगल में apt-cache policy, showpkgऔर show, अब हमारे पास एक और अधिक सरल है, उपकमांड को याद रखना आसान है: apt(क्लासिक के साथ भ्रमित न करें apt-*):

apt policy <package> 

या अधिक जानकारी के साथ विकल्प apt show <package>, "एपीटी-स्रोत:" के साथ शुरू होने वाली रेखा ।

विवरण: यह पैकेज खोज और प्रबंधन के लिए कमांड लाइन टूल प्रदान करता है और साथ ही साथ संकुल के बारे में जानकारी क्वेरी करने के लिए libapt-pkg लाइब्रेरी की सभी विशेषताओं तक निम्न-स्तरीय पहुँच प्रदान करता है। : इनमें शामिल हैं apt-get, apt-cache, apt-cdrom, apt-config, apt-key

से मूल आदेश apt --help

अन्य भी याद करने के लिए आसान subcommands:

  • apt list - पैकेज नामों के आधार पर सूची पैकेज
  • apt search - पैकेज विवरण में खोज
  • apt show - पैकेज विवरण दिखाएं
  • apt update - उपलब्ध संकुल की अद्यतन सूची
  • apt install - पैकेज स्थापित करें
  • apt remove - पैकेज निकालें
  • apt purge- संकुल और विन्यास फाइल निकालें :

    एक पैकेज को हटाने से सभी पैक किए गए डेटा को हटा दिया जाता है, लेकिन आमतौर पर छोटी (संशोधित) उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइलों को पीछे छोड़ देता है, अगर हटाने के लिए एक दुर्घटना थी। बस गलती से हटाए गए पैकेज के लिए एक इंस्टॉलेशन अनुरोध जारी करने से उस मामले में पहले की तरह ही उसका कार्य बहाल हो जाएगा। दूसरी ओर आप पहले से हटाए गए पैकेजों पर भी पर्स को कॉल करके इन बचे हुए से छुटकारा पा सकते हैं। ध्यान दें कि यह आपके घर निर्देशिका में संग्रहीत किसी भी डेटा या कॉन्फ़िगरेशन को प्रभावित नहीं करता है।

  • apt upgrade - संकुल को स्थापित / अपग्रेड करके सिस्टम को अपग्रेड करें

  • apt full-upgrade - संकुल को हटाने / स्थापित / अपग्रेड करके सिस्टम को अपग्रेड करें
  • apt edit-sources - स्रोत जानकारी फ़ाइल को संपादित करें

apt policy xxxके समान प्रतीत होता है apt-cache policy xxx, शायद यह एक टिप्पणी के बजाय होना चाहिए था। या कम से कम उल्लेख है कि अन्य स्रोतों से "अतिरिक्त रिकॉर्ड" देखने के apt showलिए -aस्विच की आवश्यकता है
Xen2050

6

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

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

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



1

यह थोड़ा अधिक सटीक है:

apt-cache show <packagename> | grep "Version:"

नवीनतम संस्करण आम तौर पर तब तक स्थापित किया जाएगा जब तक कि आपने एप-पिनिंग सेट नहीं किया है या किसी विशेष संस्करण को स्पष्ट रूप से स्थापित नहीं किया है।

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