2017-04-03 109 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。所以我认为这可能是为什么它现在不起作用。希望也许有人会尽快解决。