मुझे मैक पर फोरट्रान कंपाइलर कैसे स्थापित करना चाहिए? (OS X 10.x, x> = 4)


25

संबंधित प्रश्न: वैज्ञानिक कम्प्यूटिंग और एचपीसी में मैक ओएस की स्थिति

कम्प्यूटेशनल विज्ञान में सॉफ्टवेयर पैकेजों की एक महत्वपूर्ण संख्या फोरट्रान में लिखी गई है, और फोरट्रान दूर नहीं जा रहे हैं। एक फोरट्रान कंपाइलर को अन्य सॉफ्टवेयर पैकेजों का निर्माण करने की भी आवश्यकता होती है (एक उल्लेखनीय उदाहरण SciPy है )।

हालांकि, मैक ओएस एक्स में फोरट्रान कंपाइलर शामिल नहीं है। मुझे अपनी मशीन पर फोरट्रान कंपाइलर कैसे स्थापित करना चाहिए?


1
यह फोरट्रान नहीं है। Macs में न ही उच्च गुणवत्ता समर्थित रिपॉजिटरी हैं जैसे डेबियन जहां सब कुछ बस काम करता है। मैक पर जटिल किसी भी चीज को स्थापित करना एक दर्द है।
stali

जवाबों:


32

अपना ज़हर उठाएं। मैं Homebrew का उपयोग करने की सलाह देता हूं। मैंने "फ़िंक" और "अन्य तरीके" को छोड़कर इन सभी तरीकों की कोशिश की है। मूल रूप से, मैंने मैकप्रॉर्ट्स को प्राथमिकता दी जब मैंने यह उत्तर लिखा था। दो वर्षों के बाद से, Homebrew एक परियोजना के रूप में बहुत बड़ा हो गया है और मैकपोर्ट्स की तुलना में अधिक बनाए रखने योग्य साबित हुआ है, जिसे बहुत अधिक PATHहैकिंग की आवश्यकता हो सकती है ।

एक संस्करण स्थापित करना जो सिस्टम संकलक से मेल खाता है

यदि आप चाहते हैं कि आपकी मशीन पर स्थापित gcc, g ++ आदि के संस्करणों से मिलान करने के लिए gfortran का संस्करण, यहाँ से gfortran का उपयुक्त संस्करण डाउनलोड करेंआर डेवलपर्स और SciPy डेवलपर्स इस विधि सलाह देते हैं।

  • फायदे : XCode के साथ या केनेथ रिट्ज के इंस्टॉलर के साथ स्थापित संकलक के संस्करण ; ओएस उन्नयन में हस्तक्षेप करने की संभावना नहीं है; MacPorts (और शायद फ़िंक और होमब्रेव) के साथ अच्छी तरह से सहवास करता है क्योंकि यह स्थापित होता है /usr/bin। मौजूदा कंपाइलर को क्लोब नहीं करता है। संपादित करने की आवश्यकता नहीं है PATH
  • नुकसान : कंपाइलर स्टैक वास्तव में पुराना होगा। (जीसीसी 4.2.1 नवीनतम एप्पल कंपाइलर है; इसे 2007 में जारी किया गया था।) स्थापित करता है /usr/bin

एचपीसी मैक ओएस एक्स से एक पूर्व-स्थापित, अप-टू-डेट बाइनरी स्थापित करना

एचपीसी मैक ओएस एक्स में जीसीसी की नवीनतम रिलीज (इस लेखन के समय, 4.8.0 (प्रायोगिक)) के साथ-साथ जी 77 बायनेरिज़ और एफ 2 सी-आधारित संकलक के लिए बायनेरिज़ हैं। पेट्स डेवलपर्स अपने एफएक्यू पर इस विधि की सलाह देते हैं ।

  • लाभ : सही आदेश के साथ, में स्थापित होता है /usr/local; आधुनिक। मौजूदा सिस्टम संकलक, या उपर्युक्त दृष्टिकोण को क्लोब नहीं करता है। ओएस उन्नयन के साथ हस्तक्षेप नहीं करेगा।
  • नुकसान : संपादित करने की आवश्यकता है PATH। संस्करणों के बीच स्विच करने का कोई आसान तरीका नहीं है। (आप PATH को संशोधित कर सकते हैं, संकलक को हटा सकते हैं, या इसके चारों ओर कीचड़ लगा सकते हैं।) संकलक को स्थापित करने के अन्य तरीकों को रोकेंगे /usr/localक्योंकि संकलक बायनेरिज़ को केवल 'gcc', 'g ++', आदि नाम दिए गए हैं (बिना संस्करण संख्या के, और बिना कोई भी सहानुभूति)।

MacPorts का उपयोग करें

MacPorts के पास उपयोग के लिए उपलब्ध संकलकों के कई संस्करण हैं।

  • लाभ : में स्थापित /opt/local; port selectसंकलक संस्करणों (सिस्टम संकलक सहित) के बीच स्विच करने के लिए इस्तेमाल किया जा सकता है। ओएस उन्नयन के साथ हस्तक्षेप नहीं करेगा।
  • नुकसान : पोर्ट स्थापित करने से संपूर्ण "सॉफ़्टवेयर पारिस्थितिकी तंत्र" की आवश्यकता होती है। कंपाइलरों में डिबगिंग प्रतीकों को शामिल नहीं किया जाता है, जो डीबगर का उपयोग करते समय, या PETSc को स्थापित करने में समस्या उत्पन्न कर सकता है। ( सीन फार्ले ने कुछ वर्कअराउंड का प्रस्ताव रखा है।) इसके अलावा बदलाव की आवश्यकता है PATH। Homebrew और Fink इंस्टॉल में हस्तक्षेप कर सकता है। ( इस पोस्ट को सुपरयूज़र पर देखें ।)

Homebrew का उपयोग करें

होमब्रे का उपयोग फोरट्रान कंपाइलर को स्थापित करने के लिए भी किया जा सकता है।

  • लाभ : पैकेज प्रबंधक का उपयोग करने में आसान; उसी फोरट्रान संकलक को स्थापित करता है जैसे "सिस्टम संकलक से मेल खाता संस्करण स्थापित करना"। केवल वही स्थापित करें जो आपको चाहिए (MacPorts के विपरीत)। वैकल्पिक रिपॉजिटरी होमब्रेव-डुप्स का उपयोग करके एक नया जीसीसी (4.7.0) स्टैक स्थापित कर सकता है।
  • नुकसान : "सिस्टम संकलक से मेल खाने वाले संस्करण को स्थापित करने" से सभी नुकसानों को रोकता है। /usr/localकुछ भी गड़बड़ करने से बचने के लिए अन्य (गैर-होमब्रेव) सॉफ़्टवेयर स्थापित करते समय होमब्रेव प्रतिमान का पालन करने की आवश्यकता हो सकती है । MacPorts और Fink इंस्टॉल में हस्तक्षेप कर सकता है। ( इस पोस्ट को सुपरयूज़र पर देखें ।) बदलने की आवश्यकता है PATH। इंस्टॉल सिस्टम लाइब्रेरी पर निर्भर कर सकते हैं, जिसका अर्थ है कि Homebrew संकुल के लिए निर्भरता OS अपग्रेड पर टूट सकती है। ( इस लेख को देखें ।) मुझे उम्मीद नहीं होगी कि गैफ़रान स्थापित करते समय सिस्टम लाइब्रेरी निर्भरता होगी, लेकिन अन्य होमब्रेव पैकेज स्थापित करते समय ऐसी निर्भरताएं हो सकती हैं।

फिंक का इस्तेमाल करें

सिद्धांत रूप में, आप उपयोग कर सकते फिंक gfortran स्थापित करने के लिए। मैंने इसका उपयोग नहीं किया है, और मैं किसी को नहीं जानता, जिसके पास (और कुछ सकारात्मक कहने को तैयार है)।

अन्य विधियाँ

अन्य बायनेरिज़ और लिंक GFortran विकि पर सूचीबद्ध हैं । कुछ लिंक पहले से ही ऊपर सूचीबद्ध हैं। शेष स्थापना विधियाँ ऊपर वर्णित लोगों के साथ संघर्ष कर भी सकती हैं और नहीं भी; अपने जोखिम पार इस्तेमाल करें।


एक समय था जब फ़िंक मैकपोर्ट्स पर पसंदीदा पैकेज मैनेजर था। मैंने सालों पहले इसका उपयोग करना बंद कर दिया था क्योंकि स्टैक पुराना था और इसे बनाए नहीं रखा गया था और इसमें मेरे द्वारा नियमित रूप से उपयोग किए जाने वाले कई पुस्तकालय शामिल नहीं थे। यहां हर तरीके के बारे में आप पैकेज मैनेजर द्वारा प्रबंधित कुछ चीजों के साथ समाप्त होते हैं और कुछ चीजें जो आप हाथ से रोल करते हैं। इस तरह की प्रणाली के साथ Homebrew बेहतर है, लेकिन इसे मैकपोर्ट्स के साथ वास्तव में प्रतिस्पर्धी होने के लिए कहीं अधिक पुस्तकालयों की आवश्यकता है।
एटरेल

1
आप सेज (sagemath.org) या Qsnake ( qsnake.com ) जैसी परियोजनाओं का भी उपयोग कर सकते हैं , जो कि अपने स्वयं के फोरट्रान कंपाइलर को जहाज करते हैं और आपको "पर्यावरण" में काम करने की अनुमति देते हैं, जहां आप बस "gfortran" कह सकते हैं।
ओंडेइज řertík

मेरे पास मेरे 10.5 बॉक्स पर फ़िंक का गैफ़रान है, लेकिन मैंने इसे कभी भी गंभीर परीक्षण में नहीं रखा है। यह cernlib और geant3 को संकलित करेगा , लेकिन मैंने हाल ही में किसी भी बड़े काम को नहीं चलाया है।
dmckee

होमब्रे के लिए, गफ़रन अब के साथ स्थापित किया गया है brew install gcc:$ brew install gfortran gives the message: Error: No available formula for gfortran GNU Fortran is now provided as part of GCC, and can be installed with: brew install gcc
डेव एवरिट

सीन फार्ले के विकी पेज का लिंक अब काम नहीं कर रहा है (मैकपार्ट्स इंस्टाल के साथ काम करने के लिए डिबगर कैसे प्राप्त करें) के संदर्भ में। क्या इससे राहत मिल सकती है?
TSGM

1

EasyBuild ( http://hpcugent.github.com/easybuild ) आपको आसानी से GCC संकलक का अपना सेट बनाने और स्थापित करने की अनुमति देता है।

मूल रूप से, आप इसे एक सरल इजीकोफिग (.eb) फ़ाइल देते हैं जो यह निर्दिष्ट करता है कि आप क्या बनाना चाहते हैं (जीसीसी + संस्करण + उन भाषाओं का सेट जो आप + ... के लिए कंपाइलर चाहते हैं), और फिर निर्माण और स्थापित करना एक एकल आदेश है। मैं कहता हूँ कि यह Homebrew जैसा है, लेकिन यह आपको और अधिक स्वतंत्रता देता है।

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

अस्वीकरण: मैं EasyBuild टीम का हिस्सा हूँ। बिल्डिंग जीसीसी (गैफरान के साथ) ओएस एक्स पर काम करना चाहिए, लेकिन अन्य बिल्ड परेशान कर सकते हैं। हम इस पर काम कर रहे हैं, यदि आप मुसीबत में हैं तो हमें बताएं।


क्या आपने ओएस एक्स पर परीक्षण किया है? जब आप कहते हैं कि 'काम करना चाहिए' यह अनुभव या अपेक्षाओं से है?
हिरण हंटर

@DeerHunter: अनुभव से, मेरा निजी लैपटॉप एक मैक है, OS X चलाने वाला। GCC काम करता है, लेकिन EasyBuild को कुछ अन्य बिल्ड के साथ समस्या है। हम जल्द ही इस पर गौर करने की उम्मीद करते हैं।
केनेथ होस्ट

अपवोटिंग ... टर्न आउट करने में EASY_BUILD का उपयोग करके RPMs में अजगर गुडियों को पैकेज किया जा रहा है ...
Deer Hunter

@DeerHunter EasyBuild के पास वर्तमान में RPM में पैकेजिंग सामान के लिए समर्थन नहीं है। हो सकता है कि आप EasyBuild (जो 'eb' कमांड प्रदान करता है) को भ्रमित कर रहे हैं, 'easy_install' के साथ, Python इंस्टॉलेशन टूल जो कि setuptools / disitutils द्वारा प्रदान किया गया है?
केनेथ होस्ट

तुम सही हो; यादृच्छिक स्मृति विफलताओं। वैसे भी EasyBuild की जाँच करेंगे। पैकेजिंग द्वारा किया जाता है fpm...
हिरण हंटर

0

मैं MacOS पर Intel Fortran Composer का सुझाव दूंगा। यह अच्छा है, अप-टू-डेट और काम करता है। एक नकारात्मक बात, यह मुफ़्त नहीं है। मुझे लगता है कि हालांकि 30 दिनों का मुफ्त मूल्यांकन है।

लिनक्स के तहत वे एक मुफ्त, गैर-व्यावसायिक संस्करण प्रदान करते हैं।


लिनक्स उपयोगकर्ता सोलारिस स्टूडियो भी स्थापित कर सकते हैं। यह बहुत अच्छी तरह से एकीकृत है (C / C ++ / फोरट्रान संकलक)। Dbxtool बहुत उपयोगी है और इसलिए विश्लेषक है (उदाहरण के लिए Openmp कार्यक्रमों में दौड़ की स्थिति का पता लगाने के लिए)।
१०'१२
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.