2015-01-12 29 views
2

我目前有Xcode(以及命令行工具)和gfrotran from HPC安裝在我的Yosemite系統上,並且想要替換 HPC的gfortran與Homebrew's(因爲我在使用HPC gfortran構建Python包時遇到了問題)。如何將我的HPC gfortran替換爲Homebrew gfortran?

完成此操作的步驟是什麼?

我想,以確保

  1. HPC的gfortran走了(我只是想了一個Fortran)和
  2. 蘋果的工具仍然工作(對於Xcode中,雨燕,OS X和iOS開發等)

當然

  • 我有gfortran可靠地建立Python包的工作版本。
  • 可以這樣做嗎?例如,我看到Homebrew的gfortran現在已經被封裝爲gcc的一部分,所以看起來我最終會得到兩個版本的gcc(我想避免)或者一個與Xcode不兼容的版本。

    完成1-3的步驟是什麼?

    +0

    不能建議1,但家釀的'gcc'軟件包安裝二進制文件後綴名稱如'gcc -4.9',*除*爲沒有後綴的gfortran。 Homebrew gcc的庫以不會干擾hpc二進制文件的方式進行沙盒處理。 'mv/usr/local/bin/gfortran/usr/local/bin/gfortran-hpc'應該足以讓'brew install gcc'成功並正常工作。 HPC和Homebrew gcc的存在不應該影響蘋果的工具。 Apple在最近的Xcode中沒有發佈gcc;/usr/bin/gcc是一個調用clang的存根。 –

    +1

    Time Machine是你的朋友......確保你在開始之前運行正確的備份。 –

    +0

    @TimSmith:是否有一些強制或覆蓋選項可用於處理HPC安裝的所有文件(問題1)(或其他方式)? – orome

    回答

    1

    我最近通過這個非常相同的問題。這是我如何在我的優勝美地系統上工作的。

    關於家庭釀造和命令行工具,編譯器有些事情:

    1. 您通過家庭釀造讓編譯器將覆蓋現有如果它是在同一個地方。如果你有一個從命令行工具中獲得的fortran編譯器,那麼它不會受到影響(家庭brew會在做任何事情之前提醒你)

    2. 通過命令行獲得的編譯器的二進制文件工具在/usr/bin

    3. 的編譯器(和其他東西),你獲得使用家庭釀造儲存在地窖裏(/usr/local/Cellar) 和可執行文件鏈接到該目錄/usr/local/bin

    怎麼辦?

    1. 修改路徑: 使用我通過家庭釀造得到了編譯器,我只需要讓我感動/usr/local/bin$path的頂部這確保了/usr/local/bin目錄/usr/bin之前搜索。

    2. 使用別名: 您可以爲每個編譯器創建一個別名,以便您可以隨意使用它們。要創建一個別名,你必須修改你的shell-rc文件。在我的系統中,我使用tcsh,併爲home-brew編譯器創建一個別名,我會在〜/ .cshrc文件中添加類似這樣的內容。

      alias brewgfortran '/usr/local/bin/gfortran' 
      

      這個現在執行存儲在我的地窖,並鏈接到/usr/local/bin/gfortran/

    3. 家釀造gfortran-4.9可執行文件如果你確實想擺脫蘋果的編譯器,你當然可以從刪除/usr/bin/目錄完全。但我認爲這不是最好的想法。我已經向你展示了幾種避免使用它們的方法,如果你出於某種原因需要它們,你會成爲SOL。我不能說,如果你所需要的工具,將沒有他們的工作,因爲我從來沒有使用過任何這些,但我知道這將構建Python包,爲你(抱歉,希望這仍然可以幫助)

    注:如果你沒有使用與我相同的shell別名的語法有點不同(我認爲)只是谷歌它或man alias

    +0

    FWIW,我最終手動刪除了HPC的gfortran安裝的文件(後面跟着gfortran的「brew install」和一些修剪,並按照安裝建議覆蓋了鏈接)。除了['texlive'](http://stackoverflow.com/q/27946302/656912)和'mysql-utilities'之外,'/ usr/local'現在看起來在Homebrew的控制下已經很舒服了。蘋果的'gcc'似乎不受干擾。 – orome

    +0

    很高興聽到它,備份真的是你的朋友在這樣的情況下,如果它打破你總是想要能夠回去! – Ajay