Bagaimana saya menginstal kompiler Fortran di Mac? (OS X 10.x, x> = 4)

25

Pertanyaan terkait: Keadaan Mac OS dalam Scientific Computing dan HPC

Sejumlah besar paket perangkat lunak dalam ilmu komputasi ditulis dalam Fortran, dan Fortran tidak akan hilang. Kompiler Fortran juga diperlukan untuk membuat paket perangkat lunak lain (salah satu contohnya adalah SciPy ).

Namun, Mac OS X tidak termasuk kompiler Fortran. Bagaimana saya menginstal kompiler Fortran di mesin saya?

Geoff Oxberry
sumber
1
Bukan hanya Fortran. Mac tidak memiliki repositori yang didukung kualitas tinggi seperti Debian di mana semuanya berfungsi. Menginstal hampir semua hal rumit pada Mac adalah hal yang menyebalkan.
stali

Jawaban:

32

Pilih racunmu. Saya sarankan menggunakan Homebrew. Saya telah mencoba semua metode ini kecuali untuk "Fink" dan "Metode Lain". Awalnya, saya lebih suka MacPorts ketika saya menulis jawaban ini. Dalam dua tahun sejak itu, Homebrew telah berkembang pesat sebagai sebuah proyek dan telah terbukti lebih dapat dipertahankan daripada MacPorts, yang dapat membutuhkan banyak PATHperetasan.

Menginstal versi yang cocok dengan kompiler sistem

Jika Anda ingin versi gfortran cocok dengan versi gcc, g ++, dll yang diinstal pada mesin Anda, unduh versi gfortran yang sesuai dari sini . Pengembang R dan pengembang SciPy merekomendasikan metode ini.

  • Keuntungan : Cocok dengan versi kompiler yang diinstal dengan XCode atau dengan installer Kenneth Reitz ; tidak mungkin mengganggu peningkatan OS; hidup berdampingan dengan MacPorts (dan mungkin Fink dan Homebrew) karena diinstal untuk /usr/bin. Tidak merusak kompiler yang ada. Tidak perlu diedit PATH.
  • Kekurangan : Tumpukan kompiler akan menjadi sangat tua. (GCC 4.2.1 adalah kompiler Apple terbaru; dirilis pada 2007.) Menginstal ke /usr/bin.

Menginstal biner yang telah dikompilasi, terkini dari HPC Mac OS X

HPC Mac OS X memiliki binari untuk rilis terbaru GCC (pada saat penulisan ini, 4.8.0 (percobaan)), serta g77 binari, dan kompiler berbasis f2c. Pengembang PETSc merekomendasikan metode ini pada FAQ mereka .

  • Keuntungan : Dengan perintah yang tepat, instal di /usr/local; mutakhir. Tidak mengganggu kompiler sistem yang ada, atau pendekatan di atas. Tidak akan mengganggu peningkatan OS.
  • Kekurangan : Perlu diedit PATH. Tidak ada cara mudah untuk beralih antar versi. (Anda dapat memodifikasi PATH, menghapus instalasi kompiler, atau mengatasinya.) Akan menghadapi metode pemasangan kompiler lainnya /usr/localkarena biner kompiler hanya bernama 'gcc', 'g ++', dll. (Tanpa nomor versi, dan tanpa ada symlink).

Gunakan MacPorts

MacPorts memiliki sejumlah versi kompiler yang tersedia untuk digunakan.

  • Keuntungan : Menginstal di /opt/local; port selectdapat digunakan untuk beralih di antara versi kompiler (termasuk kompiler sistem). Tidak akan mengganggu peningkatan OS.
  • Kekurangan : Menginstal port cenderung memerlukan seluruh "ekosistem perangkat lunak". Compiler tidak menyertakan simbol debugging, yang dapat menimbulkan masalah saat menggunakan debugger, atau menginstal PETSc. ( Sean Farley mengusulkan beberapa solusi.) Juga perlu diubah PATH. Dapat mengganggu pemasangan Homebrew dan Fink. (Lihat posting ini di SuperUser .)

Gunakan Homebrew

Homebrew juga dapat digunakan untuk menginstal kompiler Fortran.

  • Keuntungan : Manajer paket yang mudah digunakan; menginstal kompiler Fortran yang sama seperti pada "Menginstal versi yang cocok dengan kompiler sistem". Instal hanya yang Anda butuhkan (berbeda dengan MacPorts). Bisa menginstal tumpukan GCC (4.7.0) yang lebih baru menggunakan repositori homebrew-dupes alternatif.
  • Kekurangan : Mewarisi semua kelemahan dari "Menginstal versi yang cocok dengan kompiler sistem". Mungkin perlu mengikuti paradigma Homebrew ketika menginstal perangkat lunak lain (non-Homebrew) /usr/localuntuk menghindari kekacauan. Dapat mengganggu instalasi MacPorts dan Fink. (Lihat posting ini di SuperUser .) Perlu diubah PATH. Pemasangan dapat bergantung pada pustaka sistem, yang berarti bahwa dependensi untuk paket-paket Homebrew dapat rusak pada peningkatan OS. (Lihat artikel ini .) Saya tidak berharap akan ada dependensi pustaka sistem saat menginstal gfortran, tetapi mungkin ada dependensi seperti itu ketika menginstal paket Homebrew lainnya.

Gunakan Fink

Secara teori, Anda dapat menggunakan Fink untuk menginstal gfortran. Saya belum menggunakannya, dan saya tidak tahu siapa yang punya (dan bersedia mengatakan sesuatu yang positif).

Metode lainnya

Binari dan tautan lain tercantum di wiki GFortran . Beberapa tautan sudah terdaftar di atas. Metode instalasi yang tersisa mungkin atau mungkin tidak bertentangan dengan yang dijelaskan di atas; gunakan dengan risiko Anda sendiri.

Geoff Oxberry
sumber
Ada saat ketika Fink menjadi manajer paket yang lebih disukai daripada MacPorts. Saya berhenti menggunakannya bertahun-tahun yang lalu karena tumpukan sudah tua dan tidak terawat dan tidak termasuk banyak perpustakaan yang saya gunakan secara teratur. Dengan setiap metode di sini Anda berakhir dengan beberapa hal yang dikelola oleh manajer paket dan beberapa hal yang Anda lakukan dengan tangan. Homebrew lebih baik dengan sistem seperti itu, tetapi perlu jauh lebih banyak perpustakaan untuk benar-benar kompetitif dengan MacPorts.
aterrel
1
Anda juga dapat menggunakan proyek seperti Sage (sagemath.org) atau Qsnake ( qsnake.com ), yang mengirimkan kompiler Fortran mereka sendiri dan memungkinkan Anda untuk bekerja di "lingkungan", di mana Anda dapat memanggil "gfortran".
Ondřej Čertík
Saya memiliki gfortran fink di kotak 10,5 saya, tetapi tidak pernah mengujinya dengan sangat serius. Ini akan mengkompilasi cernlib dan geant3, tapi saya belum menjalankan pekerjaan besar di bawah belakangan ini.
dmckee
Untuk Homebrew, gfortran sekarang diinstal dengan 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
Tautan ke halaman Wiki Sean Farley tidak lagi berfungsi (merujuk pada cara membuat debugger bekerja dengan pemasangan MacPorts). Bisakah ini dihubungkan kembali?
TSGM
1

EasyBuild ( http://hpcugent.github.com/easybuild ) memungkinkan Anda untuk membangun dan menginstal set kompiler GCC Anda sendiri dengan mudah.

Pada dasarnya, Anda memberikan file easyconfig (.eb) yang sederhana yang menentukan apa yang ingin Anda bangun (GCC + versi + sekumpulan bahasa yang Anda ingin kompiler untuk + ...), dan kemudian membangun dan menginstal adalah satu perintah. Saya akan mengatakan itu sedikit seperti Homebrew, tetapi memberi Anda lebih banyak kebebasan.

Juga, EasyBuild mendukung banyak paket perangkat lunak (ilmiah) lain yang dapat dibangun dan diinstal dengan satu perintah, jadi ada baiknya melihat.

Penafian: Saya bagian dari tim EasyBuild. Membangun GCC (termasuk gfortran) harus bekerja di OS X, tetapi build lain mungkin merepotkan. Kami sedang mengerjakannya, beri tahu kami jika Anda mengalami masalah.

Kenneth Hoste
sumber
Sudahkah Anda melakukan pengujian pada OS X? Ketika Anda mengatakan 'harus bekerja' apakah itu dari pengalaman atau harapan?
Pemburu Rusa
@DeerHunter: Dari pengalaman, laptop pribadi saya adalah Mac, menjalankan OS X. Membangun GCC berfungsi, tetapi EasyBuild diketahui memiliki masalah dengan beberapa build lainnya. Kami berharap dapat segera melihatnya.
Kenneth Hoste
Upvoting ... Ternyata telah menggunakan EASY_BUILD untuk mengemas barang python menjadi RPM ...
Deer Hunter
@DeerHunter EasyBuild saat ini tidak memiliki dukungan untuk mengemas barang-barang ke dalam RPM. Mungkin Anda membingungkan EasyBuild (yang menyediakan perintah 'eb'), dengan 'easy_install', alat instalasi Python yang disediakan oleh setuptools / disitutils?
Kenneth Hoste
Kamu benar; kegagalan memori acak. Akan tetap memeriksa EasyBuild. Pengemasan dilakukan oleh fpm...
Deer Hunter
0

Saya akan menyarankan Intel Fortran Composer di MacOS. Itu bagus, terkini dan berfungsi. Satu hal negatif, itu tidak gratis. Saya pikir ada evaluasi gratis 30 hari.

Di Linux mereka menawarkan versi non-komersial gratis.

electrique
sumber
Pengguna Linux juga dapat menginstal Solaris Studio. Ini terintegrasi dengan sangat baik (kompiler C / C ++ / Fortran). Dbxtool sangat berguna dan begitu juga alat analisa (misalnya untuk mendeteksi kondisi balapan dalam program openmp).
stali