تین مختلف خرابیاں ایک ہی 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 کو مٹاتا ہے اور صارف کے ایپ سپورٹ ڈیٹا کو خالی کرتا ہے، یعنی محفوظ اسناد اور کنکشن پروفائل بھی اس کے ساتھ چلے جاتے ہیں۔ اگر پروفائل کسی تنظیم سے آیا ہے تو اس راستے کو چننے سے پہلے تصدیق کریں کہ آپ دوبارہ اندراج کر سکتے ہیں۔

ConditionPath that fitsPath to avoid
Uninstaller path missing after an OS upgradeUpgrade the cask to the version matching the appHand-writing a replacement script
Helper still running during removalQuit the app and its menu agent, then retryDeleting the bundle while the helper runs
Receipt exists but files are goneForget the receipt with the cask's own toolingRecursive deletion of the Caskroom entry
You need the machine clean and can re-enrollZap, after reading the stanzaZap 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، ہاتھ سے مٹانا کبھی نہیں۔

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