एपीटी (सॉफ्टवेयर)

उन्नत पैकग टूल, या एपीटी, एक मुक्त सॉफ्टवेयर उपयोक्‍ता अंतरापृष्ठ है जो डेबियन और डेबियन-आधारित लिनक्स वितरण पर सॉफ्टवेयर की अधिष्ठापना और रिमूवल को हैंडल करने के लिए कोर लाइब्रेरी के साथ काम करता है। एपीटी पूर्व अनुभाषक फ़ाइलों से या स्रोत कोड अनुभाषण करके सॉफ़्टवेयर पैकगों की पुनर्प्राप्ति (रिट्रीवल), विन्यास और अधिष्ठापन को स्वचालित करके यूनिक्स-जैसे कंप्यूटर तंत्र पर सॉफ़्टवेयर प्रबंधन की प्रक्रिया को सरल बनाता है।

उपयोग
एपीटी apt नामक पैकग में वितरित टूल्स का एक संग्रह है। एपीटी का एक महत्वपूर्ण भाग फ़ंक्शंस की सी++ लाइब्रेरी में परिभाषित किया गया है; एपीटी में पैकग से डीलिंग (सम्पर्क) के लिए कमांड-लाइन प्रोग्राम भी सम्मिलित हैं, जो लाइब्रेरी का उपयोग करते हैं। ऐसे तीन प्रोग्राम,   और  हैं | वे आमतौर पर उदाहरणों में उपयोग किए जाते हैं क्योंकि वे सरल और बहुव्यापी हैं। apt पैकग सभी उपस्थित डेबियन मोचन में "महत्वपूर्ण" वरीयता का है, और इसलिए इसे डिफ़ॉल्ट डेबियन अधिष्ठापन में सम्मिलित किया गया है। एपीटी को डीपीकेजी का अग्रांत माना जा सकता है, जो पुराने डीसेलेक्ट अग्रांत की तुलना में अधिक उपयोगी है। जबकि   अलग-अलग पैकग पर क्रिया करता है, एपीटी उनके मध्य संबंधों (विशेष रूप से निर्भरता) का प्रबंधन करता है, साथ ही उच्च-स्तरीय संस्करण निर्णयों (मोचन ट्रैकिंग और संस्करण पिनिंग) की सोर्सिंग और प्रबंधन भी करता है।

एपीटी को अधिकतर डेबियन की उत्तम विशेषताओं में से एक माना जाता है,   जिसका श्रेय डेबियन डेवलपर्स डेबियन की पॉलिसी में सख्त गुणवत्ता नियंत्रण को देते हैं।

एपीटी की एक प्रमुख विशेषता यह है कि वह  को कैसे कॉल करता है - यह अधिष्ठापित या हटाए जाने वाले पैकगों की सूची को टोपोलॉजिकल शाटन करता है और सबसे अच्छे संभव अनुक्रम में   को कॉल करता है। कुछ स्थितियों में, यह   के  विकल्पों का उपयोग करता है। हालाँकि यह केवल तभी ऐसा करता है जब यह परिकलन करने में असमर्थ होता है कि उस कारण से कैसे बचा जाए जिसके लिए dpkg को अत्यावश्यक क्रिया की आवश्यकता होती है।

सॉफ्टवेयर अधिष्ठापन करना
उपयोक्ता एक या अधिक पैकग अधिष्ठापित करने का संकेत देता है। प्रत्येक पैकग का नाम पैकग के नाम भाग के रूप में दर्शाया गया है, पूर्ण प्रकार से योग्य फ़ाइल नाम नहीं है (उदाहरण के लिए, डेबियन तंत्र में,  प्रदान किया गया तर्क होगा,  नहीं होगा) | विशेष रूप से, एपीटी स्वचालित रूप से उन पैकगों को प्राप्त और अधिष्ठापित करता है जिन पर संकेतित पैकग निर्भर करता है (यदि आवश्यक हो)। यह APT-आधारित पैकगप्रबंधन प्रणालियों की एक मूल विशिष्ट विशेषता थी, क्योंकि यह लापता निर्भरता, एक प्रकार की निर्भरता नरक के कारण अधिष्ठापनविफलता से बचाती थी।

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

APT, apt-get की विरोध समाधान प्रणाली द्वारा लिए गए निर्णयों को ओवरराइड करने के लिए अन्य कमांड विकल्प प्रदान करता है। एक विकल्प पैकगके किसी विशेष संस्करण को बाध्य करना है। यह एक पैकगको डाउनग्रेड कर सकता है और निर्भर सॉफ़्टवेयर को निष्क्रिय कर सकता है, इसलिए उपयोक्‍ताको सावधान रहना चाहिए।

अंततः  तंत्र उपयोक्‍ताको अलग-अलग पैकेजों के लिए एक वैकल्पिक अधिष्ठापननीति बनाने की अनुमति देता है।

उपयोक्‍ताPOSIX नियमित अभिव्यक्ति  का उपयोग करके पैकगनिर्दिष्ट कर सकता है।

एपीटी पैकेजों की अपनी कैश्ड सूची खोजता है और उन निर्भरताओं को सूचीबद्ध करता है जिन्हें स्थापित या अद्यतन किया जाना चाहिए।

एपीटी स्वचालित रूप से निर्भरताओं को पुनः प्राप्त, कॉन्फ़िगर और स्थापित करता है।

dpkg आस्थगित क्रियाओं का उपचार है।

अपडेट, अपग्रेड और डिस्ट-अपग्रेड
के उपयोग के तरीके एपीटी और  स्थापित पैकेजों को अद्यतन करने की सुविधा में सम्मिलित हैं:
 * पैकगअनुक्रमणिका फ़ाइलों को उनके स्रोतों से पुन: सिंक्रनाइज़ करने के लिए उपयोग किया जाता है। उपलब्ध पैकेजों की सूची निर्दिष्ट स्थान (स्थानों) से प्राप्त की जाती है . उदाहरण के लिए, डेबियन आर्काइव का उपयोग करते समय, यह कमांड   फाइलें, ताकि नए और अद्यतन पैकेजों के बारे में जानकारी उपलब्ध हो सके।
 * में वर्णित स्रोतों से सिस्टम पर वर्तमान में स्थापित सभी पैकेजों के नवीनतम संस्करणों को स्थापित करने के लिए उपयोग किया जाता है . वर्तमान में उपलब्ध नए संस्करणों के साथ संस्थापित पैकेजों को पुनः प्राप्त और उन्नत किया जाता है; किसी भी परिस्थिति में वर्तमान में संस्थापित संकुल को हटाया नहीं गया है, या पहले से अधिष्ठापित संकुल को पुनर्प्राप्त और संस्थापित नहीं किया गया है। वर्तमान में स्थापित संकुल के नए संस्करण जिन्हें किसी अन्य पैकगकी अधिष्ठापनस्थिति को बदले बिना उन्नत नहीं किया जा सकता है, उनके वर्तमान संस्करण पर छोड़ दिया जाएगा।
 * और , का कार्य करने के अलावा  , संकुल के नए संस्करणों के साथ बदलती निर्भरता को भी समझदारी से संभालता है; एपीटी और   एक स्मार्ट संघर्ष समाधान प्रणाली है, और यदि आवश्यक हो तो कम महत्वपूर्ण पैकेजों की कीमत पर सबसे महत्वपूर्ण पैकेजों को अपग्रेड करने का प्रयास करेंगे।   e> फ़ाइल में उन स्थानों की सूची होती है जहाँ से वांछित पैकगफ़ाइलों को पुनः प्राप्त करना है।  योग्यता (सॉफ्टवेयर)  में एक स्मार्ट है   फीचर कहा जाता है.

कॉन्फ़िगरेशन और फ़ाइलें
एपीटी एपीटी कॉन्फ़िगरेशन फ़ोल्डर और फ़ाइलें सम्मिलित हैं।

एपीटी कॉन्फ़िगरेशन क्वेरी प्रोग्राम है।  विन्यास दर्शाता है।

फ़ाइलें

 * : पैकगलाने के लिए स्थान।
 * : अतिरिक्त स्रोत सूची के टुकड़े।
 * : एपीटी कॉन्फ़िगरेशन फ़ाइल।
 * : एपीटी कॉन्फ़िगरेशन फ़ाइल के टुकड़े।
 * : संस्करण वरीयता फ़ाइलों के साथ निर्देशिका। यह वह जगह है जहां #एपीटी पिनिंग निर्दिष्ट है, यानी एक अलग स्रोत से या वितरण के एक अलग संस्करण से कुछ पैकगप्राप्त करने की प्राथमिकता।
 * : पुनर्प्राप्त पैकगफ़ाइलों के लिए संग्रहण क्षेत्र।
 * : पारगमन में पैकगफ़ाइलों के लिए भंडारण क्षेत्र।
 * : निर्दिष्ट प्रत्येक पैकगसंसाधन के लिए राज्य की जानकारी के लिए भंडारण क्षेत्र
 * : पारगमन में राज्य की जानकारी के लिए भंडारण क्षेत्र।

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

नेटवर्क रिपॉजिटरी के अलावा, कॉम्पैक्ट डिस्क और अन्य स्टोरेज मीडिया (USB कीड्राइव, हार्ड डिस्क ...) का उपयोग करके भी उपयोग किया जा सकता है या जोड़ना   प्रकार स्रोत सूची फ़ाइल में।   सीडी-रोम के अलावा एक फ़ोल्डर निर्दिष्ट कर सकते हैं, का उपयोग कर   विकल्प (अर्थात हार्ड डिस्क या USB कीड्राइव)। डाउनलोड के लिए उपलब्ध डेबियन सीडी में डेबियन रिपॉजिटरी हैं। यह गैर-नेटवर्क वाली मशीनों को अपग्रेड करने की अनुमति देता है। कोई भी प्रयोग कर सकता है.

समस्या तब प्रकट हो सकती है जब कई स्रोत समान पैकगप्रदान करते हैं। ऐसे संभावित परस्पर विरोधी स्रोत वाले सिस्टम एपीटी पिनिंग का उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि किन स्रोतों को प्राथमिकता दी जानी चाहिए।

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

ऐसा करने के लिए, एपीटी की वरीयता फ़ाइल में पिन संशोधित किया जाना चाहिए, हालांकि ग्राफिकल फ्रंट-एंड अक्सर पिनिंग को सरल बनाते हैं।

फ्रंट-एंड्स
कई अन्य फ्रंटएंड और बैकएंड | एपीटी के फ्रंट-एंड मौजूद हैं, जो अधिक उन्नत इंस्टॉलेशन फ़ंक्शंस और अधिक सहज ज्ञान युक्त इंटरफेस प्रदान करते हैं। इसमे सम्मिलित है:
 * सिनैप्टिक (सॉफ्टवेयर), एक जीटीके ग्राफिकल यूज़र अंतरापृष्ठ
 * उबंटू सॉफ्टवेयर सेंटर, उबंटू परियोजना द्वारा विकसित जीटीके ग्राफिकल यूजर इंटरफेस
 * एप्टीट्यूड (सॉफ्टवेयर), कमांड लाइन इंटरफेस  के साथ एक कंसोल क्लाइंट और ncurses- आधारित टेक्स्ट-आधारित यूजर इंटरफेस इंटरफेस
 * केपैकेज, कहाँ  का हिस्सा
 * निपुण पैकगमैनेजर, केडीई के लिए ग्राफिकल यूजर इंटरफेस (डिब, आरपीएम, बीएसडी)
 * पैकेजकिट, एक डी-बस फ़्रंटएंड, जिसे freedesktop.org द्वारा अनुरक्षित किया जाता है, GNOME सॉफ़्टवेयर और KDE डिस्कवर को शक्ति प्रदान करता है।
 * GDebi, Ubuntu के लिए प्रायोजित एक GTK-आधारित टूल। (एक क्यूटी संस्करण भी है, जो उबंटू रिपॉजिटरी में gdebi-kde के रूप में उपलब्ध है।)
 * apt-cdrom, एपीटी की उपलब्ध रिपॉजिटरी की सूची में एक नया CDROM जोड़ने का एक तरीका (sources.lists)। एपीटी सिस्टम में सीडी जोड़ने के लिए apt-cdrom का उपयोग करना आवश्यक है, यह हाथ से नहीं किया जा सकता है।
 * apt-zip, हटाने योग्य मीडिया, विशेष रूप से उ स बी फ्लैश ड्राइव के साथ एपीटी का उपयोग करने का एक तरीका।
 * aptURL, एक उबंटू सॉफ्टवेयर पैकगजो एंड-यूज़र एप्लिकेशन को ब्राउज़र के माध्यम से सिंगल-क्लिक के साथ इंस्टॉल करने में सक्षम बनाता है।
 * Cydia, एपीटी पर आधारित आईओएस जेलब्रेकिंग के लिए एक पैकगमैनेजर (टेलीस्फोरियो प्रोजेक्ट के हिस्से के रूप में iOS में पोर्ट किया गया)।
 * Sileo, Cydia की तरह, एपीटी के नए संस्करणों के आधार पर जेलब्रेक iOS के लिए एक पैकगमैनेजर (Electra टीम द्वारा iOS में पोर्ट किया गया)
 * gnome-apt, एक GTK/GNOME-विजेट-आधारित ग्राफिकल फ्रंट-एंड। कहर पेनिंगटन द्वारा विकसित
 * म्यूऑन डिस्कवर (पिछला म्यूऑन सॉफ्टवेयर सेंटर), एक क्यूटी-आधारित ग्राफिकल यूजर इंटरफेस
 * Hildon एप्लिकेशन मैनेजर (Maemo एप्लिकेशन), एक Maemo फ्रंट-एंड
 * apticron, सिस्टम एडमिनिस्ट्रेटर (sysadmin) को लंबित अद्यतनों की ईमेल सूचनाओं को cron के माध्यम से चलाने के लिए डिज़ाइन की गई सेवा।
 * एपीटी डेमन, एक फ्रंट-एंड जो डेमॉन (कंप्यूटिंग) के रूप में चलता है, जो उपयोगकर्ताओं को पोलकिट के माध्यम से सॉफ़्टवेयर स्थापित करने की अनुमति देता है और बदले में उबंटू सॉफ्टवेयर सेंटर (लिनक्स टकसाल द्वारा लिनक्स मिंट # सॉफ्टवेयर के साथ) द्वारा उपयोग किया जाने वाला ढांचा है।
 * पैकगइंस्टॉलर, एमएक्स लिनक्स का हिस्सा।
 * Apt-offline: सीधे इंटरनेट कनेक्शन का उपयोग किए बिना किसी भी डेबियन-प्रकार लिनक्स इंस्टॉलेशन में उपलब्ध गैर-कंटेनरीकृत परिवर्तन करने का एक सुविधाजनक तरीका। हालाँकि, एक अस्थायी प्रत्यक्ष कनेक्शन की आवश्यकता हो सकती है, जैसे कि कुछ प्रासंगिक प्रकार के लिनक्स पर Apt-offline स्थापित करना, और Ubuntu#Package_Archives को स्रोत-सूची में जोड़ना।

एपीटी फ्रंट-एंड कर सकते हैं:
 * नए पैकेजों की खोज करें;
 * अपग्रेड पैकेज;
 * संकुल स्थापित करें या हटाएं और
 * पूरे सिस्टम को एक नई रिलीज में अपग्रेड करें।

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

इतिहास
मूल प्रयास जिसके कारण हुआ  कार्यक्रम था   प्रतिस्थापन परियोजना को उसके कोडनेम देवता के नाम से जाना जाता है। इस परियोजना को 1997 में उस समय डेबियन रिलीज़ मैनेजर ब्रायन व्हाइट द्वारा कमीशन किया गया था। का पहला कार्यात्मक संस्करण   बुलाया गया   और केवल मुख्य पुस्तकालय कार्यों के लिए एक परीक्षण कार्यक्रम होने का इरादा था जो नए यूजर इंटरफेस (यूआई) को रेखांकित करेगा। एपीटी का अधिकांश मूल विकास इंटरनेट रिले चैट (IRC) पर किया गया था, इसलिए रिकॉर्ड खो गए हैं। 'देवता निर्माण टीम' मेलिंग सूची संग्रह में केवल प्रमुख हाइलाइट्स सम्मिलित हैं।

नाम की धार्मिक प्रकृति पर चिंताओं के कारण 'देवता' नाम को परियोजना के आधिकारिक नाम के रूप में छोड़ दिया गया था। काफी आंतरिक और सार्वजनिक चर्चा के बाद अंततः एपीटी नाम तय किया गया। अंततः आईआरसी पर नाम प्रस्तावित किया गया, स्वीकार किया गया और फिर मेलिंग सूचियों पर अंतिम रूप दिया गया। एपीटी को 1998 में पेश किया गया था और मूल परीक्षण बिल्ड IRC पर परिचालित किए गए थे। पहला डेबियन संस्करण जिसमें यह सम्मिलित था, डेबियन 2.1 था, जो 9 मार्च 1999 को जारी किया गया था। अंत में देवता परियोजना का मूल लक्ष्य की जगह  यूजर इंटरफेस विफल रहा। प्रोजेक्ट के यूजर इंटरफेस हिस्से पर काम छोड़ दिया गया था (यूजर इंटरफेस निर्देशिकाओं को समवर्ती संस्करण सिस्टम से हटा दिया गया था) के पहले सार्वजनिक रिलीज के बाद. एपीटी के रूप में प्रतिक्रिया  विधि और एक कमांड लाइन उपयोगिता इतनी महान और सकारात्मक थी कि सभी विकास प्रयास उपकरण को बनाए रखने और सुधारने पर केंद्रित थे। यह बहुत बाद तक नहीं था कि कई स्वतंत्र लोगों ने शीर्ष पर यूजर इंटरफेस का निर्माण किया.

आखिरकार, एक नई टीम ने परियोजना को चुना, नई सुविधाओं का निर्माण शुरू किया और एपीटी का संस्करण 0.6 जारी किया, जिसने पैकगरिपॉजिटरी को प्रमाणित करने के लिए मजबूत जीएनयू प्राइवेसी गार्ड अंगुली का हस्ताक्षर  का उपयोग करते हुए सिक्योर एपीटी फीचर पेश किया।

वेरिएंट
एपीटी मूल रूप से डेबियन के साथ काम करने के लिए डीपीकेजी के लिए फ्रंट-एंड के रूप में डिजाइन किया गया था  संकुल। आरपीएम पैकगमैनेजर सिस्टम के साथ काम करने के लिए संशोधित एपीटी का एक संस्करण APT-RPM के रूप में जारी किया गया था। फ़िंक (सॉफ़्टवेयर) प्रोजेक्ट ने अपने कुछ पैकगप्रबंधन कार्यों के लिए एपीटी को macOS में पोर्ट किया है, और एपीटी OpenSolaris में भी उपलब्ध है।

उपयुक्त-फ़ाइल
apt-file एक कमांड है, जिसे एपीटी से अलग पैक किया गया है, यह पता लगाने के लिए कि किस पैकगमें एक विशिष्ट फ़ाइल सम्मिलित है, या रिमोट रिपॉजिटरी पर पैकगमें सम्मिलित सभी फाइलों को सूचीबद्ध करने के लिए।

यह भी देखें

 * एलियन (फ़ाइल कनवर्टर)
 * ऐपस्ट्रीम
 * एपीटीओएनसीडी
 * जीएनयू गुइक्स
 * एक चेहरा
 * सॉफ्टवेयर पैकगप्रबंधन प्रणालियों की सूची

बाहरी संबंध

 * एपीटी HOWTO
 * एपीटी Tutorial
 * Chapter 2. Debian package management - Debian Reference
 * Chapter 2. Debian package management - Debian Reference