2017-04-03 93 views
3

我試圖更新我的Mac上的make版本,但遇到問題。最小項目依賴性是4.1,但我的版本似乎是3.81。我已經更新Xcode到最新版本並安裝了命令行工具,但它似乎仍然是舊版本。在Mac上更新版本4.1

有沒有人遇到這個問題或知道一種方法來解決它?

+1

要麼自己編譯最新版本,要麼使用[macports](https://www.macports.org/)或[homebrew](https://brew.sh/)之類的東西。 – user657267

+0

蘋果不太可能會用他們的系統發佈更新版本的GNU make,因爲許可證已更改爲GPLv3,Apple拒絕與該許可證有關。無論如何,我已經看到了問題報告,因爲他們已經應用到了他們的版本中。我同意user657267,從自制軟件或macports獲得一份副本。 – MadScientist

回答

5

這是我做什麼,和它的作品在我的MacOS:

第一步:安裝自制軟件(安裝命令來自https://brew.sh/):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

第二步:用自制的安裝使

brew install make --with-default-names 

只是因爲它不起作用,請試試這個:

brew install homebrew/dupes/make --with-default-names 

第3步:您需要更改默認命令以使用正確的make,而不是MacBook或Mac中的默認命令。

例如,如果鍵入

make --version 

您將看到:

GNU Make 3.81 
Copyright (C) 2006 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. 
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. 

This program built for i386-apple-darwin11.3.0 

這是默認版本的默認路徑。

所以,現在,在你的.bash_profile(這應該是你的主目錄/用戶/ your_name下),添加以下行:

export PATH="/usr/local/bin:$PATH" 

然後,源你的.bash_profile。現在嘗試檢查您的版本:

make --version 

它應該顯示:

GNU Make 4.2.1 
Built for x86_64-apple-darwin16.5.0 
Copyright (C) 1988-2016 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later  <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

乾杯。

+1

我認爲你不應該在'PATH'中放置'/ usr/local/Cellar/anything',而應該放置'/ usr/local/bin'。如果你在那裏看,你會看到一個符號鏈接到當前版本的酒窖。這樣,當你以後升級到'make v4.3'時,你的PATH仍然是正確的,因爲** homebrew **會重新鏈接新版本。另外,您的PATH對於所有* **自制軟件**包在一次衝程中都是正確的。 –

+0

謝謝! @Patrick – Alex

+1

@Mark Setchell,是的,這是更好的解決方案。我想我最初的想法是,用戶可以自己定義他/她是想單獨做還是隻做所有命令。無論如何,更新我的PATH變量。 – Patrick

0

我試圖修復通過不同的方法,即GNU下載的新版本讓我想升級成從源頭來自官方的GNU鏈接下載編譯,而不是使用自制。然後,在我的Mac上,我添加了一個路徑到我的bash外殼:

export PATH=/usr/local/bin 

到我的$ HOME目錄中的「.bashrc」文件。

然後重置我的終端。而且,它的工作。 下載自制軟件似乎存在一些問題,因爲該公式會自動將「gmake」安裝鏈接到錯誤的bin,或者更準確地說,在/usr/local/Cellar/etc./path中缺少bin。所以我認爲這可能是爲什麼它現在不起作用。希望也許有人會盡快解決。