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 முழு சுழற்சியையும் சேமிக்கிறது.