Mac上的cmake安装程序无法创建/usr/bin符号链接

39
尝试在OS X 10.9.3上安装CMake cmake-2.8.12.2-Darwin64-universal.dmg。我已从应用程序文件夹中删除了旧版本,并删除了usr/bin中的ccmake,cmake,cmake-gui等。但是出现“创建符号链接失败,安装可能不完整:/usr/bin/cpack”和其他错误消息。 如果有任何建议或问题,请告诉我。 感谢您在我的问题上花费宝贵的时间。

1
通常在Mac上进行安装需要root访问权限...我建议您执行su并输入root密码,然后如果是终端驱动的安装,请重复安装。 - Mark Setchell
谢谢,马克。我尝试按照这个链接从命令行安装cmake dmg。 http://apple.stackexchange.com/questions/73926/is-there-a-command-to-install-a-dmg 但是出现了“尝试在/Applications/中定位卷时出错”的问题。 我可以再听一些建议吗?谢谢! - willSapgreen
我认为@ComicSansMS提出了一个很好的建议,运行ls -l /usr/bin | grep -i cmake并使用sudo rm /usr/bin/something删除所有链接。然后重新尝试安装,但请编辑您的问题并更新其中所有输出,以便其他人可以协助您。 - Mark Setchell
抱歉更新晚了。根据@ComicSansMS的建议(删除所有链接),安装成功了!感谢ComicSansMS和Mark Setchell。 - willSapgreen
尝试使用此线程中解释的解决方案:https://dev59.com/RmvXa4cB1Zd3GeqPEwGg - matecito
10个回答

95

CMake 3.0似乎不再附带安装程序。所以我遇到了类似的问题。正如@ComicSansMS所说,您需要先使用sudo rm删除符号链接。然后你可以使用sudo /Applications/CMake.app/Contents/MacOS/CMake运行GUI,并使用工具菜单中的“安装命令行使用”选项。

从某个新的3.x版本开始,您需要使用此命令创建符号链接:

sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

注意选项现在只给出这个指令和其他可能的选择。


2
这种方式对我有效。似乎必须使用sudo来运行它。当我从Applications中运行时它不起作用。 - Russj
1
非常有帮助!如果问题没有明确要求使用2.8.12.2版本,我会建议更新并将此作为答案。感谢。 - rainbowgoblin

20
在最新版本中,安装过程非常简单,在终端中只需键入:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

软链接将会自动生成。

已测试通过cmake版本3.3.2cmake版本3.8.0


如果您担心在之前版本中有剩余链接,您可以在安装新版本之前将它们删除:

cd /usr/bin; sudo rm ccmake cmake cmake-gui cmakexbuild cpack ctest
否则,对于旧版本,您应该使用具有管理员特权的帐户启动应用程序,以使安装工作正常。例如:
sudo /Applications/CMake.app/Contents/MacOS/CMake

18

如前所述,请以sudo模式启动GUI。打开终端并输入:

如前所述,请以sudo模式启动GUI。打开终端并输入:

sudo /Applications/CMake.app/Contents/MacOS/CMake

然后在GUI界面中,转到工具菜单并选择安装为命令行使用,然后点击安装命令行链接按钮。终端将显示:

ln -s [/Applications/CMake.app/Contents/bin/ccmake] [/usr/bin/ccmake]
ln -s [/Applications/CMake.app/Contents/bin/cmake] [/usr/bin/cmake]
ln -s [/Applications/CMake.app/Contents/bin/cmake-gui] [/usr/bin/cmake-gui]
ln -s [/Applications/CMake.app/Contents/bin/cmakexbuild] [/usr/bin/cmakexbuild]
ln -s [/Applications/CMake.app/Contents/bin/cpack] [/usr/bin/cpack]
ln -s [/Applications/CMake.app/Contents/bin/ctest] [/usr/bin/ctest]

现在你已经到了这里。这个版本是使用cmake-3.1.0-rc2测试的。


2
至少在3.3.0-rc3版本中,“安装命令行使用”菜单已不再存在。 - Dylan Nissley

11

我有时也会遇到这个问题。

问题基本上是当从应用程序中删除CMake时,之前安装的符号链接没有被清理干净,现在安装程序更新到新版本时出现了麻烦。

最简单的解决方法是手动从/usr/bin中删除这些链接,并重新运行安装程序。我记得至少需要删除cmakeccmakecmake-guicpackctest。最好的方法是从控制台执行ls -l /usr/bin命令,并使用grep查找所有指向旧的CMake安装目录的链接。


1
抱歉,ComicSansMS。出于某种原因,它仍然无法正常工作。但是非常感谢您的建议! - willSapgreen
感谢;不需要逗号,另外cmakexbuild:cd /usr/bin; sudo rm cmake ccmake cmake-gui cpack ctest cmakexbuild - Flash Sheridan

8

在IT技术中有一个选项

Cmake GUI->Tools->How to install for command line use

显示选项的内容

One may add CMake to the PATH:

 PATH="/Applications/CMake.app/Contents/bin":"$PATH"

Or, to install symlinks to '/usr/local/bin', run:

 sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

Or, to install symlinks to another directory, run:

 sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin

第一种选项适合我。

看起来这是适用于版本3.6.2的那一个。 - fbessho

3
在CMake 3.3.0中不再有选项Install For Command Line。以下是我做的方法。 我已经下载了dmg文件并复制到应用程序文件夹。但我必须将二进制文件的路径添加到PATH环境变量中。这是完整的逐步说明。 1.从官方网站(http://www.cmake.org)下载CMake dmg; 2.打开dmg文件。将CMake可执行文件复制到应用程序文件夹; 3.打开终端并输入“cd〜”(转到您的主文件夹); 4.打开文件.bash_profile(如果不存在,请使用“touch .bash_profile”创建它); 5.在.bash_profile文件中插入以下行: export PATH =“/Applications/CMake.app/Contents/bin/:$PATH” (这将向您的PATH变量添加CMake的二进制文件)
  1. 保存.bash_profile文件并退出;

  2. 回到终端,输入“source .bash_profile”以更新PATH变量;

  3. 准备就绪!再次尝试编译 :)

将其添加到PATH的好处是每次重新启动计算机时都会起作用。


如果您想进入您的主文件夹,可以只使用“cd”命令。 - user31389

3
非常简单,安装 .dmg 文件然后打开,
工具 -> 如何安装命令行使用
你可以找到:
加入 CMake 到 PATH 中:
PATH="/Applications/CMake.app/Contents/bin":"$PATH"
或者,如果要安装符号链接到 '/usr/local/bin',运行:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
或者,如果要安装符号链接到其他目录,运行:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin

1
如果您想在OSX 10.11上安装,它必须安装到/usr/local/bin(仅/usr/bin不起作用!)。我无法使用已安装的cmake(3.2.1)使其工作。下载最新版本(3.6.1)并使用此命令行后,它可以工作。无需转到GUI并单击“安装命令行工具”,它会立即执行。
注:在cmake-3.6.1上未指定/usr/local/bin也可能起作用-尚未测试。
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/usr/local/bin

1
在终端中打开应用程序文件夹。
cd /
cd Applications/

然后进行以下操作:
sudo bash
CMake.app/Contents/bin/cmake-gui

然后从CMake GUI中运行:

"工具->安装为命令行使用"

对我来说可以正常工作。


0
尝试使用sudo start cmake-gui,并在安装命令行时选择文件夹/usr/local/bin而不是默认的/usr/bin,我成功了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接