OpenVPN-i paigaldus, mis Chocolatey all signatuuri- või võtmeveraga sureb, ei ole tavaliselt allalaadimise probleem. Pakett käivitab kontrollisammu, mis kutsub gpg, ja Windows lahendab selle palja nime PATH kaudu. Kui Git for Windows paigaldati esimesena, seisab selle kaasas olev gpg.exe OpenVPN-i oodatava GnuPG koostu ees ja valele programmile vastatakse kõne. Viga, mida näete, on see, mille üle too teine programm otsustas kaevata, ja seetõttu ei maini see kunagi tegelikku põhjust.

PATH-i järjekord otsustab, milline gpg töötab

Windowsil pole täitmisfailide nimede keskregistrit. Kui protsess küsib gpg ilma täieliku teeta, läbib laadur PATH kirjed järjekorras ja käivitab esimese vastuse. Git for Windows tarnib minimaalse GnuPG koostu oma usr/bin kataloogis, et allkirjastatud commitid töötaksid, ja selle paigaldaja paigutab selle kataloogi tavaliselt kasutaja PATH alguse lähedale.

GnuPG paigaldub oma kataloogi, tavaliselt C:\Program Files (x86)\GNU\GnuPG\pub, ja see kirje võib olla nimekirjas hiljem või kasutaja PATH-st täiesti puududa. Need kaks programmi jagavad nime ja suurt osa käsurea liidesest, kuid mitte oma olekut: Giti koost otsib võtmehoidlat mujalt, võib olla teine versioon ja ei pruugi aktsepteerida valikuid, mille paigaldaja edastab. See lahknevus ilmneb signatuuri- või võtmeverana, mis on tõene aruanne sellest, mida vale binaarfail nägi. Sõnumis ei viita miski laadurile, sest laadur tegi täpselt seda, mida talle öeldi.

Miks shell, millest alustate, tulemuse otsustab

Pärimisreegel on see osa, mida tasub internaliseerida. Lapsprotsess saab selle käivitanud shelli keskkonna, seega loeb järjekord Chocolatey käivitumise hetkel, mitte järjekord pärast parandamist.

Seetõttu ei muuda PATH redigeerimine seadete aknas ja paigalduse uuesti käivitamine samas terminalis sageli midagi: terminal jättis vana keskkonna alles. Pärast igat muudatust käivitage uus shell ja kinnitage enne uut katset selle uue shelli sees käsuga where.exe gpg. See on ka põhjus, miks masinatasandi kirje võib kasutajatasandi muudatuse üle võita, kuna mõned paigaldajad lisavad masina PATH algusesse ja masina kirjeid hinnatakse enne kasutaja kirjeid. Kui mõlemal tasandil on GnuPG tee, otsustage, millist te tegelikult hooldate.

Parandus üks: muutke kirjete järjekorda

Täpne parandus on panna soovitud GnuPG kataloog võitma. Avage kasutaja keskkonnamuutujad, redigeerige Path ja liigutage GnuPG pub kataloog Giti kirjetest ettepoole. Seejärel avage uus PowerShell-i aken, sest töötav aken hoiab endiselt vana nimekirja.

Alternatiiv on ajutine puhas keskkond paigalduse jaoks: eemaldage Giti kirjed, avage uus shell, käivitage choco install openvpn ja seejärel taastage need.

Mõlemad lähenemisviisid töötavad samal põhjusel ja teine on turvaline ainult siis, kui te kirjed tõesti taastate. Giti usr/bin eemaldamine PATH-st rikub allkirjastatud commitid jäädavalt ja järgmine tööriist, mis ootab töötavat gpg-i, ebaõnnestub oma sõnumiga, millel pole OpenVPN-iga mingit seost. Kui valite ajutise tee, hoidke Path algne väärtus piletil, et taastamine oleks kleepimine, mitte ümberehitamine. Kirjete järjestamine on püsiv parandus; nende kustutamine on tähtajaga ajutine lahendus.

Kontrollige ja pange siis tagasi

Kontrollige enne ja pärast samas kasutajakontekstis, mida Chocolatey kasutab. where.exe gpg loetleb iga vastuse lahendamise järjekorras, seega esimene rida on see, mis käivitub; Get-Command gpg -All annab PowerShellis sama vastuse suurema üksikasjaga. Seejärel kinnitab gpg --version, milline koost vastas.

Kui where.exe loetleb endiselt Giti koopia esimesena, ei ole ümberjärjestamine sellesse seanssi jõudnud ja ükski uuesti paigaldamine ei aita. Kontrollige nii masina kui ka kasutaja PATH-i käsuga [Environment]::GetEnvironmentVariable('Path','Machine') ja sama kõnet käsuga 'User', sest tegelik nimekiri koostatakse mõlemast. Pärast edukat paigaldust kontrollige uuesti käsuga openvpn --version ja käivitage teenus või GUI üks kord, sest pakett võib puhtalt paigalduda ja jätta siiski teenuse, mis ei käivitu.

Kui õigesti järjestatud PATH ikka ebaõnnestub, on järelejäänud muutuja paketi versioon. Kinnitatud Chocolatey pakett võib oodata konkreetset GnuPG koostu või paigaldusteed, mida teie masinas pole.

Lugege paketi enda logi enne muu muutmist. C:\ProgramData\chocolatey\logs\chocolatey.log salvestab ebaõnnestunud käsurea ja kataloogi, kust see käivitati, mis ütleb teile, kas ebaõnnestunud kõne oli signatuurikontroll, väljavõtmine või paigaldusjärgne skript. See eristus otsustab, kas te üldse veel gpg-i silute.

Harjumus, mis kordumist takistab, on käsitleda PATH-i jagatud olekuna, millel on dokumenteeritud järjekord, mitte kataloogide kotina. Kui paigaldate tööriista, mis toob kaasa tavalise binaarnime, kontrollige, mida see järgmises avatavas shellis varjutab. Seejärel kirjutage üles järjekord, millele jäite, sest järgmine paigaldaja lisab sellele ja järgmine inimene imestab, miks signatuurikontroll ebaõnnestub masinas, kus miski pole muutunud. Üks where.exe enne paigaldust säästab kogu tsükli.

Seotud artiklid