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 бүт циклди үнөмдөйт.