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, হাতে মোছা কখনোই নয়।