Як слід встановити компілятор Fortran на Mac? (OS X 10.x, x> = 4)


25

Пов'язане питання: Стан Mac OS у науковому обчисленні та HPC

Значна кількість програмних пакетів з обчислювальної науки написана у Fortran, і Fortran не йде. Компілятор Fortran також необхідний для створення інших програмних пакетів (одним із помітних прикладів є SciPy ).

Однак Mac OS X не включає компілятор Fortran. Як слід встановити компілятор Fortran на свою машину?


1
Це не лише Фортран. Маки просто не мають високоякісних підтримуваних сховищ, таких як Debian, де все просто працює. Встановлення майже будь-якої речі, складної на Mac, - це біль.
stali

Відповіді:


32

Виберіть свою отруту. Я рекомендую використовувати Homebrew. Я спробував усі ці методи, крім «Фінка» та «Інших методів». Спочатку я віддав перевагу MacPorts, коли писав цю відповідь. За два роки з тих пір Homebrew значно зростав як проект і виявився більш рентабельним, ніж MacPorts, що може зажадати багатьох PATHзлому.

Встановлення версії, яка відповідає системним компіляторам

Якщо ви хочете, щоб версія gfortran відповідала версіям gcc, g ++ тощо, встановленим на вашій машині, завантажте відповідну версію gfortran звідси . Розробники R та розробники SciPy рекомендують цей метод.

  • Переваги : відповідність версій компіляторів, встановлених за допомогою XCode або з інсталятором Кеннета Рейца ; навряд чи заважатиме оновленням ОС; прекрасно співіснує з MacPorts (і, напевно, Fink та Homebrew), оскільки він встановлюється на /usr/bin. Не хапає існуючих компіляторів. Не потрібно редагувати PATH.
  • Недоліки : Склад компілятора буде справді старим. (GCC 4.2.1 - останній компілятор Apple; він був випущений у 2007 році.) Встановлюється в /usr/bin.

Встановлення попередньо складеного сучасного двійкового файлу з HPC Mac OS X

HPC Mac OS X має бінарні файли для останнього випуску GCC (на момент написання цього повідомлення, 4.8.0 (експериментальний)), а також двійкові файли g77 та компілятор на базі f2c. Розробники PETSc рекомендують цей метод у своїх FAQ .

  • Переваги : за допомогою правильної команди встановлюється /usr/local; сучасний. Не хапає існуючих системних компіляторів чи підходу вище. Не заважатиме оновленням ОС.
  • Недоліки : потрібно редагувати PATH. Немає простого способу перемикання між версіями. (Ви можете змінити PATH, видалити встановлення компілятора або збитися навколо нього.) Буде обмежено використовувати інші методи встановлення компіляторів, /usr/localоскільки бінарні файли компілятора просто називаються "gcc", "g ++" тощо (без номера версії та без будь-які посилання).

Використовуйте 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

Теоретично можна використовувати Fink для встановлення gfortran. Я не користувався цим, і не знаю нікого, хто мав (і був готовий сказати щось позитивне).

Інші методи

Інші бінарні файли та посилання перелічені у вікі GFortran . Деякі з посилань уже перераховані вище. Решта способів установки можуть суперечити описаним вище; використовувати на свій страх і ризик.


Був час, коли Фінк був кращим менеджером пакунків над MacPorts. Я перестав його використовувати багато років тому, тому що стек був старим і не підтримувався і не включав багато бібліотек, якими я регулярно користувався. Щодо кожного методу тут ви закінчуєте деякі речі, якими керує менеджер пакунків, а також деякі речі, які ви перекочуєте вручну. Homebrew краще з такою системою, але йому потрібно набагато більше бібліотек, щоб бути дійсно конкурентоспроможними MacPorts.
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
Дейв Еверітт

Посилання на сторінку Віка Шона Фарлі більше не працює (стосовно посилання на те, як змусити налагоджувачі працювати з установками MacPorts). Чи можна це повторно пов’язати?
ТСГМ

1

EasyBuild ( http://hpcugent.github.com/easybuild ) дозволяє легко створювати та встановлювати власний набір компіляторів GCC.

В основному, ви надаєте йому простий файл easyconfig (.eb), який вказує, що ви хочете створити (версія GCC + версія + набір мов, для яких потрібно компілятори для + ...), а потім складання та встановлення - це одна команда. Я б сказав, що це трохи схоже на Homebrew, але це дає більше свободи.

Крім того, EasyBuild підтримує безліч інших (наукових) програмних пакетів, які можна створити та встановити за допомогою однієї команди, тому варто переглянути.

Відмова: Я є частиною команди EasyBuild. Створення GCC (з включеним gfortran) має працювати на OS X, однак інші збірки можуть бути проблемними. Ми працюємо над цим, повідомте нас, якщо у вас виникнуть проблеми.


Ви зробили тестування на OS X? Коли ви говорите: «треба працювати», це досвід чи очікування?
Мисливець на оленів

@DeerHunter: З досвіду, мій особистий ноутбук - це Mac, який працює під керуванням OS X. Створення GCC працює, але, як відомо, EasyBuild має проблеми з деякими іншими побудовами. Ми сподіваємось, що це розглянемо незабаром.
Кеннет Хосте

Оновлення ... Виявляється, використовували EASY_BUILD для упаковки пітонічних смаколиків у RPM ...
Мисливець на оленів

@DeerHunter EasyBuild наразі не підтримує упаковку речей в обороти. Можливо, ви плутаєте EasyBuild (який надає команду 'eb'), а також 'easy_install', інструмент установки Python, який надається setuptools / disitutils?
Кеннет Хосте

Ти правий; випадкові збої пам'яті. Буде перевірена EasyBuild, все одно. Упаковка проводиться fpm...
Мисливець на оленів

0

Я б запропонував Intel Fortran Composer на MacOS. Це добре, сучасне і працює. Одне негативне, це не безкоштовно. Я думаю, що існує 30-денне безкоштовне оцінювання.

У Linux вони пропонують безкоштовну некомерційну версію.


Користувачі Linux також можуть встановити Solaris Studio. Він дуже добре інтегрований (компілятори C / C ++ / Fortran). Dbxtool дуже корисний і аналізатор (наприклад, для виявлення гоночних умов у програмах openmp).
stali
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.