OpenVPN орнатуы сәтсіз аяқталады, себебі Git-тің gpg-і PATH-те жеңеді
Git for Windows өзінің gpg.exe-ін әкеледі, ал PATH реті OpenVPN орнатқышы қайсысын іске қосатынын анықтайды. where.exe арқылы тексеріп, содан кейін жоюдың орнына ретін өзгертіңіз.
Chocolatey астында қолтаңба немесе кілт қатесімен өлетін OpenVPN орнатуы әдетте жүктеу мәселесі емес. Пакет gpg шақыратын тексеру қадамын орындайды, ал Windows сол жалаң атауды PATH арқылы шешеді. Егер Git for Windows бірінші орнатылса, оның ілеспе gpg.exe OpenVPN күтетін GnuPG құрастырмасының алдында тұрады, және шақыруға дұрыс емес бағдарлама жауап береді. Сіз көрген қате — сол басқа бағдарламаның шағымдануға шешкен нәрсесі, сондықтан ол нақты себепті ешқашан атамайды.
PATH реті қай gpg іске қосылатынын анықтайды
Windows-та орындалатын атаулардың орталық тізілімі жоқ. Процесс толық жолсыз gpg сұрағанда, жүктеуші PATH жазбаларын ретімен аралап, бірінші сәйкестікті іске қосады. Git for Windows қол қойылған коммиттер жұмыс істеуі үшін usr/bin каталогының ішінде шағын GnuPG құрастырмасын ұсынады, ал оның орнатқышы әдетте бұл каталогты пайдаланушының PATH басына жақын орналастырады.
GnuPG өз каталогына, әдетте C:\Program Files (x86)\GNU\GnuPG\pub орнатылады, және бұл жазба тізімде кейінірек болуы немесе пайдаланушының PATH тізімінен мүлде жоқ болуы мүмкін. Екі бағдарлама атау мен командалық жол интерфейсінің көп бөлігін бөліседі, бірақ өз күйін бөліспейді: Git құрастырмасы кілттер шоғырын басқа жерден іздейді, басқа нұсқа болуы мүмкін және орнатқыш беретін параметрлерді қабылдамауы мүмкін. Бұл сәйкессіздік қолтаңба немесе кілт қатесі ретінде көрінеді, бұл дұрыс емес бинарлық файлдың көргенінің шынайы есебі. Хабарламада жүктеушіге ешнәрсе сілтемейді, өйткені жүктеуші өзіне айтылғанды дәл орындады.
Неге нәтижені сіз бастайтын қабық анықтайды
Мұрагерлік ережесі — бойға сіңіруге тұрарлық бөлік. Еншілес процесс оны іске қосқан қабықтың ортасын алады, сондықтан маңызды рет — Chocolatey басталған сәттегі рет, сіз түзеткеннен кейінгі рет емес.
Сондықтан параметрлер терезесінде PATH түзетіп, сол терминалда орнатуды қайта іске қосу жиі ештеңені өзгертпейді: терминал ескі ортаны сақтап қалды. Кез келген өзгерістен кейін жаңа қабық бастаңыз және қайта көшпес бұрын сол жаңа қабықта where.exe gpg арқылы растаңыз. Дәл сол себептен машина деңгейіндегі жазба пайдаланушы деңгейіндегі өзгерісті жеңуі мүмкін, өйткені кейбір орнатқыштар машинаның PATH басына қосады және машина жазбалары пайдаланушы жазбаларынан бұрын бағаланады. Егер екі деңгейде де GnuPG жолы болса, қайсысын шын мәнінде ұстап отырғаныңызды шешіңіз.
Бірінші түзету: жазбалардың ретін өзгертіңіз
Дәл түзету — керекті GnuPG каталогы жеңуі. Пайдаланушының орта айнымалыларын ашыңыз, Path түзетіңіз және GnuPG-тің pub каталогын Git жазбаларынан жоғары жылжытыңыз. Содан кейін жаңа PowerShell терезесін ашыңыз, өйткені істеп тұрған терезе әлі ескі тізімді ұстап тұр.
Балама — орнату үшін уақытша таза орта: Git жазбаларын алып тастаңыз, жаңа қабық ашыңыз, choco install openvpn іске қосыңыз, содан кейін оларды қалпына келтіріңіз.
Екі тәсіл де бір себеппен жұмыс істейді, ал екіншісі жазбаларды шынымен қалпына келтірсеңіз ғана қауіпсіз. Git-тің usr/bin жазбасын PATH тізімінен алып тастау қол қойылған коммиттерді біржола бұзады, ал жұмыс істейтін gpg күтетін келесі құрал OpenVPN-ге қатысы жоқ өз хабарымен сәтсіз аяқталады. Егер уақытша жолды таңдасаңыз, Path бастапқы мәнін тикетте сақтаңыз, қалпына келтіру қайта құру емес, қою болсын. Жазбаларды реттеу — тұрақты түзету; оларды жою — мерзімі бар уақытша шешім.
Тексеріңіз, содан кейін орнына қайтарыңыз
Chocolatey қолданатын сол пайдаланушы контекстінде алдын ала және кейін тексеріңіз. where.exe gpg әр сәйкестікті шешу ретімен тізеді, сондықтан бірінші жол — іске қосылатын жол; Get-Command gpg -All PowerShell-де сол жауапты толығырақ береді. Содан кейін gpg --version қай құрастырма жауап бергенін растайды.
Егер where.exe әлі де Git көшірмесін бірінші тізсе, ретті өзгерту сол сеансқа жетпеген, және қанша рет қайта орнатсаңыз да көмектеспейді. Машина мен пайдаланушының PATH тізімін [Environment]::GetEnvironmentVariable('Path','Machine') арқылы және 'User' арқылы сол шақыруды тексеріңіз, өйткені тиімді тізім екеуінен де құралады. Сәтті орнатудан кейін openvpn --version арқылы қайта тексеріңіз және қызметті немесе GUI-ді бір рет іске қосыңыз, өйткені пакет таза орнатылып, бірақ іске қосылмайтын қызмет қалдыруы мүмкін.
Дұрыс реттелген PATH әлі де сәтсіз болса, қалған айнымалы — пакет нұсқасы. Бекітілген Chocolatey пакеті сіздің машинаңызда жоқ нақты GnuPG құрастырмасын немесе орнату жолын күтуі мүмкін.
Пакеттің өз журналын оқыңыз басқа нәрсені өзгертуден бұрын. C:\ProgramData\chocolatey\logs\chocolatey.log сәтсіз аяқталған командалық жолды және оның қай каталогтан іске қосылғанын жазады, бұл сәтсіз шақырудың қолтаңба тексеруі, шығару немесе орнатудан кейінгі скрипт екенін білдіреді. Бұл айырмашылық сіздің әлі де gpg жөндеп жатқаныңызды анықтайды.
Қайталануды болдырмайтын әдет — PATH тізімін қалталар қабы емес, құжатталған реті бар ортақ күй ретінде қарау. Кәдімгі бинарлық атауды әкелетін құралды орнатқанда, ашатын келесі қабықта оның нені көлеңкелейтінін тексеріңіз. Содан кейін тоқтаған ретіңізді жазып қойыңыз, өйткені келесі орнатқыш оған қосады, ал келесі адам ештеңе өзгермеген машинада қолтаңба тексеруі неге сәтсіз екенін ойланады. Орнату алдындағы бір where.exe бүкіл циклді үнемдейді.