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, ਹੱਥ ਨਾਲ ਮਿਟਾਉਣਾ ਕਦੇ ਨਹੀਂ।