Homebrew OpenVPN Connect-i silə bilmir: hansı yol uyğundur?
Uğursuz cask silinməsi üç nasazlıqdan biridir. Cask artefaktlarını oxuyun, versiyaları müqayisə edin, sonra yenidən cəhd, yüksəltmə və ya zap arasında seçin.
Üç fərqli nasazlıq eyni cask xəta mesajını daşıyır və hər birinin öz bərpa yolu var. Təchizatçının silici proqramı quraşdırılmış versiyada olmaya bilər, köməkçi proses hələ də işləyib fayllarını tuta bilər, ya da paket qəbzi diskdə olanla ziddiyyət təşkil edə bilər. Bu hallardan birini xilas edən köhnə forum həlli sizdə hansının olduğunu demir. Bunu öyrənməyin yolu cask-ın öz qeydini oxumaqdır.
Oxşar görünən üç nasazlıq
Çatışmayan silici, cask onu işə salmağa çalışanda mövcud olmayan yol kimi görünür. İşləyən köməkçi proses isə başlayıb sonra dayanan silinmə, ya da siz onu bağladıqdan sonra yenidən peyda olan tətbiq kimi görünür. Köhnəlmiş qəbz isə cask-ın öz qeydi ilə quraşdırıcı verilənlər bazasının məhsulun ümumiyyətlə quraşdırılıb-qurulmadığı barədə ziddiyyət təşkil etdiyi halda görünür.
Hər hansı cəhddən əvvəl ilk xəta mətnini saxlayın. İkinci cəhd mesajı yaradan vəziyyətin üzərinə yazır və bu halları ayırd etmək üçün tərtibatçıya və ya təchizatçıya lazım olan məhz orijinal sətirdir. Onu yenidən cəhddən sonra da qalan bir yerə kopyalayın.
Əgər bu VPN iş üçün istifadə etdiyiniz bağlantını daşıyırsa, əvvəlcə başqa bir idarəetmə yolu hazırlayın. Sizin girişinizi təmin edən klienti silmək Homebrew ilə deyil, texniki xidmət pəncərəsi ilə bağlı qərardır. Bu ardıcıllıq həm də uğursuz silinməni son deyil, bərpa oluna bilən edən şeydir.
Cask-ın həqiqətən nə quraşdırdığını oxuyun
Homebrew-un öz görünüşü mövcud olan ən ucuz sübutdur və heç nəyi dəyişmir:
brew info --cask openvpn-connect
brew list --cask openvpn-connectBirinci əmr cask metadatasını və onun idarə etdiyi artefaktları çap edir; ikincisi quraşdırılmış kimi qeydə alınanları sadalayır. Heç biri maşındakı hər köməkçi prosesin cari reseptə uyğun olduğunu sübut etmir və köhnə quraşdırmanın cari cask mənbəyinin təsvir etmədiyi şəkildə uğursuz olmasının səbəbi məhz budur. İki çıxışa yoxlanılmalı iddia kimi baxın, mövcud olanın son sözü kimi yox.
Yol seçməzdən əvvəl qeydə alınmış versiyanı tətbiqin öz versiyası ilə müqayisə edin. Uyğunsuzluq daha dərin nasazlıq olmadan çatışmayan silicini izah edir və cavab əl ilə təmizləmə deyil, cask-ın gözlədiyi versiyaya yüksəltmədir.
Zap nə əlavə edir və nəyə başa gəlir
Cask-ın silinmə bölməsi reseptin elan etdiyi artefaktlarla məşğul olur: tətbiqi bağlamaq, işə salma işlərini yükləmədən çıxarmaq, giriş elementini silmək, paket qəbzlərini unutmaq və tətbiq paketini silmək. Bu normal yoldur və işləməli olan da budur.
--zap başqa bir tələbdir. Homebrew-dan istifadəçi üstünlüklərini və paylaşılan resursları da silməsini istəyir və sənədləşmə bunun digər proqramlara təsir edə biləcəyi barədə xəbərdarlıq edir. OpenVPN Connect cask-ında zap bölməsi openvpn.keychain-db faylını silir və istifadəçinin tətbiq dəstəyi məlumatlarını təmizləyir, yəni saxlanmış etimad məlumatları və bağlantı profilləri də onunla gedir. Profil bir təşkilatdan gəlibsə, bu yolu seçməzdən əvvəl yenidən qeydiyyatdan keçə biləcəyinizi təsdiqləyin.
| 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 |
Qəti görünən, amma olmayan yollar
Sıfır çıxış kodu ilə bitən saxta remove.sh yazmaq siyahıdakı ən pis variantdır. Silinmənin uğur bildirməsinə səbəb olur, halbuki işə salma işləri, qəbzlər və tətbiq məlumatları yerində qalır, beləliklə növbəti quraşdırma yarım silinmiş məhsulu və əksini deyən qeydi miras alır.
Caskroom qovluğunu və ya tətbiq paketini əl ilə silmək digər tərəfdən oxşar vəziyyət yaradır. Fayllar yox olur, qəbz qalır. Bundan sonra hər əmri artıq öz verilənlər bazasına uyğun olmayan maşınla müqayisədə düşünmək lazımdır.
Repozitoriya miqyasında brew update-reset bir uğursuz cask-ın haqq qazandırdığından daha böyük müdaxilədir. Heç vaxt tap vəziyyəti ilə bağlı olmayan problemi həll etmək üçün tap vəziyyətinizi dəyişir və sizi başladığınızdan fərqli bir Homebrew-u sazlamaqla qoya bilər.
Hansı qaydada qərar vermək lazımdır
Ardıcıllıqla işləyin: cask-ın qeydə aldığı artefaktları oxuyun, versiyaları müqayisə edin, işləyən hər komponenti bağlayın, adi silinməni yenidən cəhd edin və yalnız bundan sonra zap-ı nəzərdən keçirin. Adi yol hələ də uğursuz olarsa, xətanı saxlayın və versiya nömrələri ilə birlikdə cask tərtibatçılarına və ya təchizatçıya aparın.
Cask Cookbook açıq şəkildə bildirir ki, paket quraşdırıcıları məhsula xas silmə üsullarına ehtiyac duyur və zap könüllüdür və paylaşılan resursları silə bilər. Bu çərçivə qərar qaydasıdır: əvvəlcə adi silinmə, etimad məlumatlarının dəyərini qəbul etdikdə zap, əl ilə silmə heç vaxt.