ฉันจะติดตั้งคอมไพเลอร์ Fortran บน Mac ได้อย่างไร (OS X 10.x, x> = 4)


25

คำถามที่เกี่ยวข้อง: สถานะของ Mac OS ใน Scientific Computing และ HPC

แพคเกจซอฟต์แวร์จำนวนมากในสาขาวิทยาศาสตร์การคำนวณเขียนใน Fortran และ Fortran จะไม่หายไป คอมไพเลอร์ Fortran ยังจำเป็นต้องมีการสร้างแพ็คเกจซอฟต์แวร์อื่น ๆ (ตัวอย่างหนึ่งที่น่าสังเกตว่าเป็นSciPy )

อย่างไรก็ตาม Mac OS X ไม่รวมคอมไพเลอร์ Fortran ฉันจะติดตั้งคอมไพเลอร์ Fortran บนเครื่องของฉันได้อย่างไร?


1
มันไม่ใช่แค่ฟอร์แทรน Macs ไม่มีที่เก็บที่รองรับคุณภาพสูงอย่าง Debian ที่ทุกอย่างใช้งานได้ การติดตั้งสิ่งที่ซับซ้อนบน Mac เป็นเรื่องที่เจ็บปวด
stali

คำตอบ:


32

เลือกพิษของคุณ ฉันแนะนำให้ใช้ Homebrew ฉันลองใช้วิธีการเหล่านี้ทั้งหมดยกเว้น "Fink" และ "วิธีอื่น" เดิมฉันชอบ MacPort เมื่อฉันเขียนคำตอบนี้ ในช่วงสองปีที่ผ่านมา Homebrew ได้เติบโตเป็นอย่างมากและได้พิสูจน์แล้วว่าสามารถบำรุงรักษาได้ดีกว่า MacPorts ซึ่งอาจต้องPATHแฮ็คจำนวนมาก

การติดตั้งเวอร์ชันที่ตรงกับคอมไพเลอร์ระบบ

หากคุณต้องการรุ่นของ gfortran เพื่อให้ตรงกับรุ่นของ GCC กรัม ++ ฯลฯ ที่ติดตั้งในเครื่องของคุณดาวน์โหลดรุ่นที่เหมาะสมของ gfortran จากที่นี่ พัฒนา Rและพัฒนา SciPyแนะนำวิธีการนี้

  • ข้อดี : จับคู่เวอร์ชันคอมไพเลอร์ที่ติดตั้งกับ XCode หรือกับตัวติดตั้งของ Kenneth Reitz ; ไม่น่าที่จะรบกวนการอัพเกรดระบบปฏิบัติการ coexists อย่างกับ MacPorts (และอาจตำรวจและ Homebrew) /usr/binเพราะมันจะติดตั้ง ไม่ปิดบังคอมไพเลอร์ที่มีอยู่ PATHไม่จำเป็นต้องแก้ไข
  • ข้อเสีย : กองคอมไพเลอร์จะเก่าจริง ๆ (GCC 4.2.1 เป็นคอมไพเลอร์แอปเปิ้ลล่าสุดได้รับการปล่อยตัวในปี 2007) /usr/binการติดตั้งไป

การติดตั้งไบนารีที่คอมไพล์และทันสมัยจาก HPC Mac OS X

HPC Mac OS Xมีไบนารีสำหรับ GCC รุ่นล่าสุด (ในขณะที่เขียนนี้ 4.8.0 (ทดลอง)) รวมถึง g77 ไบนารีและคอมไพเลอร์ที่ใช้ f2c นักพัฒนา PETSc แนะนำให้ใช้วิธีนี้ได้ด้วยคำถามที่พบบ่อย

  • ข้อดี : ด้วยคำสั่งที่ถูกต้องติดตั้งใน/usr/local; ปัจจุบัน. อย่าอุดตันคอมไพเลอร์ระบบที่มีอยู่หรือวิธีการข้างต้น จะไม่รบกวนการอัพเกรดระบบปฏิบัติการ
  • ข้อเสีย : PATHต้องแก้ไข ไม่มีวิธีที่ง่ายในการสลับระหว่างรุ่นต่างๆ (คุณสามารถแก้ไข PATH ลบการติดตั้งคอมไพเลอร์หรือ kludge รอบ ๆ ) จะอุดตันวิธีการอื่นของการติดตั้งคอมไพเลอร์/usr/localเนื่องจากไบนารีคอมไพเลอร์มีชื่อเพียง 'gcc', 'g ++' ฯลฯ (ไม่มีหมายเลขรุ่นและไม่มี symlink ใด ๆ )

ใช้ MacPorts

MacPortsมีคอมไพเลอร์หลายเวอร์ชันให้ใช้งาน

  • ข้อดี : ติดตั้งใน/opt/local; port selectสามารถใช้เพื่อสลับระหว่างเวอร์ชันคอมไพเลอร์ (รวมถึงคอมไพเลอร์ระบบ) จะไม่รบกวนการอัพเกรดระบบปฏิบัติการ
  • ข้อเสีย : การติดตั้งพอร์ตมีแนวโน้มที่จะต้องการ "ระบบนิเวศซอฟต์แวร์" ทั้งหมด คอมไพเลอร์ไม่รวมสัญลักษณ์การดีบักซึ่งอาจก่อให้เกิดปัญหาเมื่อใช้ดีบักเกอร์หรือติดตั้ง PETSc ( ฌอนฟาร์ลี่ย์เสนอวิธีการแก้ปัญหาบางอย่าง.) PATHนอกจากนี้ยังต้องมีการเปลี่ยนแปลง อาจรบกวนการติดตั้ง Homebrew และ Fink (ดูโพสต์นี้ใน SuperUser )

ใช้ Homebrew

Homebrewยังสามารถใช้เพื่อติดตั้งคอมไพเลอร์ Fortran

  • ข้อดี : ผู้จัดการแพคเกจใช้งานง่าย; ติดตั้งคอมไพเลอร์ Fortran เช่นเดียวกับใน "การติดตั้งเวอร์ชันที่ตรงกับระบบคอมไพเลอร์" ติดตั้งเฉพาะสิ่งที่คุณต้องการ (ตรงกันข้ามกับ MacPorts) ไม่สามารถติดตั้งสแต็ก GCC ใหม่ (4.7.0) ที่ใหม่กว่าโดยใช้โฮมบุ๊กที่เก็บสำรอง
  • ข้อเสีย : รับข้อเสียทั้งหมดจาก "การติดตั้งรุ่นที่ตรงกับระบบคอมไพเลอร์" อาจต้องปฏิบัติตามกระบวนทัศน์ Homebrew เมื่อติดตั้งซอฟต์แวร์ (ไม่ใช่ Homebrew) อื่น ๆ/usr/localเพื่อหลีกเลี่ยงการทำสิ่งใดผิดพลาด อาจรบกวนการติดตั้ง MacPorts และ Fink (ดูที่โพสต์ใน SuperUser .) PATHต้องการการเปลี่ยนแปลง การติดตั้งอาจขึ้นอยู่กับไลบรารีระบบซึ่งหมายความว่าการขึ้นต่อกันของแพ็คเกจ Homebrew อาจทำให้การอัปเกรดระบบปฏิบัติการแตก (ดูบทความนี้ ) ฉันไม่คาดหวังว่าจะมีการอ้างอิงไลบรารีระบบเมื่อติดตั้ง gfortran แต่อาจมีการอ้างอิงดังกล่าวเมื่อติดตั้งแพคเกจ Homebrew อื่น ๆ

ใช้ตำรวจ

ในทางทฤษฎีคุณสามารถใช้Finkเพื่อติดตั้ง gfortran ฉันไม่ได้ใช้มันและฉันไม่รู้จักใครที่มี (และเต็มใจที่จะพูดอะไรบางอย่างในเชิงบวก)

วิธีอื่น ๆ

ไบนารีและการเชื่อมโยงอื่น ๆ มีการระบุไว้ในวิกิพีเดีย gfortran ลิงก์บางรายการอยู่ในรายการด้านบนแล้ว วิธีการติดตั้งที่เหลืออาจจะใช่หรือไม่ขัดแย้งกับวิธีที่อธิบายไว้ข้างต้น ใช้ความเสี่ยงของคุณเอง


มีเวลาที่ Fink เป็นผู้จัดการแพคเกจที่ต้องการผ่าน MacPorts ฉันหยุดใช้เมื่อหลายปีก่อนเนื่องจากสแต็กเก่าและไม่ได้รับการดูแลรักษาและไม่ได้รวมไลบรารีจำนวนมากที่ฉันใช้เป็นประจำ ด้วยทุกวิธีที่นี่คุณจะได้พบกับบางสิ่งที่จัดการโดยผู้จัดการแพคเกจและบางสิ่งที่คุณทำด้วยมือ Homebrew นั้นดีกว่าด้วยระบบดังกล่าว แต่มันต้องการไลบรารี่มากขึ้นเพื่อให้สามารถแข่งขันกับ MacPort ได้
aterrel

1
นอกจากนี้คุณยังสามารถใช้โครงการเช่น Sage (sagemath.org) หรือ Qsnake ( qsnake.com ) ซึ่งจัดส่งคอมไพเลอร์ Fortran ของพวกเขาและอนุญาตให้คุณทำงานใน "สภาพแวดล้อม" ซึ่งคุณสามารถเรียก "gfortran" ได้
OndřejČertík

ฉันมี gfortran ของตำรวจในกล่อง 10.5 ของฉัน แต่ไม่เคยทดสอบเลย มันจะรวบรวม cernlib และ geant3 แต่ฉันไม่ได้ทำงานใหญ่ ๆ เลย
dmckee

สำหรับ Homebrew ตอนนี้ gfortran ได้รับการติดตั้งด้วย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
Dave Everitt

ลิงก์ไปยังหน้า Wiki ของ Sean Farley ไม่สามารถใช้งานได้อีกต่อไป (ในส่วนอ้างอิงถึงวิธีการให้ตัวดีบั๊กทำงานกับการติดตั้ง MacPorts) สามารถลิงก์ใหม่ได้หรือไม่
TSGM

1

EasyBuild ( http://hpcugent.github.com/easybuild ) ช่วยให้คุณสามารถสร้างและติดตั้งคอมไพเลอร์ GCC ของคุณเองได้อย่างง่ายดาย

โดยทั่วไปคุณให้ไฟล์ easyconfig (.eb) ง่ายๆที่ระบุสิ่งที่คุณต้องการสร้าง (GCC + เวอร์ชัน + ชุดภาษาที่คุณต้องการคอมไพเลอร์สำหรับ + ​​... ) จากนั้นการสร้างและติดตั้งเป็นคำสั่งเดียว ฉันว่ามันเหมือน Homebrew แต่มันให้อิสระคุณมากกว่า

นอกจากนี้ EasyBuild ยังรองรับแพ็คเกจซอฟต์แวร์ (ทางวิทยาศาสตร์) อื่น ๆ อีกมากมายที่สามารถสร้างและติดตั้งด้วยคำสั่งเดียวดังนั้นจึงคุ้มค่าที่จะดู

ข้อจำกัดความรับผิดชอบ: ฉันเป็นส่วนหนึ่งของทีม EasyBuild การสร้าง GCC (ที่มี gfortran รวมอยู่) ควรทำงานบน OS X แต่งานสร้างอื่น ๆ อาจมีปัญหา เรากำลังดำเนินการอยู่โปรดแจ้งให้เราทราบหากคุณประสบปัญหา


คุณทดสอบ OS X เสร็จแล้วหรือยัง? เมื่อคุณพูดว่า 'ควรทำงาน' มันมาจากประสบการณ์หรือความคาดหวัง?
Deer Hunter เมื่อ

@DeerHunter: จากประสบการณ์แล็ปท็อปส่วนตัวของฉันคือ Mac ที่ใช้งาน OS X. การสร้าง GCC แต่ EasyBuild เป็นที่รู้กันว่ามีปัญหากับงานสร้างอื่น ๆ เราหวังว่าจะตรวจสอบในเร็ว ๆ นี้
Kenneth Hoste

Upvoting ... การใช้งาน EASY_BUILD ในการบรรจุสารหลามใน RPMs ...
Deer Hunter

@DeerHunter EasyBuild ปัจจุบันยังไม่ได้รับการสนับสนุนสำหรับบรรจุภัณฑ์ลงใน RPM บางทีคุณอาจสับสน EasyBuild (ซึ่งมีคำสั่ง 'eb') ด้วย 'easy_install' เครื่องมือติดตั้ง Python ที่จัดทำโดย setuptools / disitutils?
Kenneth Hoste

คุณพูดถูก หน่วยความจำแบบสุ่มล้มเหลว จะตรวจสอบ EasyBuild แล้ว บรรจุภัณฑ์จะกระทำโดยfpm...
Deer Hunter

0

ฉันจะแนะนำ Intel Fortran Composer บน MacOS เป็นเรื่องที่ดีทันสมัยและใช้งานได้ดี สิ่งหนึ่งที่เป็นลบมันไม่ฟรี ฉันคิดว่ามีการประเมินผลฟรี 30 วัน แต่

ภายใต้ Linux พวกเขามีรุ่นฟรีและไม่ใช่เชิงพาณิชย์


ผู้ใช้ Linux สามารถติดตั้ง Solaris Studio มันรวมกันเป็นอย่างดี (คอมไพเลอร์ C / C ++ / Fortran) Dbxtool นั้นมีประโยชน์มากและเป็นตัววิเคราะห์ (เช่นการตรวจจับเงื่อนไขการแข่งขันในโปรแกรม openmp)
stali
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.