आपको https://wiki.debian.org/Packaging पर नज़र डालने की ज़रूरत है - वहां पैकेजिंग ट्यूटोरियल आपको बहुत मदद करेगा, साथ ही नए अनुचर गाइड के कुछ हिस्सों को भी।
आपके प्रश्नों के क्रम में:
रिपॉजिटरी में "सूची" फाइलें हैं। जैसे।, http://http.us.debian.org/debian/dists/stretch/main/binary-amd64/Packages.xz । apt-get update
इन सूची फ़ाइलों को डाउनलोड करता है, और उन्हें स्टोर करता है /var/lib/apt/lists
। सूची फ़ाइलों में मेटाडेटा का एक गुच्छा और .deb खोजने के लिए एक रिश्तेदार URL सहित सभी पैकेजों की सूची होती है। (वे मानव पठनीय सादे पाठ फ़ाइलें हैं, ताकि आप इसे देख सकें)।
ओएस कोई फर्क नहीं पड़ता। आप इसे विंडोज पर होस्ट कर सकते हैं, अगर आप चाहते थे। (ठीक है, आपको शायद फ़ाइल नामों के साथ समस्या हो सकती है जिसे विंडोज पसंद नहीं करता है।) (# 4 और # 5 भी देखें)।
हां, यह डिबेट फ़ाइल के अंदर है। एक डिब फाइल वास्तव में एक आर्काइव (उपयोग करके ar
) है। अंदर कुछ टार फाइलें हैं; उनमें से एक (अनिवार्य रूप से) निकाला जाता है /
।
यह सिर्फ HTTP (या HTTPS, या FTP, या ... apt-get का समर्थन करता है बहुत सारे प्रोटोकॉल)। हालांकि कुछ खास नहीं। ध्यान दें कि रिलीज़ फ़ाइलें हैं, जिन पर gpg के साथ हस्ताक्षर किए गए हैं, जो अखंडता की गारंटी भी w / o HTTPS है। डेबियन दर्पण ज्यादातर HTTP का उपयोग करते हैं, HTTP का नहीं। (कुछ समर्थन HTTPS के साथ ही गोपनीयता के लिए)।
यह सिर्फ एक संरचित फाइल सिस्टम है।
एक त्वरित, उच्च-स्तरीय अवलोकन कि कैसे apt-get एक पैकेज स्रोत के साथ सहभागिता करता है:
आप अपने source.list फ़ाइल में देखने के लिए कौन से स्रोतों को कॉन्फ़िगर करते हैं। एक पंक्ति पर विचार करें जैसे:
deb http://http.us.debian.org/debian/ stretch main
deb
यह गेटिंग के लिए एक स्रोत है .deb (बाइनरी) फाइलें; फिर URL-उपसर्ग, सुइट / रिलीज़ ("खिंचाव"), और घटक ("मुख्य") है।
apt-get में आर्किटेक्चर की एक सूची है, यह dpkg से प्राप्त होता है। आइए बताते dpkg --print-architecture
है amd64
। apt-get अब URLs का निर्माण कर सकता है जो वास्तव में डाउनलोड करने वाला है, URL-उपसर्ग, शब्द "dists", सूट, घटक और आर्किटेक्चर के संयोजन से। फिर यह कुछ निश्चित फ़ाइलनामों पर टैप करता है, जैसे "Package.xz"। वह URL ऊपर (# 1 में) देता है। परिभाषित नामों / रास्तों के साथ कुछ और फाइलें हैं, जैसे रिलीज़ फ़ाइल http://http.us.debian.org/debian/dists/stretch/Release और इसके हस्ताक्षर (समान, .gpg संलग्न)। ये सभी (संभवतः-संपीड़ित) सादे-पाठ फ़ाइलें हैं। रिलीज़ फ़ाइल में अन्य फ़ाइलों के लिए चेकसम हैं apt-get डाउनलोड होने जा रहा है, जैसे Package.xz।
Package.xz फ़ाइल उस सुइट / कोडनाम / आर्किटेक्चर के सभी पैकेजों को सूचीबद्ध करती है । यह उस पथ को भी देता है जहां वह फ़ाइल स्थित है; उदाहरण के लिए pool/main/0/0ad/0ad_0.0.21-2_amd64.deb
।
जब आप किसी पैकेज को डाउनलोड करने के लिए apt-get से पूछते हैं, तो यह पैकेज डाउनलोड करने के लिए उस स्थान + आधार URL का उपयोग करता है, ताकि पैकेज http://http.us.debian.org/debian/pool/main/0/0ad पर है /0ad_0.0.21-2_amd64.deb
इसके source
बजाय अन्य दिलचस्प निर्देशिका है binary-amd64
। इसका उपयोग आपकी deb-src
प्रविष्टियों के लिए किया जाता है ; इसमें स्रोत पैकेज के बारे में जानकारी है (और अन्यथा काफी समान है)।
कुछ अन्य चीजें हैं (उनमें से सभी वैकल्पिक हैं, मेरा मानना है) जो रिपॉजिटरी का हिस्सा हो सकता है (यानी, HTTP के माध्यम से उपलब्ध है): Package.xz फ़ाइल के विभिन्न संस्करणों के बीच भिन्न होता है; पैकेज विवरणों के अनुवाद, हर इंस्टॉल करने योग्य फ़ाइल की पूरी सूची और वह किस पैकेज से संबंधित है (सामग्री-amd64.gz, उदाहरण के लिए, apt-file, apt-get द्वारा नहीं) आदि। ये संभावना आपके लिए प्रासंगिक नहीं हैं। लेकिन आप http://http.us.debian.org/debian/dists/stretch/ के आसपास ब्राउज़ करके उन्हें देख सकते हैं ; उनमें से ज्यादातर सादा पाठ फ़ाइलें हैं।
ये सभी फाइलें सादा पाठ हैं। वे, सिद्धांत रूप में, हाथ से बनाया जा सकता है। व्यवहार में, हर कोई इनमें से एक रिपॉजिटरी जेनरेशन टूल्स का उपयोग करता है । यहाँ - और मैं सावधानी बरतता हूँ कि यह एक विकल्प था जो बहुत समय पहले बना था, इसलिए पुराना हो सकता है - हम मिनी-इंस्टॉलेशन का उपयोग करते हैं। उन उपकरणों का आउटपुट साधारण फाइलें हैं या, सबसे कम, सहानुभूति हैं। जो भी वेब सर्वर आपको चाहिए, आप उन्हें rsync कर सकते हैं।