Chocolatey ostida imzo yoki kalit xatosi bilan o‘ladigan OpenVPN o‘rnatilishi odatda yuklab olish muammosi emas. Paket gpg ni chaqiradigan tekshiruv bosqichini ishga tushiradi va Windows bu yalang‘och nomni PATH orqali hal qiladi. Agar Git for Windows birinchi o‘rnatilgan bo‘lsa, uning bilan kelgan gpg.exe OpenVPN kutayotgan GnuPG build oldida turadi va noto‘g‘ri dastur chaqiruvga javob beradi. Siz ko‘rayotgan xato o‘sha boshqa dasturning shikoyat qilishga qaror qilgan narsasidir, shuning uchun u hech qachon asl sababni tilga olmaydi.

PATH tartibi qaysi gpg ishga tushishini belgilaydi

Windowsda bajariladigan nomlarning markaziy reyestri yo‘q. Jarayon to‘liq yo‘lsiz gpg so‘raganda, yuklovchi PATH yozuvlarini tartib bilan aylanib chiqadi va birinchi mos kelganini ishga tushiradi. Git for Windows imzolangan kommitlar ishlashi uchun o‘zining usr/bin katalogi ichida minimal GnuPG build olib keladi va uning o‘rnatuvchisi odatda bu katalogni foydalanuvchining PATH boshiga yaqin joylashtiradi.

GnuPG o‘z katalogiga, odatda C:\Program Files (x86)\GNU\GnuPG\pub ga o‘rnatiladi va bu yozuv ro‘yxatda keyinroq bo‘lishi yoki foydalanuvchining PATH ro‘yxatidan butunlay yo‘q bo‘lishi mumkin. Ikki dastur nomni va buyruq satri interfeysining katta qismini bo‘lishadi, ammo o‘z holatini emas: Git build kalit halqasini boshqa joydan qidiradi, boshqa versiya bo‘lishi mumkin va o‘rnatuvchi uzatgan parametrlarni qabul qilmasligi mumkin. Bu nomuvofiqlik imzo yoki kalit xatosi sifatida namoyon bo‘ladi, bu esa noto‘g‘ri binar fayl ko‘rgan narsaning haqqoniy hisobotidir. Xabarda hech narsa yuklovchiga ishora qilmaydi, chunki yuklovchi aynan aytilgan ishni qildi.

Nega boshlagan shellingiz natijani belgilaydi

Meros qoidasi o‘zlashtirishga arziydigan qismdir. Bola jarayon uni ishga tushirgan shell muhitini oladi, shuning uchun muhim tartib Chocolatey boshlangan lahzadagi tartibdir, siz tuzatganingizdan keyingi tartib emas.

Shu sababli sozlamalar oynasida PATH ni tahrirlab, o‘sha terminalda o‘rnatishni qayta ishga tushirish ko‘pincha hech narsani o‘zgartirmaydi: terminal eski muhitni saqlab qolgan. Har qanday o‘zgarishdan keyin yangi shell boshlang va qayta urinishdan oldin o‘sha yangi shellda where.exe gpg bilan tasdiqlang. Mashina darajasidagi yozuv foydalanuvchi darajasidagi o‘zgarishni yutishi ham shu sababdan, chunki ba’zi o‘rnatuvchilar mashinaning PATH boshiga qo‘shadi va mashina yozuvlari foydalanuvchi yozuvlaridan oldin baholanadi. Agar ikkala darajada ham GnuPG yo‘li bo‘lsa, qaysinisini haqiqatda saqlayotganingizni hal qiling.

Birinchi tuzatish: yozuvlar tartibini o‘zgartiring

Aniq tuzatish — mo‘ljallangan GnuPG katalogi g‘olib chiqishi. Foydalanuvchining muhit o‘zgaruvchilarini oching, Path ni tahrirlang va GnuPG ning pub katalogini Git yozuvlaridan yuqoriga ko‘chiring. So‘ngra yangi PowerShell oynasini oching, chunki ishlab turgani hali eski ro‘yxatni ushlab turadi.

Muqobil — o‘rnatish uchun vaqtinchalik toza muhit: Git yozuvlarini olib tashlang, yangi shell oching, choco install openvpn ni ishga tushiring, so‘ngra ularni tiklang.

Ikkala yondashuv ham bir sababdan ishlaydi, ikkinchisi esa yozuvlarni haqiqatan tiklasangizgina xavfsiz. Git ning usr/bin ini PATH dan olib tashlash imzolangan kommitlarni butunlay buzadi va ishlaydigan gpg ni kutayotgan keyingi vosita OpenVPN bilan hech qanday aloqasi bo‘lmagan o‘z xabari bilan muvaffaqiyatsiz bo‘ladi. Vaqtinchalik yo‘lni tanlasangiz, Path ning asl qiymatini chiptada saqlang, tiklash qayta qurish emas, qo‘yish bo‘lsin. Yozuvlarni tartiblash — barqaror tuzatish; ularni o‘chirish — muddati bor vaqtinchalik yechim.

Tekshiring, so‘ngra joyiga qaytaring

Chocolatey ishlatadigan bir xil foydalanuvchi kontekstida oldin va keyin tekshiring. where.exe gpg har bir moslikni hal qilish tartibida ro‘yxatlaydi, shuning uchun birinchi satr ishga tushadigan satrdir; Get-Command gpg -All PowerShellda xuddi shu javobni batafsilroq beradi. So‘ngra gpg --version qaysi build javob berganini tasdiqlaydi.

Agar where.exe hali ham Git nusxasini birinchi ro‘yxatlasa, tartib o‘zgarishi o‘sha sessiyaga yetib bormagan va qancha qayta o‘rnatmasangiz ham foyda bermaydi. Mashina va foydalanuvchi PATH ni [Environment]::GetEnvironmentVariable('Path','Machine') bilan hamda xuddi shu chaqiruvni 'User' bilan tekshiring, chunki samarali ro‘yxat ikkalasidan tuziladi. Muvaffaqiyatli o‘rnatishdan so‘ng openvpn --version bilan qayta tekshiring va xizmat yoki GUI ni bir marta ishga tushiring, chunki paket toza o‘rnatilib, baribir ishga tushmaydigan xizmat qoldirishi mumkin.

Agar to‘g‘ri tartiblangan PATH hali ham muvaffaqiyatsiz bo‘lsa, qolgan o‘zgaruvchi paket versiyasidir. Qulflangan Chocolatey paketi sizning mashinangizda yo‘q muayyan GnuPG build yoki o‘rnatish yo‘lini kutishi mumkin.

Paketning o‘z jurnalini o‘qing boshqa narsani o‘zgartirishdan oldin. C:\ProgramData\chocolatey\logs\chocolatey.log muvaffaqiyatsiz bo‘lgan buyruq satrini va u ishga tushgan katalogni yozadi, bu muvaffaqiyatsiz chaqiruv imzo tekshiruvi, chiqarish yoki o‘rnatishdan keyingi skript bo‘lganini aytadi. Aynan shu farq siz hali ham gpg ni tuzatayotganingizni belgilaydi.

Takrorni oldini oladigan odat — PATH ni kataloglar xaltasi emas, hujjatlashtirilgan tartibga ega umumiy holat deb bilishdir. Umumiy binar nomini olib keladigan vositani o‘rnatganda, ochadigan keyingi shellingizda u nimani soya qilishini tekshiring. So‘ngra kelishgan tartibni yozib qo‘ying, chunki keyingi o‘rnatuvchi unga qo‘shadi va keyingi odam hech narsa o‘zgarmagan mashinada imzo tekshiruvi nega muvaffaqiyatsiz bo‘layotganini o‘ylaydi. O‘rnatishdan oldin bir marta where.exe butun tsiklni tejaydi.

O'xshash maqolalar