Homebrew OpenVPN Connect کو ان انسٹال نہیں کر سکتا: کون سا راستہ موزوں ہے؟
ناکام cask ان انسٹال تین خرابیوں میں سے ایک ہے۔ cask کے آرٹیفیکٹ پڑھیں، ورژن کا موازنہ کریں، پھر دوبارہ کوشش، اپ گریڈ یا zap میں سے چنیں۔
تین مختلف خرابیاں ایک ہی cask غلطی کا پیغام رکھتی ہیں، اور ہر ایک کی اپنی بحالی کا راستہ ہے۔ ہو سکتا ہے انسٹال شدہ ورژن میں وینڈر کا ان انسٹالر موجود نہ ہو، کوئی معاون عمل اب بھی چل رہا ہو اور اپنی فائلیں تھامے ہوئے ہو، یا پیکیج کی رسید ڈسک پر موجود چیزوں سے مطابقت نہ رکھتی ہو۔ ان میں سے کسی ایک صورت کو بچانے والا پرانا فورم حل آپ کے پاس کون سی صورت ہے اس بارے میں کچھ نہیں بتاتا۔ cask کا اپنا ریکارڈ پڑھنا ہی یہ جاننے کا طریقہ ہے۔
ایک جیسی نظر آنے والی تین خرابیاں
غائب ان انسٹالر اس وقت غیر موجود راستے کے طور پر ظاہر ہوتا ہے جب cask اسے چلانے کی کوشش کرتا ہے۔ چلتا ہوا معاون عمل ایسی ہٹاوٹ کے طور پر ظاہر ہوتا ہے جو شروع ہو کر رک جائے، یا ایسی ایپ کے طور پر جو بند کرنے کے بعد دوبارہ نمودار ہو۔ پرانی رسید اس وقت ظاہر ہوتی ہے جب cask کا اپنا ریکارڈ اور انسٹالر کا ڈیٹا بیس اس بات پر متفق نہ ہوں کہ پروڈکٹ انسٹال ہے بھی یا نہیں۔
کچھ بھی دوبارہ آزمانے سے پہلے پہلا غلطی متن محفوظ کریں۔ دوسری کوشش اس حالت پر لکھ دیتی ہے جس نے پیغام پیدا کیا تھا، اور اصل سطر ہی وہ چیز ہے جو دیکھ بھال کرنے والے یا وینڈر کو ان صورتوں میں فرق کرنے کے لیے درکار ہے۔ اسے ایسی جگہ نقل کریں جو دوبارہ کوشش سے بچ جائے۔
اگر یہ VPN وہ کنکشن لے کر جا رہا ہے جس سے آپ کام کرتے ہیں، تو پہلے انتظام کا کوئی دوسرا راستہ تیار کریں۔ آپ کی رسائی دینے والے کلائنٹ کو ہٹانا دیکھ بھال کی ونڈو کا فیصلہ ہے، Homebrew کا نہیں۔ یہی ترتیب ناکام ان انسٹال کو حتمی کے بجائے بحال پذیر بناتی ہے۔
پڑھیں کہ cask نے واقعی کیا انسٹال کیا
Homebrew کا اپنا منظر دستیاب سب سے سستا ثبوت ہے، اور یہ کچھ نہیں بدلتا:
brew info --cask openvpn-connect
brew list --cask openvpn-connectپہلا حکم cask کا میٹا ڈیٹا اور وہ آرٹیفیکٹ چھاپتا ہے جن کا وہ انتظام کرتا ہے؛ دوسرا وہ فہرست دکھاتا ہے جو انسٹال شدہ کے طور پر درج ہے۔ کوئی بھی یہ ثابت نہیں کرتا کہ مشین پر ہر معاون عمل موجودہ ترکیب سے مطابقت رکھتا ہے، اور اسی لیے پرانی انسٹالیشن ایسے انداز میں ناکام ہو سکتی ہے جسے موجودہ cask ماخذ بیان نہیں کرتا۔ دونوں آؤٹ پٹ کو قابل جانچ دعوے کے طور پر لیں، اس بات کے حتمی الفاظ کے طور پر نہیں کہ کیا موجود ہے۔
راستہ چننے سے پہلے درج شدہ ورژن کا ایپ کے اپنے ورژن سے موازنہ کریں۔ عدم مطابقت کسی گہری خرابی کے بغیر غائب ان انسٹالر کی وضاحت کرتی ہے، اور جواب cask کے متوقع ورژن پر اپ گریڈ ہے، ہاتھ سے صفائی نہیں۔
zap کیا اضافہ کرتا ہے، اور اس کی قیمت کیا ہے
cask کا ان انسٹال حصہ ان آرٹیفیکٹ سے نمٹتا ہے جو ترکیب کا اعلان کرتی ہے: ایپ بند کرنا، لانچ جابز اتارنا، لاگ ان آئٹم ہٹانا، پیکیج رسیدیں بھلانا اور ایپ بنڈل مٹانا۔ یہی عام راستہ ہے، اور یہی وہ ہے جسے کام کرنا چاہیے۔
--zap ایک مختلف درخواست ہے۔ یہ Homebrew سے کہتا ہے کہ صارف کی ترجیحات اور مشترکہ وسائل بھی ہٹا دے، اور دستاویزات خبردار کرتی ہیں کہ یہ دوسرے سافٹ ویئر پر اثر ڈال سکتا ہے۔ OpenVPN Connect کے cask میں zap حصہ openvpn.keychain-db کو مٹاتا ہے اور صارف کے ایپ سپورٹ ڈیٹا کو خالی کرتا ہے، یعنی محفوظ اسناد اور کنکشن پروفائل بھی اس کے ساتھ چلے جاتے ہیں۔ اگر پروفائل کسی تنظیم سے آیا ہے تو اس راستے کو چننے سے پہلے تصدیق کریں کہ آپ دوبارہ اندراج کر سکتے ہیں۔
| Condition | Path that fits | Path to avoid |
|---|---|---|
| Uninstaller path missing after an OS upgrade | Upgrade the cask to the version matching the app | Hand-writing a replacement script |
| Helper still running during removal | Quit the app and its menu agent, then retry | Deleting the bundle while the helper runs |
| Receipt exists but files are gone | Forget the receipt with the cask's own tooling | Recursive deletion of the Caskroom entry |
| You need the machine clean and can re-enroll | Zap, after reading the stanza | Zap on a machine whose profiles you cannot rebuild |
قطعی نظر آنے والے مگر نہ ہونے والے راستے
صفر ایگزٹ کوڈ پر ختم ہونے والا جعلی remove.sh لکھنا فہرست میں بدترین انتخاب ہے۔ یہ ان انسٹال کو کامیابی کی اطلاع دینے دیتا ہے جبکہ لانچ جابز، رسیدیں اور ایپ ڈیٹا اپنی جگہ رہتے ہیں، اس لیے اگلی انسٹالیشن آدھی ہٹائی گئی پروڈکٹ اور اس کے برعکس بتانے والا ریکارڈ ورثے میں لیتی ہے۔
Caskroom ڈائریکٹری یا ایپ بنڈل کو ہاتھ سے مٹانا دوسری طرف سے ایسی ہی حالت بناتا ہے۔ فائلیں غائب ہو جاتی ہیں اور رسید رہ جاتی ہے۔ پھر ہر اگلے حکم کو ایسی مشین کے سامنے سوچنا پڑتا ہے جو اب اپنے ڈیٹا بیس سے مطابقت نہیں رکھتی۔
پوری ریپوزٹری پر brew update-reset اس سے بڑی مداخلت ہے جتنی ایک ناکام cask جائز ٹھہراتی ہے۔ یہ tap حالت سے کبھی متعلق نہ ہونے والے مسئلے کو حل کرنے کے لیے آپ کی tap حالت بدلتا ہے، اور آپ کو اس Homebrew کے بجائے کوئی اور ڈیبگ کرنے پر چھوڑ سکتا ہے جس سے آپ نے شروع کیا تھا۔
ترتیب سے فیصلہ
ترتیب سے کام کریں: cask کے درج شدہ آرٹیفیکٹ پڑھیں، ورژن کا موازنہ کریں، چلنے والا ہر جزو بند کریں، عام ان انسٹال دوبارہ آزمائیں، اور اس کے بعد ہی zap پر غور کریں۔ اگر عام راستہ پھر بھی ناکام ہو تو غلطی محفوظ کریں اور ورژن نمبروں کے ساتھ cask کے دیکھ بھال کرنے والوں یا وینڈر کے پاس لے جائیں۔
Cask Cookbook واضح طور پر کہتا ہے کہ پیکیج انسٹالرز کو پروڈکٹ کے مخصوص ان انسٹال طریقے درکار ہوتے ہیں اور zap اختیاری ہے اور مشترکہ وسائل ہٹا سکتا ہے۔ یہی ڈھانچہ فیصلے کا قاعدہ ہے: پہلے عام ان انسٹال، اسناد کی قیمت قبول کریں تو zap، ہاتھ سے مٹانا کبھی نہیں۔