Git యొక్క gpg PATH-లో గెలుస్తున్నందున OpenVPN ఇన్స్టాల్ విఫలమవుతుంది
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 మొత్తం లూప్ను ఆదా చేస్తుంది.