apt-cache तुमच्या VPN पॅकेजसाठी स्थापित (काहीही नाही) का दाखवते
स्थापित (काहीही नाही) म्हणजे VPN पॅकेज स्थापित नाही, असे नाही की ते गहाळ आहे। स्रोत संपादित करण्यापूर्वी उमेदवार, पिन आणि आर्किटेक्चर ओळी वाचा।
Installed: (none) असे नोंदवणारे VPN पॅकेज गहाळ नाही; ते फक्त स्थापित नाही। तुम्ही ते स्थापित करू शकता का हे ठरवणारी ओळ Candidate आहे, जी APT इंडेक्स, suite नाव, आर्किटेक्चर आणि लागू असलेल्या कोणत्याही पिनिंग नियमांवरून काढते। गहाळ झालेल्या VPN पॅकेजबद्दलचे बहुतेक अहवाल पॅकेजिंग समस्या नसून उमेदवाराची समस्या असल्याचे दिसून येते। एकाही स्रोत नोंदीला स्पर्श करण्यापूर्वी दोन्ही ओळी वाचा।
मी प्रथम उमेदवार तपासतो कारण त्यासाठी एकच आदेश लागतो आणि नेहमीच्या अर्ध्या अंदाजांना वगळते।
apt-cache policy चे आउटपुट तुम्हाला काय सांगते
apt-cache policy स्थानिक पॅकेज कॅशे वाचते, नेटवर्क नाही। ते स्थापित आवृत्ती, उमेदवार आवृत्ती आणि पॅकेज देणाऱ्या प्रत्येक इंडेक्सचे सारणी त्याला जोडलेल्या प्राधान्यासह छापते।
apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpnउमेदवार म्हणजे APT आता निवडेल अशी आवृत्ती। madison प्रत्येक स्रोत त्याच्या प्राधान्यासह काय देतो हे सूचीबद्ध करते, आणि अशाच प्रकारे इंडेक्समध्ये असूनही पिन स्पर्धा हरलेले पॅकेज तुम्ही ओळखता। apt-cache पुस्तिका दोन्हींचे कॅशे वाचन असे वर्णन करते, त्यामुळे यापैकी कोणीही आरसा या क्षणी पोहोचण्यायोग्य असल्याचे सिद्ध करत नाही।
उमेदवार ओळ रिकामी असल्यास किंवा (none) दाखवल्यास, संरचित स्रोतांमध्ये या प्रणालीसाठी, ती जशी संरचित आहे तशी, काहीही पात्र नाही।
उमेदवार अदृश्य होण्याची चार कारणे
प्रत्यक्षात कारण जवळजवळ नेहमी चारपैकी एक असते, आणि प्रत्येकावर वेगळा उपाय आहे।
तुमच्या स्रोतांमधील suite नाव पॅकेज ज्या वितरणासाठी तयार झाले त्याच्याशी जुळले पाहिजे। trixie आरशाकडे निर्देशित Debian bookworm प्रणाली, किंवा अपग्रेडदरम्यान sources.list.d फाइलमध्ये नाव बदललेली Ubuntu आवृत्ती, फक्त दुसऱ्या suite मध्ये असलेल्या पॅकेजसाठी काहीही सोडवत नाही। प्रत्येक नोंदीतील suite फील्डशी lsb_release -cs ची तुलना करा।
APT फक्त dpkg ला माहीत असलेल्या आर्किटेक्चरसाठी तयार केलेले पॅकेज पाहते। 32-बिट कंटेनर, arm64 प्रतिमा किंवा फक्त amd64 साठी पाठवले जाणारे पॅकेज मागणारी Raspberry Pi स्थापना त्रुटी संदेशाऐवजी रिकामा उमेदवार मिळवते। dpkg --print-architecture आणि dpkg --print-foreign-architectures तुम्ही प्रत्यक्षात कोणत्या संचात आहात ते सांगतात।
घटकही महत्त्वाचे आहेत। फक्त main सक्रिय असताना contrib किंवा non-free मधील पॅकेज अदृश्य असते, आणि Ubuntu चे universe तसेच वागते। इंडेक्स आहे आणि पॅकेज त्यात आहे; फक्त तुमची सक्रिय घटकांची यादी त्याचा समावेश करत नाही।
पिनिंग हे शांत कारण आहे। /etc/apt/preferences.d मधील फाइल पॅकेजला स्थापना मर्यादेखाली मर्यादित करू शकते, आणि मग पूर्णपणे चांगला उमेदवार आउटपुटमधून अदृश्य होतो, तर इंडेक्स ते अजूनही सूचीबद्ध करत असतो। policy प्रत्येक स्रोताच्या पुढे प्राधान्ये छापत असल्याने, प्रत्येक स्रोतावर कमी पिन क्रमांक असलेले पॅकेज हे सूचक आहे।
जुने इंडेक्स गहाळ पॅकेजसारखे दिसतात
कॅशे एका क्षणाचे चित्र आहे। शेवटचे apt update एका इंडेक्सवर अयशस्वी झाले असल्यास, प्रश्न जुन्या प्रतीतूनच उत्तर देत राहतात, आणि तुम्ही अपेक्षित पॅकेज त्या प्रतीत नसू शकते।
apt update प्रत्येक इंडेक्ससाठी त्रुटी छापते, त्यामुळे थेट शेवटच्या ओळीकडे स्क्रोल करण्याऐवजी त्या वाचा।
स्वाक्षरी त्रुटी, कालबाह्य release फाइल किंवा पोहोचता न येणाऱ्या आरशामुळे अयशस्वी झालेले रीफ्रेश मागील इंडेक्स त्याच्या जागी ठेवते। हे समजूतदार रचना आहे, कारण आरसा थोडा वेळ बंद असताना ते चालणारे कॅशे टिकवते। दुष्परिणाम म्हणजे रेपॉझिटरी ऑफलाइन असतानाही शोध यशस्वी होऊ शकतो। इंडेक्स शेवटचा कधी घेतला गेला हे कळण्यापूर्वी पॅकेजची अनुपस्थिती काहीही सिद्ध करत नाही असेही याचा अर्थ आहे। पॅकेजच्या नावाला दोष देण्यापूर्वी /var/lib/apt/lists अंतर्गत फाइलींच्या तारखा तपासा।
खरोखर आवश्यक पॅकेजला नाव द्या
OpenVPN एक डेमॉन आहे, आणि लोकांना सामान्यतः हवे असलेले भाग स्वतंत्र पॅकेज आहेत।
इंजिन, NetworkManager प्लगइन आणि डेस्कटॉप संपादक तीन नावांची तीन पॅकेज आहेत, आणि प्लगइनला वितरणांमध्ये नाव वेगळे असलेला GTK प्रकार आहे। apt-cache search --names-only openvpn वर्णनांऐवजी नावे आणि दिलेली नावे जुळवते, आणि त्या वस्तूचे नाव अंदाजे माहीत असताना तुम्हाला हेच हवे असते।
नाव खरोखर अज्ञात असल्यास, एकदा वर्णनांमध्ये शोधा, नंतर अचूक नावांकडे परत जा। दुसऱ्या वितरणातून घेतलेला -gui प्रत्यय जोडून पॅकेज आता अस्तित्वात नाही असा निष्कर्ष काढू नका।
स्रोत शेवटी बदला, नंतर व्यवहार सत्यापित करा
रेपॉझिटरी जोडल्याने तुमचे अपडेट कोण पुरवते हे बदलते, म्हणून ते तपासणीच्या सुरुवातीला नाही, शेवटी येते।
त्यापूर्वी release, आर्किटेक्चर, घटक आणि पिन स्थितीची पुष्टी करा। चारांपैकी कोणते तपासले ते लिहून ठेवा, जेणेकरून पुढील व्यक्ती संपूर्ण तपासणी पुन्हा करणार नाही। चारही बरोबर असूनही उमेदवार अजूनही नसल्यास, प्रामाणिक निष्कर्ष असा की ही आवृत्ती ते पॅकेज पाठवत नाही। उर्वरित पर्याय backport, विक्रेता पॅकेज किंवा दुसरी समर्थित आवृत्ती आहेत, आणि त्यातील प्रत्येक अंदाज नसून सुजाण निवड आहे।
उमेदवार दिसल्यावर, लागू करण्यापूर्वी अनुकरण करा: पॅकेजच्या नावासह apt-get install --simulate काय ओढले जाईल आणि काय काढले जाईल ते दाखवते। पॅकेजची उपलब्धता, स्थापना आणि कार्यरत बोगदा तीन स्वतंत्र टप्पे राहतात, आणि बोगद्याला रहदारी वाहून नेण्यापूर्वी त्याचे प्रोफाइल, क्रेडेन्शियल्स, मार्ग आणि DNS अजूनही लागतात।