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 میں موجود پیکجوں کے لیے کچھ حل نہیں کرتا۔ ہر اندراج میں lsb_release -cs کا suite فیلڈ سے موازنہ کریں۔

APT صرف ان آرکیٹیکچروں کے لیے بنائے گئے پیکج دیکھتا ہے جنہیں dpkg جانتا ہے۔ 32 بٹ کنٹینر، arm64 امیج یا صرف amd64 کے لیے بھیجا جانے والا پیکج مانگنے والی Raspberry Pi تنصیب غلطی کے پیغام کی بجائے خالی امیدوار پاتی ہے۔ dpkg --print-architecture اور dpkg --print-foreign-architectures بتاتے ہیں کہ آپ اصل میں کس مجموعے میں ہیں۔

اجزاء بھی اہم ہیں۔ contrib یا non-free میں موجود پیکج اس وقت نظر نہیں آتا جب صرف main فعال ہو، اور 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 درکار ہیں۔

متعلقہ مضامین