Tôi nên cài đặt trình biên dịch Fortran trên máy Mac như thế nào? (Hệ điều hành X 10.x, x> = 4)


25

Câu hỏi liên quan: Trạng thái của hệ điều hành Mac trong tính toán khoa học và HPC

Một số lượng đáng kể các gói phần mềm trong khoa học tính toán được viết bằng Fortran và Fortran sẽ không biến mất. Một trình biên dịch Fortran cũng được yêu cầu để xây dựng các gói phần mềm khác (một ví dụ đáng chú ý là SciPy ).

Tuy nhiên, Mac OS X không bao gồm trình biên dịch Fortran. Tôi nên cài đặt trình biên dịch Fortran trên máy của mình như thế nào?


1
Nó không chỉ là Fortran. Máy Mac đơn giản là không có kho lưu trữ được hỗ trợ chất lượng cao như Debian, nơi mọi thứ chỉ hoạt động. Cài đặt khá nhiều thứ phức tạp trên máy Mac là một điều khó khăn.
stali

Câu trả lời:


32

Chọn thuốc độc của bạn. Tôi khuyên bạn nên sử dụng Homebrew. Tôi đã thử tất cả các phương pháp này ngoại trừ "Fink" và "Các phương pháp khác". Ban đầu, tôi thích MacPorts khi tôi viết câu trả lời này. Trong hai năm kể từ đó, Homebrew đã phát triển rất nhiều như một dự án và đã chứng minh được khả năng bảo trì cao hơn MacPorts, có thể yêu cầu rất nhiều PATHhack.

Cài đặt phiên bản phù hợp với trình biên dịch hệ thống

Nếu bạn muốn phiên bản gfortran phù hợp với các phiên bản gcc, g ++, v.v. được cài đặt trên máy của bạn, hãy tải xuống phiên bản gfortran thích hợp từ đây . Các nhà phát triển R và các nhà phát triển SciPy đề xuất phương pháp này.

  • Ưu điểm : Phù hợp với các phiên bản trình biên dịch được cài đặt với XCode hoặc với trình cài đặt của Kenneth Reitz ; không có khả năng can thiệp vào việc nâng cấp hệ điều hành; cùng tồn tại độc đáo với MacPorts (và có thể là Fink và Homebrew) vì nó cài đặt vào /usr/bin. Không ghi đè trình biên dịch hiện có. Đừng cần chỉnh sửa PATH.
  • Nhược điểm : Ngăn xếp trình biên dịch sẽ thực sự cũ. (GCC 4.2.1 là trình biên dịch mới nhất của Apple; nó được phát hành vào năm 2007) /usr/bin.

Cài đặt nhị phân được cập nhật, được biên dịch sẵn từ HPC Mac OS X

HPC Mac OS X có các tệp nhị phân cho bản phát hành GCC mới nhất (tại thời điểm viết bài này, 4.8.0 (thử nghiệm)), cũng như các tệp nhị phân g77 và trình biên dịch dựa trên f2c. Các nhà phát triển PETSc đề xuất phương pháp này trong Câu hỏi thường gặp của họ .

  • Ưu điểm : Với lệnh đúng, cài đặt vào /usr/local; cập nhật Không ghi đè trình biên dịch hệ thống hiện có hoặc cách tiếp cận ở trên. Không can thiệp vào nâng cấp hệ điều hành.
  • Nhược điểm : Cần chỉnh sửa PATH. Không có cách dễ dàng để chuyển đổi giữa các phiên bản. (Bạn có thể sửa đổi PATH, xóa các trình biên dịch cài đặt, hoặc kludge xung quanh nó.) Sẽ clobber các phương pháp khác của việc cài đặt trình biên dịch trong /usr/localvì binaries biên dịch chỉ đơn giản có tên là 'gcc', 'g ++', vv (mà không có một số phiên bản, và không có bất kỳ liên kết tượng trưng).

Sử dụng MacPorts

MacPorts có một số phiên bản trình biên dịch có sẵn để sử dụng.

  • Ưu điểm : Cài đặt trong /opt/local; port selectcó thể được sử dụng để chuyển đổi giữa các phiên bản trình biên dịch (bao gồm trình biên dịch hệ thống). Không can thiệp vào nâng cấp hệ điều hành.
  • Nhược điểm : Cài đặt cổng có xu hướng yêu cầu toàn bộ "hệ sinh thái phần mềm". Trình biên dịch không bao gồm các ký hiệu gỡ lỗi, có thể gây ra sự cố khi sử dụng trình gỡ lỗi hoặc cài đặt PETSc. ( Sean Farley đề xuất một số cách giải quyết.) Cũng yêu cầu thay đổi PATH. Có thể can thiệp vào cài đặt Homebrew và Fink. (Xem bài đăng này trên SuperUser .)

Sử dụng Homebrew

Homebrew cũng có thể được sử dụng để cài đặt trình biên dịch Fortran.

  • Ưu điểm : Dễ sử dụng trình quản lý gói; cài đặt trình biên dịch Fortran giống như trong "Cài đặt phiên bản phù hợp với trình biên dịch hệ thống". Chỉ cài đặt những gì bạn cần (trái ngược với MacPorts). Có thể cài đặt ngăn xếp GCC (4.7.0) mới hơn bằng cách sử dụng kho lưu trữ thay thế homebrew-dupes.
  • Nhược điểm : Kế thừa tất cả các nhược điểm từ "Cài đặt phiên bản phù hợp với trình biên dịch hệ thống". Có thể cần tuân theo mô hình Homebrew khi cài đặt phần mềm khác (không phải Homebrew) /usr/localđể tránh làm hỏng mọi thứ. Có thể can thiệp vào cài đặt MacPorts và Fink. (Xem bài đăng này trên SuperUser .) Cần thay đổi PATH. Việc cài đặt có thể phụ thuộc vào thư viện hệ thống, nghĩa là sự phụ thuộc cho các gói Homebrew có thể phá vỡ khi nâng cấp hệ điều hành. (Xem bài viết này .) Tôi sẽ không mong muốn có các phụ thuộc thư viện hệ thống khi cài đặt gfortran, nhưng có thể có các phụ thuộc như vậy khi cài đặt các gói Homebrew khác.

Sử dụng Fink

Về lý thuyết, bạn có thể sử dụng Fink để cài đặt gfortran. Tôi đã không sử dụng nó và tôi không biết bất cứ ai có (và sẵn sàng nói điều gì đó tích cực).

Các phương pháp khác

Các tệp nhị phân và liên kết khác được liệt kê trên wiki GFortran . Một số liên kết đã được liệt kê ở trên. Các phương pháp cài đặt còn lại có thể hoặc không thể xung đột với các phương pháp được mô tả ở trên; Sử dụng có nguy cơ của riêng bạn.


Đã có lúc Fink là người quản lý gói ưa thích hơn MacPorts. Tôi đã ngừng sử dụng nó nhiều năm trước vì ngăn xếp đã cũ và không được bảo trì và không bao gồm nhiều thư viện tôi sử dụng thường xuyên. Với mọi phương pháp ở đây, bạn kết thúc với một số thứ được quản lý bởi người quản lý gói và một số thứ bạn cuộn bằng tay. Homebrew tốt hơn với một hệ thống như vậy, nhưng nó cần nhiều thư viện hơn để thực sự cạnh tranh với MacPorts.
aterrel

1
Bạn cũng có thể sử dụng các dự án như Sage (sagemath.org) hoặc Qsnake ( qsnake.com ), vận chuyển trình biên dịch Fortran của riêng họ và cho phép bạn làm việc trong "môi trường", nơi bạn chỉ cần gọi "gfortran".
Ondřej Čertík

Tôi có gfortran của fink trên hộp 10,5 của mình, nhưng chưa bao giờ đưa nó vào một thử nghiệm thực sự nghiêm trọng. Nó sẽ biên dịch cernlib và geant3, nhưng gần đây tôi không điều hành bất kỳ công việc lớn nào.
dmckee

Đối với Homebrew, gfortran hiện được cài đặt với 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

Liên kết đến trang Wiki của Sean Farley không còn hoạt động nữa (liên quan đến cách để trình gỡ lỗi hoạt động với các bản cài đặt MacPorts). Điều này có thể được xem lại?
TSGM

1

EasyBuild ( http://hpcugent.github.com/easybuild ) cho phép bạn xây dựng và cài đặt bộ trình biên dịch GCC của riêng bạn một cách dễ dàng.

Về cơ bản, bạn cung cấp cho nó một tệp easyconfig (.eb) đơn giản chỉ định những gì bạn muốn xây dựng (phiên bản GCC + + bộ ngôn ngữ bạn muốn trình biên dịch cho + ...), sau đó xây dựng và cài đặt là một lệnh duy nhất. Tôi muốn nói nó hơi giống Homebrew, nhưng nó giúp bạn tự do hơn.

Ngoài ra, EasyBuild hỗ trợ rất nhiều gói phần mềm (khoa học) khác có thể được xây dựng và cài đặt bằng một lệnh duy nhất, vì vậy thật đáng để xem xét.

Tuyên bố miễn trừ trách nhiệm: Tôi là thành viên của nhóm EasyBuild. Xây dựng GCC (bao gồm gfortran) sẽ hoạt động trên OS X, nhưng các bản dựng khác có thể gây rắc rối. Chúng tôi đang làm việc với nó, hãy cho chúng tôi biết nếu bạn gặp rắc rối.


Bạn đã thử nghiệm trên OS X chưa? Khi bạn nói 'nên làm việc' là từ kinh nghiệm hay kỳ vọng?
Deer Hunter

@DeerHunter: Từ kinh nghiệm, máy tính xách tay cá nhân của tôi là máy Mac, chạy OS X. Building GCC hoạt động, nhưng EasyBuild được biết là có vấn đề với một số bản dựng khác. Chúng tôi hy vọng sẽ xem xét điều đó sớm.
Kenneth Hoste

Nâng cấp ... Hóa ra đã sử dụng EASY_BUILD để gói các món quà của trăn thành RPM ...
Deer Hunter

@DeerHunter EasyBuild hiện không có hỗ trợ đóng gói công cụ vào RPM. Có lẽ bạn đang nhầm lẫn EasyBuild (cung cấp lệnh 'eb'), với 'easy_install', công cụ cài đặt Python được cung cấp bởi setuptools / disitutils?
Kenneth Hoste

Bạn đúng rồi; thất bại bộ nhớ ngẫu nhiên. Sẽ kiểm tra EasyBuild, dù sao. Việc đóng gói được thực hiện bởi fpm...
Deer Hunter

0

Tôi muốn đề xuất Intel Fortran Composer trên MacOS. Nó tốt, cập nhật và hoạt động. Một điều tiêu cực, nó không miễn phí. Tôi nghĩ rằng có một đánh giá miễn phí 30 ngày mặc dù.

Trong Linux, họ cung cấp một phiên bản phi thương mại miễn phí.


Người dùng Linux cũng có thể cài đặt Solaris Studio. Nó được tích hợp rất tốt (trình biên dịch C / C ++ / Fortran). Dbxtool rất hữu ích và máy phân tích cũng vậy (ví dụ để phát hiện các điều kiện chủng tộc trong các chương trình openmp).
stali
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.