Git bash script में cygwin निष्पादन योग्य का उपयोग करें


9

मेरे पास एक .shस्क्रिप्ट है जिसे मैंने विंडोज के लिए गिट द्वारा निष्पादित करने के लिए डबल-क्लिक किया है।

अब मुझे convertcygwin (जो मैंने स्थापित किया है ) से (इमेजमैगिक) की आवश्यकता है और मैं इसे अपने पूर्ण पथ के साथ बुला रहा हूँ - /c/cygwin64/bin/convert.exe- - I:

घातक त्रुटि - साइबर हमले का बेमेल पता चला। यह समस्या संभवतः साइबरविन डीएलएल के असंगत संस्करणों का उपयोग करने के कारण है।

convertसाइबर कॉल बैश कॉल में या यहां तक ​​कि कॉल में वास्तविक कॉल को लपेटने से भी cmd.exeमदद नहीं मिलती है। यह थोड़ा अजीब है क्योंकि मैं कभी-कभी सीधे .cmdस्क्रिप्ट्स में साइबरविन एग्जीक्यूटिव का उपयोग करता हूं , और यह हमेशा काम करता है।

मैं क्या कर सकता हूँ? एक समाधान जो मेरे कार्यक्रम को एक फ़ाइल तक सीमित रखता है, उसे प्राथमिकता दी जाएगी।

(मुझे पता है कि मैं शायद केवल विंडोज़-देशी इमेजमैगिक स्थापित कर सकता हूं। लेकिन फिर अगले दिन मुझे जीआईटी-फॉर-विन-शेलस्क्रिप्ट में एक और साइबरविन टूल की आवश्यकता है .. साथ ही, मैं यह समझना चाहता हूं कि यहां क्या हो रहा है। और, हां। मैं संभवतः अपने कार्यस्थल में अप्रचलित विंडोज के लिए गिट बनाऊंगा , यदि संभव हो तो)


Cygwin पर आधारित विभिन्न उत्पादों का मिश्रण और मिलान न करें। इसके बजाय सिग्विन गिट का प्रयोग करें।
DavidPostill

आपके कमेंट के लिए धन्यवाद। यह मेरे लिए स्पष्ट नहीं था कि विंडोज के लिए गिट साइबरविन पर आधारित है। मैं लगातार "मिनगडब्ल्यू" .. "एमएसवाईएस" आदि पढ़ता हूं जो कि साइबरविन की तरह ध्वनि नहीं करता है। लेकिन सिर्फ जिज्ञासा के लिए: क्या अन्य उत्पाद साइबरविन पर आधारित हैं?
someDev

और क्या मैं सही हूं कि UnxUtils / GnuWin32 टूल्स विंडोज-देशी हैं? क्या यह सच है कि माइक्रोसॉफ्ट विंडोज में "लिनक्स जैसा वातावरण" पर काम कर रहा है (जिसमें एक बाश और शायद अन्य ठीक चीजें भी शामिल हैं)?
someDev

"यह मेरे लिए स्पष्ट नहीं था कि विंडोज के लिए git cygwin पर आधारित है" मैं dll त्रुटि संदेश के आधार पर अनुमान लगा रहा हूं। क्या आप जाँच सकते हैं कि आपके पास अपने सिस्टम पर cygwin dll के कई कॉपियाँ हैं?
DavidPostill

विंडोज 10 वर्षगांठ संस्करण ने लिनक्स के लिए विंडोज सबसिस्टम नामक एक नई सुविधा शुरू की। इसमें बैश भी शामिल है। मैं विंडोज 10 नहीं चला रहा हूं इसलिए मुझे नहीं पता कि इसमें और क्या शामिल है।
DavidPostill

जवाबों:


7

घातक त्रुटि - साइबर हमले का बेमेल पता चला।

यह समस्या संभवतः साइबरविन डीएलएल के असंगत संस्करणों का उपयोग करने के कारण है।

यह त्रुटि इसलिए हुई क्योंकि Windows पथ के लिए Git Cywin के साथ असंगत है।

  • वे दोनों उपयोग /binऔर /usr/binलेकिन करने के लिए इन मानचित्र अलग निर्देशिका (क्योंकि वे विभिन्न का उपयोग माउंट टेबल)।

  • Cywin dll को खोजने की उम्मीद करता है /usr/bin/cygwin1.dll(और विंडोज के लिए Git में नहीं मिला है)

  • जब आप Windows शेल के लिए Git में स्पष्ट रूप से कोई भी Cygwin कमांड चलाते हैं Cygwin bashअपना dll नहीं पा सकता है और ऊपर त्रुटि संदेश उत्पन्न करता है।

  • नीचे नोटिस कि माउंट मानचित्रण के लिए /अलग है।

Windows के लिए Git:

DavidPostill@Hal MINGW64 ~
$ mount
C:/temp on /tmp type ntfs (binary,noacl,posix=0,usertemp)
C:/apps/Git on / type ntfs (binary,noacl,auto)
C:/apps/Git/usr/bin on /bin type ntfs (binary,noacl,auto)
C: on /c type ntfs (binary,noacl,posix=0,user,noumount,auto)
E: on /e type vfat (binary,noacl,posix=0,user,noumount,auto)
F: on /f type ntfs (binary,noacl,posix=0,user,noumount,auto)

DavidPostill@Hal MINGW64 ~
$ which cygwin1.dll
which: no cygwin1.dll in (/c/Users/DavidPostill/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/DavidPostill/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/apps/WSCC/Sysinternals Suite:/c/apps/WSCC/NirSoft Utilities:/c/apps/Calibre:/cmd:/mingw64/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl)

DavidPostill@Hal MINGW64 ~
$ /c/cygwin/bin/man
      1 [main] man (608) C:\cygwin\bin\man.exe: *** fatal error - cygheap base mismatch detected - 0x180301408/0x180304408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
Segmentation fault

Cygwin:

$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /c type ntfs (binary,posix=0,user,noumount,auto)
E: on /e type vfat (binary,posix=0,user,noumount,auto)
F: on /f type ntfs (binary,posix=0,user,noumount,auto)
$ which cygwin1.dll
/usr/bin/cygwin1.dll
$ /c/cygwin/bin/man
What manual page do you want?

कोई समाधान नहीं है, इसके अलावा अन्य उपयोगिताओं के मेल नहीं खाते हैं। एक उठाओ और इसके साथ रहना।


1
स्पष्टीकरण के लिए धन्यवाद। कैसे एक समाधान के बारे में?
जिम जी।

4
@JimG। वहाँ नहीं है, के अलावा अन्य मिश्रण और मेल नहीं खाते हैं। एक उठाओ और इसके साथ रहना।
DavidPostill

1
मददगार नहीं क्योंकि समाधान के साथ मदद करने के लिए कोई संकेत नहीं हैं। यह कई लोगों के लिए है, जो इसका कारण बनने के लिए ज्ञान नहीं रखते हैं।
जूलियन नाइट

1
दुर्भाग्य से, मैं अब इसे git से जुड़ी हर चीज के साथ प्राप्त कर रहा हूं। मैंने नए संस्करण स्थापित किए हैं, लेकिन मैं स्पष्ट रूप से केवल ggg का उपयोग नहीं कर रहा हूं। मैं git cmd लाइन भी शुरू नहीं कर सकता। इसलिए मैं इस मुद्दे को ट्रैक करने और इसे ठीक करने के लिए नीचे ट्रैक नहीं कर सकता। फिर भी यह देखने के लिए कि क्या यह मदद करता है के माध्यम से काम कर रहा है: github.com/desktop/desktop/issues/3096
जूलियन नाइट

2
गिथब लिंक में समाधान के माध्यम से तय किया गया। विंडोज एक्सप्लॉइट प्रोटेक्शन में सभी त्रुटिपूर्ण निष्पादन के लिए ASLR को बंद करें। यह तब काम करता है। विंडोज के लिए गिट को अनइंस्टॉल करने की आवश्यकता नहीं है। यह पूर्ण पथ के बजाय प्रोग्राम नाम (जैसे uname.exe) को जोड़कर किया।
जूलियन नाइट

0

मुझे विंडोज 10 पर भी यही समस्या थी। मैं सोच रहा था कि साइगविन के बहुत सारे वर्जन का होना कैसे संभव है, जबकि मुझे एक भी cygwin.dll नहीं मिल रहा है। GitExtensions-> विभिन्न त्रुटि संदेशों के साथ क्रैश और गिट बैश दुर्घटनाग्रस्त हो गए। समाधान यहां है: विंडोज डिफेंडर पर जाएं -> ऐप और ब्राउज़र नियंत्रण -> शोषण से सुरक्षा। और एएसएलआर के साथ तीन विकल्पों को बंद करें। आपको इसके बाद अपने सिस्टम को पुनरारंभ करना होगा, लेकिन यह वास्तव में मदद करता है!


यह टिप्पणी अनुभाग का एक हिस्सा है, इस सवाल का जवाब नहीं देता है।
विश्रांत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.