साइबरगन में मछली के खोल का उपयोग कैसे करें?


15

क्या सागविन के साथ मछली के खोल का उपयोग करना संभव है? मैं cygwin में स्रोत को संकलित करने में सक्षम नहीं था, और मुझे कोई पूर्व-पैकेज नहीं मिला। क्या साइबरविन में मछली नहीं होने का एक अच्छा कारण है?

जवाबों:


23

मछली का खोल 2.1.0 अब आधिकारिक तौर पर साइगविन में समर्थित है, इसे डिफ़ॉल्ट इंस्टॉलर का उपयोग करके स्थापित करना संभव है।


15

यहाँ बताया गया है कि मैं सिग्विन में मछली संकलित करने में कैसे कामयाब रहा ।

चरण 1: जांचें कि सभी निर्भरताएं स्थापित हैं

पहले, सुनिश्चित करें कि हमारे पास निम्नलिखित साइबर पैकेज हैं:

  • libncurses-devel
  • libiconv
  • autoconf (मछली की वास्तव में निर्भरता नहीं है, लेकिन हमें बाद के कदम के लिए इसकी आवश्यकता है)

चरण 2: नवीनतम स्रोत को डाउनलोड करें और निकालें

इसके बाद, http://fishshell.com से नवीनतम स्रोत डाउनलोड करें (मैंने मछली का इस्तेमाल किया -1.23.1 . tar.gz )। अपनी पसंद की सीडी के लिए स्रोत निकालें और इसे सीडी:

$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/

चरण 3: configure.acचेक को हटाने के लिए संपादित करेंiconv

अब किसी कारण से, ठीक से ./configureपता नहीं लगा सकते libiconv। इस समस्या को हल करने के लिए हम इसके लिए चेक निकालते हैं (हम बाद में लिबरल रूप से निर्दिष्ट करेंगे)। ऐसा करने के लिए, हम configure.acचेक को संपादित करते हैं और हटाते हैं iconv_open। के लिए खोज iconv_open3 आवृत्तियां का पता चलता है; हम उन सभी को टिप्पणी करते हैं। तो, इससे:

AC_SEARCH_LIBS( iconv_open, iconv, ....)

हम इसमें परिवर्तन करते हैं:

#AC_SEARCH_LIBS( iconv_open, iconv, ....)

चरण 4: पुनर्निर्माण और चलाएं ./configure

इसके बाद, हम ./configureस्क्रिप्ट को autoconfफिर से बनाते हैं, फिर कॉन्फ़िगर स्क्रिप्ट चलाते हैं:

$ autoconf && ./configure

चरण 5: Makefileसही पथ को शामिल करने के लिए संपादित करेंcurses.h

एक और समस्या जिसका मुझे सामना करना पड़ा curses.h- gcc उसे नहीं मिला। एक त्वरित खोज से पता चला कि यह अंदर है /usr/include/ncurses

Makefileएक हार्डकोडेड में इसके लिए पथ शामिल है CFLAGS, लेकिन यह के लिए अंक /usr/local/include/ncursesके बजाय।

इसलिए, हम संपादित करते हैं Makefileऔर बदलते हैं:

CFLAGS = -I/usr/local/include/ncurses -std=c99 ....

सेवा

CFLAGS = -I/usr/include/ncurses -std=c99 ...

चरण 6: LDFLAGSलिंक करने के लिए निर्यात करें libiconv, और हम संकलित / स्थापित करने के लिए तैयार हैं।

अंत में, हम LDFLAGSलिंक iconvकरने और फिर संकलित करने के लिए आवश्यक निर्यात करते हैं !

$ export LDFLAGS="-liconv"
$ make && make install

का आनंद लें fish

$ fish
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
me@home /u/l/s/fish-1.23.1> 

+1 मैं ऊपर दिए गए चरणों की पुष्टि कर सकता हूं कि काम करना चाहिए। मैंने #define HAVE_NCURSES_H 1जेनरेट की गई हेडर फ़ाइल config.h(ऊपर बताए गए समान कारणों के लिए) में भी जोड़ा
अमरो

मैंने libiconv स्थापित किया है और LDFLAGS सेट किया है, लेकिन मुझे अभी भी एक त्रुटि मिलती है: set_color.c: 16: 20: अभिशप्त: ऐसी कोई फ़ाइल या निर्देशिका set_color.c: फ़ंक्शन translate_color': set_color.c:116: warning: implicit declaration of function strcasecmp 'set_color.c: फ़ंक्शन में main': set_color.c:333: error: ERR' अघोषित नहीं है (इस समारोह में पहली बार उपयोग करें)
muriloq

उस त्रुटि को मैंने शुरू में भी देखा था। क्या आपने `मेकफाइल (चरण 5) में libncurses-develपरिवर्तित -Iमार्ग को स्थापित और बदल दिया है ?
शॉन चिन

हां, मैंने भी libncurses-devel को फिर से इंस्टॉल किया है, बस सुनिश्चित करने के लिए। शायद एक और निर्भरता है जो आपके सिस्टम में पहले से मौजूद थी? त्रुटि संदेश की तलाश में मुझे निम्नलिखित बग रिपोर्ट मिली: sourceforge.net/tracker/…
muriloq

@muriloq लगता है जैसे curses.hशामिल नहीं किया जा रहा है ( ERRवहाँ परिभाषित किया गया है)। क्या आपके पास एक झांकना है /usr/include/ncurses/और देख सकते हैं कि क्या यह वहां है?
शॉन चिन

0

GitHub में मछली के मुद्दों # 680 और # 319 की जाँच करें , वहाँ सब कुछ है जो आपको साइबरविन पर मछली संकलन करने की आवश्यकता है।


2
बाहरी संसाधनों के लिंक को प्रोत्साहित किया जाता है, लेकिन कृपया लिंक के चारों ओर संदर्भ जोड़ें ताकि आपके साथी उपयोगकर्ताओं को कुछ अंदाजा हो कि यह क्या है और क्यों है। हमेशा एक महत्वपूर्ण लिंक का सबसे प्रासंगिक हिस्सा उद्धृत करें, यदि लक्षित साइट अप्राप्य है या स्थायी रूप से ऑफ़लाइन है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.