ریپو پیکیج یا VPN کلائنٹ پیکیج: پہلے کون؟
ریلیز پیکیج صرف ایک ماخذ اور ایک دستخطی کلید درج کرتا ہے۔ فیصلہ کریں کہ وینڈر کا ریپو قابلِ قدر ہے یا نہیں، پھر کلائنٹ کو الگ مرحلے کے طور پر نصب کریں۔
آپ وینڈر کا پیکیج نصب کرتے ہیں، کمانڈ صفر واپس کرتی ہے، اور پھر بھی شروع کرنے کے لیے کوئی VPN ایپلیکیشن نہیں ہے۔ ایسا تب ہوتا ہے جب آپ نے جو پیکیج نصب کیا اس نے کلائنٹ فراہم کرنے کے بجائے ریپو کنفیگر کیا، اور فرق اسی میں نظر آتا ہے کہ اس نے ڈسک پر کیا چھوڑا۔ دونوں کی ضرورت ہے یا نہیں اور کس ترتیب میں، یہ وینڈر کے نام پر نہیں بلکہ تین شرطوں پر منحصر ہے۔ نیچے کا فیصلہ ماخذ کی تشکیل، میٹا ڈیٹا کی تازہ کاری اور ایپلیکیشن کی تنصیب کو الگ ثبوتوں کے ساتھ الگ اعمال رکھتا ہے۔
ہر پیکیج اصل میں کیا بدلتا ہے
ریپو کنفیگریشن پیکیج ایک APT ماخذ اندراج لکھتا ہے، اس اندراج کا بھروسہ کردہ دستخطی کلید درآمد کرتا ہے، اور باہر نکل جاتا ہے۔ اس کا مواد /etc/apt کے تحت چند فائلیں اور ایک کلید حلہ ہے، اور چلانے کے لیے کچھ نہیں۔ کلائنٹ پیکیج ڈیمن یا ڈیسک ٹاپ ایپلیکیشن، اس کی لائبریریاں اور انحصارات فراہم کرتا ہے، اور مینو یا systemd یونٹ میں پہنچنے والی چیز یہی ہے۔
-release پر ختم ہونے والے فائل نام پہلی قسم کی طرف اشارہ کرتے ہیں، لیکن لاحقہ ایک روایت ہے، ضمانت نہیں۔ کسی پیکیج کے کردار کے بارے میں قابلِ اعتماد بیان اس کی فائل فہرست اور انحصارات ہیں، اور دونوں کچھ بھی نصب کرنے سے پہلے پڑھی جا سکتی ہیں۔ جو وینڈر اپنی پیکیجنگ کو نئے سرے سے تراشتا ہے وہ وہی فائل نام رکھتا ہے اور مواد بدلتا ہے، اس لیے دو سال پرانے تھریڈ سے کاپی کیا گیا جواب ایسے پیکیج کی وضاحت کر سکتا ہے جو اب موجود نہیں۔ آپ جو ریلیز چلاتے ہیں اس کے لیے فراہم کنندہ کی موجودہ ہدایات پڑھیں، پھر دیکھیں کہ پیکیج کیا اعلان کرتا ہے۔
اس تقسیم سے تین مراحل نکلتے ہیں: ماخذ درج کریں، اس سے پیدا ہونے والا میٹا ڈیٹا تازہ کریں، پھر ایپلیکیشن کو نام سے نصب کریں۔ Debian اور Ubuntu کی تنصیب گائیڈ انہیں الگ رکھتی ہے، اسی لیے کلائنٹ بعد کے مرحلے میں مانگا جاتا ہے، ماخذ قائم کرنے والے پیکیج کی طرف سے نہیں۔
ترتیب طے کرنے والی تین شرطیں
پہلی شرط یہ ہے کہ وینڈر آپ کے عین ڈسٹری بیوشن ریلیز کے لیے ریپو شائع کرتا ہے یا نہیں۔ ایک سوٹ کے لیے بنائی گئی ماخذ سطر دوسرے سوٹ کے انحصارات کے ساتھ حل ہو سکتی ہے اور ایسا مرکب نصب کر سکتی ہے جسے کسی نے آزما نہیں۔
دوسری یہ ہے کہ آپ کی ڈسٹری بیوشن میں کلائنٹ پہلے سے موجود ہے یا نہیں۔ جب ہو، تو ڈسٹرو پیکیج آپ کی ریلیز کی لائبریری تبدیلیوں اور سیکیورٹی اپ ڈیٹس کی پیروی کرتا ہے، جبکہ وینڈر پیکیج تیز چل سکتا ہے اور مشترکہ لائبریریوں کی اپنی نقلیں لا سکتا ہے۔
تیسری یہ ہے کہ آپ کو دراصل کون سی خصوصیات درکار ہیں۔ وینڈر کی تعمیر نئی پروٹوکول عمل درآمد یا ڈیسک ٹاپ انضمام دے سکتی ہے جو آپ کی ڈسٹری بیوشن نے پیکیج نہیں کیا، اور یہ دوسرا ماخذ قبول کرنے کی حقیقی وجہ ہے۔ اگر ڈسٹرو کی تعمیر آپ کے استعمال کو پورا کرتی ہے، تو فریقِ ثالث کا ریپو شامل کرنا بہت کم کے بدلے اپ ڈیٹ کا کام اور ایک اور بھروسے کا رشتہ خریدتا ہے۔
ماخذ سطر کے وجود میں آنے سے پہلے یہ تینوں جواب طے کریں، کیونکہ بعد میں اسے ہٹانے کا مطلب پیکیج اور اس کی کلید صاف کرنا ہے۔ طے ہونے کے بعد، وینڈر کے راستے میں ترتیب کوئی انتخاب نہیں: پہلے ماخذ، دوسرے میٹا ڈیٹا، تیسرے ایپلیکیشن، کبھی الٹا نہیں۔
دیکھیں کہ ریلیز پیکیج نے کیا چھوڑا
کچھ اور نصب کرنے سے پہلے تفصیل کی بجائے فائل فہرست پڑھیں۔ Debian خاندان کے نظاموں میں پیکیج مینی فیسٹ بتاتا ہے کہ اس نے کیا کنفیگر کیا اور کلید کہاں اتری۔
dpkg -L proton-vpn-release | grep -E 'apt|keyring'
apt-cache policy proton-vpn-gnome-desktop
grep -r protonvpn /etc/apt/sources.list.d/
پہلی سطر ماخذ فائل اور کلید حلقے کا راستہ دکھاتی ہے، دوسری سطر بتاتی ہے کہ کنفیگر شدہ ماخذ کون سا نسخہ پیش کر سکتے ہیں۔ اگر apt-cache policy کلائنٹ کے نام کے لیے کچھ نہیں چھاپتا، تو میٹا ڈیٹا کی تازہ کاری نہیں ہوئی یا ماخذ کسی دوسرے سوٹ کو نشانہ بناتا ہے۔ تیسری سطر تصدیق کرتی ہے کہ اندراج وہیں ہے جہاں APT واقعی پڑھتا ہے۔
کلید حلقے کا راستہ ماخذ سطر کے signed-by= میدان سے ملائیں۔ غلط ڈائریکٹری میں کلید غیر تصدیق شدہ ماخذ کی خرابی پیدا کرتی ہے، جو دستیاب نہ ہونے والے پیکیج سے مختلف نقص ہے۔
انحصار کی ناکامی کو الگ مرحلہ سمجھیں
ڈاؤن لوڈ شدہ .deb کو dpkg -i کے ساتھ نصب کرنا کچھ حل نہیں کرتا: یہ انحصارات جانچتا ہے، بتاتا ہے کیا غائب ہے اور پیکیج کو آدھا کنفیگر شدہ چھوڑ دیتا ہے۔ یہ متوقع رویہ ہے، خراب ڈاؤن لوڈ نہیں۔
پھر apt --fix-broken install آپ کے ماخذوں سے APT سے مستقل حالت مانگتا ہے۔ APT نہیں جانتا کہ آپ کون سا VPN چاہتے تھے، اور اس کا منصوبہ ملی قید پوری کرنے کے لیے پیکیجز ہٹا سکتا ہے۔ ہاں کہنے سے پہلے تجویز کردہ لین دین پڑھیں، اور اگر ہٹانا آپ کی ضرورت کی کسی چیز کو چھوئے تو رک جائیں۔ منصوبہ پڑھے بغیر مرمت دہرانا وہ طریقہ ہے جس سے انحصار کا چھوٹا خلا ایسا ڈیسک ٹاپ بن جاتا ہے جو پھر شروع نہیں ہوتا۔
پیکیج مینیجر کا پہلا بامعنی پیغام سنبھالیں اور عمل سے پہلے اس کی درجہ بندی کریں۔ بغیر دستخط والا ریپو، وہ پیکیج جو کنفیگر شدہ ماخذوں میں نہیں، نسخے کا تصادم، اور ایسا کلائنٹ جو شروع ہو کر مر جاتا ہے، یہ چار الگ نقائص ہیں۔
ایپلیکیشن کی تصدیق کریں، ریپو کی نہیں
تصدیق کریں کہ کلائنٹ نصب شدہ حالت تک پہنچا، پھر تصدیق کریں کہ پروگرام شروع ہوتا ہے۔ dpkg-query -W -f='${Status} ${Version}' proton-vpn-gnome-desktop کو نسخے کے ساتھ install ok installed بتانا چاہیے، اور اس کے بعد شروع نہ ہونا پیکیجنگ نہیں بلکہ ایپلیکیشن کا مسئلہ ہے۔
ریپو کے مالک اور ایپلیکیشن پیکیج کو الگ اشیاء کے طور پر درج کریں، تاکہ بعد میں ہٹانا صحیح چیز لے اور دوسری محفوظ رہے۔ جب وینڈر اپنی گائیڈ بدلے، ماخذ اندراج وہ ہے جسے آپ دوبارہ پڑھتے ہیں؛ کلائنٹ کا نام وہ ہے جسے آپ دوبارہ نصب کرتے ہیں۔