2008-12-04 4 views
10

किसी ने लिबैप या लिपटे का इस्तेमाल संकुल सूची में किया है और डेबियन जैसी प्रणाली में पैकेज के बारे में जानकारी प्राप्त की है?पैकेज सूचीबद्ध करने और अपने इंफोस प्राप्त करने के लिए डेबियन जैसी प्रणाली में libapt (या libept) का उपयोग कैसे करें?

Libapt सब पर अच्छी तरह से प्रलेखित नहीं है, और मैं कुछ उदाहरण और libept के बारे में ट्यूटोरियल मिल गया है। किसी ने मुझे

  1. लिए सर्वोत्तम तरीकों की व्याख्या कर सकते apt-सिस्टम में हर संकुल की एक सूची प्राप्त
  2. एकल पैकेज (जैसे नाम, संस्करण, dependences, वर्णन, आदि की सूची
  3. प्राप्त के बारे में जानकारियां प्राप्त उपयुक्त आंतरिक फाइलों के साथ

कार्य सीधे एक भी पैकेज द्वारा स्थापित फ़ाइलों काफी सरल है, लेकिन मैं उपयुक्त विनिर्देशों सम्मान करने के लिए एक पुस्तकालय का उपयोग करना चाहते।

उत्तर

6

पर एक नजर डालें कैसे उपयुक्त कैश (8) लागू किया गया है। उपयुक्त के साथ स्रोत प्राप्त करने के लिए आसान है:

# apt-get source apt 

स्रोत फ़ाइल में cmdline/apt-cache.cc थेरेस एक समारोह DumpPackage() कहा जाता है जो कैश में एक नाम की फ़ाइल से जानकारी निकाल लेता है।

0

यदि आप perl का उपयोग कर रहे हैं तो सीपीएएन से डीपीकेजी :: पार्स भी है।

10

डेबियन में एक पैकेज है जो (एक API संदर्भ की तरह) कुछ दस्तावेज़ शामिल हैं libapt-pkg-doc कहा जाता है। एक बार इंस्टॉल हो जाने पर, आप इसे फ़ाइल पर एक्सेस कर सकते हैं: ///usr/share/doc/libapt-pkg-doc/html/index.xhtml।

मैं केवल अभी libapt पर एक नज़र था और यहाँ मैं अब तक क्या सीखा है है:

सभी संकुल सूची कैसे करें:

#include <apt-pkg/cachefile.h> 
#include <apt-pkg/pkgcache.h> 

int main() { 
    // _config and _system are defined in the libapt header files 
    pkgInitConfig(*_config); 
    pkgInitSystem(*_config, _system); 

    pkgCacheFile cache_file; 
    pkgCache* cache = cache_file.GetPkgCache(); 

    for (pkgCache::PkgIterator package = cache->PkgBegin(); !package.end(); package++) { 
     std::cout << package.Name() << std::endl; 
    } 

    return 0; 
} 
+0

क्या यह सभी * स्थापित * पैकेज सूचीबद्ध करता है, या यह सभी संकुल सूचीबद्ध करता है जो * स्थापना * के लिए उपलब्ध हैं? –

+1

@ थ्रोवेअक्काउंट 3 मिलियन यदि मैं सही ढंग से याद करता हूं तो यह उपलब्ध पैकेज सूचीबद्ध करता है – eyelash

-2

बस का उल्लेख है, वहाँ है wpkg जो क्षमता है डेबियन पैकेज पढ़ने और आपको सारी जानकारी देने के लिए। हालांकि, यह एपीटी या डीपीकेजी डेटाबेस के बारे में कुछ भी नहीं जानता है। यह एक .deb पढ़ने में सक्षम होगा और आप सभी जानकारी और फ़ाइलों को इसके साथ निकाल सकते हैं, सभी C++ में।

संबंधित मुद्दे