Chocolatey altında imza və ya açar xətası ilə ölən OpenVPN quraşdırması adətən yükləmə problemi deyil. Paket gpg çağıran bir yoxlama addımı işlədir və Windows həmin çılpaq adı PATH vasitəsilə həll edir. Əgər Git for Windows əvvəl quraşdırılıbsa, onunla gələn gpg.exe OpenVPN-in gözlədiyi GnuPG buraxılışından öndə durur və çağırışa səhv proqram cavab verir. Gördüyünüz xəta o digər proqramın şikayət etməyə qərar verdiyi şeydir, buna görə də heç vaxt əsl səbəbi qeyd etmir.

PATH sırası hansı gpg-nin işləyəcəyini müəyyən edir

Windows-da icra olunan adların mərkəzi reyestri yoxdur. Bir proses gpg-i tam yol olmadan istədikdə, yükləyici PATH girişlərini sıra ilə gəzir və ilk uyğunluğu işlədir. Git for Windows imzalanmış commit-lərin işləməsi üçün usr/bin qovluğunun içində minimal GnuPG buraxılışı gətirir və onun quraşdırıcısı adətən həmin qovluğu istifadəçinin PATH siyahısının önünə yaxın yerləşdirir.

GnuPG öz qovluğuna, adətən C:\Program Files (x86)\GNU\GnuPG\pub ünvanına quraşdırılır və bu giriş siyahıda daha sonra ola bilər və ya istifadəçinin PATH siyahısından tamamilə çıxa bilər. İki proqram adı və əmr sətri interfeysinin çoxunu paylaşır, amma vəziyyətlərini paylaşmır: Git buraxılışı açar halqasını başqa yerdə axtarır, fərqli versiya ola bilər və quraşdırıcının ötürdüyü seçimləri qəbul etməyə bilər. Bu uyğunsuzluq imza və ya açar xətası kimi üzə çıxır, bu da səhv ikili faylın gördüyünün doğru hesabatıdır. Mesajda heç nə yükləyiciyə işarə etmir, çünki yükləyici ona deyiləni tam yerinə yetirib.

Nə üçün başladığınız shell nəticəni müəyyən edir

Vərəsəlik qaydası mənimsənilməyə dəyər hissədir. Alt proses onu işə salan shell-in mühitini alır, buna görə vacib olan sıra Chocolatey başlayan andakı sıradır, düzəltdikdən sonrakı sıra deyil.

Buna görə də PATH-i parametrlər pəncərəsində redaktə edib quraşdırmanı eyni terminalda yenidən işlətmək çox vaxt heç nəyi dəyişmir: terminal köhnə mühiti saxlayıb. Hər hansı dəyişiklikdən sonra yeni shell başladın və yenidən cəhd etməzdən əvvəl həmin yeni shell-də where.exe gpg ilə təsdiqləyin. Bu həm də ona görədir ki, maşın səviyyəsindəki giriş istifadəçi səviyyəsindəki dəyişikliyi üstələyə bilər, çünki bəzi quraşdırıcılar maşın PATH siyahısının önünə əlavə edir və maşın girişləri istifadəçi girişlərindən əvvəl qiymətləndirilir. Əgər hər iki səviyyədə GnuPG yolu varsa, hansını həqiqətən saxladığınıza qərar verin.

Düzəliş bir: girişlərin sırasını dəyişin

Dəqiq düzəliş nəzərdə tutulan GnuPG qovluğunun qalib gəlməsidir. İstifadəçi üçün mühit dəyişənlərini açın, Path-i redaktə edin və GnuPG pub qovluğunu Git girişlərindən yuxarı köçürün. Sonra təzə PowerShell pəncərəsi açın, çünki işləyən pəncərə hələ də köhnə siyahını saxlayır.

Alternativ quraşdırma üçün müvəqqəti təmiz mühitdir: Git girişlərini çıxarın, yeni shell açın, choco install openvpn işlədin, sonra onları bərpa edin.

Hər iki yanaşma eyni səbəbdən işləyir və ikincisi yalnız girişləri həqiqətən bərpa etsəniz təhlükəsizdir. Git-in usr/bin qovluğunu PATH siyahısından silmək imzalanmış commit-ləri birdəfəlik pozur və işlək gpg gözləyən növbəti alət OpenVPN ilə heç bir əlaqəsi olmayan öz mesajı ilə uğursuz olur. Müvəqqəti yolu seçsəniz, Path-in orijinal dəyərini biletdə saxlayın ki, bərpa yenidən qurma deyil, yapışdırma olsun. Girişləri sıralamaq davamlı düzəlişdir; onları silmək son tarixi olan müvəqqəti həlldir.

Yoxlayın, sonra geri qaytarın

Chocolatey-nin istifadə edəcəyi eyni istifadəçi kontekstində əvvəl və sonra yoxlayın. where.exe gpg hər uyğunluğu həll sırası ilə sadalayır, buna görə birinci sətir işləyəcək olan sətirdir; Get-Command gpg -All PowerShell-də eyni cavabı daha çox detalla verir. Sonra gpg --version hansı buraxılışın cavab verdiyini təsdiqləyir.

Əgər where.exe hələ də Git nüsxəsini birinci sadalayırsa, sıra dəyişikliyi həmin sessiyaya çatmayıb və heç bir yenidən quraşdırma kömək etməyəcək. PATH siyahısını həm maşın, həm istifadəçi səviyyəsində [Environment]::GetEnvironmentVariable('Path','Machine') və eyni çağırışı 'User' ilə yoxlayın, çünki effektiv siyahı hər ikisindən yığılır. Uğurlu quraşdırmadan sonra openvpn --version ilə yenidən yoxlayın və xidməti və ya GUI-ni bir dəfə başladın, çünki paket təmiz quraşdırılıb yenə də başlamayan xidmət qoya bilər.

Düzgün sıralanmış PATH hələ də uğursuz olursa, qalan dəyişən paket versiyasıdır. Sabitlənmiş Chocolatey paketi maşınınızda olmayan müəyyən GnuPG buraxılışı və ya quraşdırma yolu gözləyə bilər.

Paketin öz jurnalını oxuyun başqa bir şeyi dəyişməzdən əvvəl. C:\ProgramData\chocolatey\logs\chocolatey.log uğursuz olan əmr sətrini və onun işlədiyi qovluğu qeyd edir, bu da sizə uğursuz çağırışın imza yoxlaması, çıxarma və ya quraşdırmadan sonrakı skript olduğunu bildirir. Bu fərq hələ də ümumiyyətlə gpg sazlayıb-sazlamadığınızı müəyyən edir.

Təkrarlanmanı qabaqlayan vərdiş PATH-i sənədləşdirilmiş sırası olan ortaq vəziyyət kimi qəbul etməkdir, qovluqlar çantası kimi deyil. Ümumi ikili ad gətirən bir alət quraşdırdıqda, açdığınız növbəti shell-də onun nəyi kölgədə qoyduğunu yoxlayın. Sonra qərar verdiyiniz sıranı yazın, çünki növbəti quraşdırıcı ona əlavə edəcək və növbəti adam heç nəyin dəyişmədiyi maşında imza yoxlamasının niyə uğursuz olduğunu soruşacaq. Quraşdırmadan əvvəl bir where.exe bütün döngəni xilas edir.

Əlaqəli məqalələr