Homebrew tidak boleh nyahpasang OpenVPN Connect: laluan mana yang sesuai?
Nyahpasang cask yang gagal ialah satu daripada tiga kerosakan. Baca artifak cask, bandingkan versi, kemudian pilih antara cuba semula, naik taraf atau zap.
Tiga kerosakan berbeza membawa mesej ralat cask yang sama, dan setiap satu mempunyai laluan pemulihannya sendiri. Penyahpasang vendor mungkin tiada dalam versi yang dipasang, pembantu mungkin masih berjalan dan memegang failnya, atau resit pakej mungkin tidak sepadan dengan apa yang ada pada cakera. Penyelesaian forum lama yang menyelamatkan salah satu kes itu tidak memberitahu anda yang mana satu anda hadapi. Membaca rekod cask itu sendiri ialah cara untuk mengetahuinya.
Tiga kerosakan yang kelihatan serupa
Penyahpasang yang hilang muncul sebagai laluan yang tidak wujud apabila cask cuba menjalankannya. Pembantu yang hidup muncul sebagai penyingkiran yang bermula lalu tersekat, atau sebagai aplikasi yang muncul semula selepas anda menutupnya. Resit yang lapuk muncul apabila rekod cask itu sendiri dan pangkalan data pemasang tidak bersetuju sama ada produk itu dipasang sama sekali.
Simpan teks ralat pertama sebelum mencuba semula apa-apa. Percubaan kedua menimpa keadaan yang menghasilkan mesej itu, dan baris asal itulah yang diperlukan penyelenggara atau vendor untuk membezakan kes-kes ini. Salin ke tempat yang bertahan selepas percubaan semula.
Jika VPN ini membawa sambungan yang anda gunakan untuk bekerja, sediakan laluan pentadbiran lain dahulu. Menyingkirkan klien yang memberi anda akses ialah keputusan tentang tetingkap penyelenggaraan, bukan tentang Homebrew. Urutan itulah yang menjadikan nyahpasang yang gagal boleh dipulihkan dan bukan muktamad.
Baca apa yang sebenarnya dipasang oleh cask
Pandangan Homebrew sendiri ialah bukti paling murah yang tersedia, dan ia tidak mengubah apa-apa:
brew info --cask openvpn-connect
brew list --cask openvpn-connectPerintah pertama mencetak metadata cask dan artifak yang diurusnya; yang kedua menyenaraikan apa yang direkodkan sebagai dipasang. Kedua-duanya tidak membuktikan bahawa setiap pembantu pada mesin sepadan dengan resipi semasa, dan itulah sebabnya pemasangan yang lebih lama boleh gagal dengan cara yang tidak diterangkan oleh sumber cask semasa. Layan kedua-dua output sebagai dakwaan yang perlu diperiksa, bukan sebagai kata terakhir tentang apa yang wujud.
Bandingkan versi yang direkodkan dengan versi aplikasi itu sendiri sebelum memilih laluan. Ketidakpadanan menjelaskan penyahpasang yang hilang tanpa kerosakan yang lebih dalam, dan jawapannya ialah naik taraf ke versi yang dijangkakan cask, bukan pembersihan manual.
Apa yang zap tambah, dan berapa kosnya
Stanza nyahpasang sesuatu cask mengendalikan artifak yang diisytiharkan resipi: menutup aplikasi, memunggah tugas pelancaran, menyingkirkan item log masuk, melupakan resit pakej dan memadam bundel aplikasi. Itulah laluan biasa, dan itulah yang sepatutnya berfungsi.
--zap ialah permintaan yang berbeza. Ia meminta Homebrew menyingkirkan keutamaan pengguna dan sumber kongsi juga, dan dokumentasi memberi amaran bahawa ini boleh menjejaskan perisian lain. Dalam cask OpenVPN Connect, stanza zap memadam openvpn.keychain-db dan mengosongkan data sokongan aplikasi pengguna, yang bermaksud kelayakan tersimpan dan profil sambungan turut pergi bersamanya. Jika profil itu datang daripada organisasi, sahkan bahawa anda boleh mendaftar semula sebelum memilih laluan ini.
| 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 |
Laluan yang kelihatan muktamad dan sebenarnya tidak
Menulis remove.sh palsu yang berakhir dengan kod keluar sifar ialah pilihan terburuk dalam senarai. Ia menyebabkan nyahpasang melaporkan kejayaan sementara tugas pelancaran, resit dan data aplikasi kekal di tempatnya, jadi pemasangan seterusnya mewarisi produk yang separuh dialihkan dan rekod yang mengatakan sebaliknya.
Memadam direktori Caskroom atau bundel aplikasi dengan tangan menghasilkan keadaan serupa dari arah yang lain. Fail hilang manakala resit kekal. Setiap perintah kemudiannya mesti difikirkan terhadap mesin yang tidak lagi sepadan dengan pangkalan datanya sendiri.
brew update-reset untuk seluruh repositori ialah campur tangan yang lebih besar daripada yang dibenarkan oleh satu cask yang gagal. Ia mengubah keadaan tap anda untuk membaiki masalah yang tidak pernah berkaitan keadaan tap, dan ia boleh membiarkan anda menyahpepijat Homebrew yang berbeza daripada yang anda mulakan.
Membuat keputusan mengikut urutan
Ikut urutan: baca artifak yang direkodkan cask, bandingkan versi, tutup setiap komponen yang berjalan, cuba semula nyahpasang biasa, dan hanya selepas itu pertimbangkan zap. Jika laluan biasa masih gagal, simpan ralat itu dan bawa kepada penyelenggara cask atau vendor bersama nombor versi.
Cask Cookbook menyatakan dengan jelas bahawa pemasang pakej memerlukan teknik nyahpasang khusus produk dan bahawa zap adalah pilihan dan boleh menyingkirkan sumber kongsi. Rangka itu ialah peraturan keputusan: nyahpasang biasa dahulu, zap apabila anda menerima kos kelayakan, pemadaman manual tidak pernah.