我试图在Mac上运行Mono安装(OS X版本10.10.5),虽然安装说明它已成功完成,但我无法呼叫来自终端的单声道。
要安装它,我以root身份运行uninstallMono.sh以确保我们没有任何遗留物,然后运行MonoFramework-MDK-4.0.4.1.macos10.xamarin.x86.pkg。安装程序似乎成功完成,但尝试调用mono返回
-bash:mono:未找到命令
单声道框架似乎已安装:
Lees-Mac-Pro:Downloads kevinmack$ cd /Volumes/Macintosh\ HD/Library/Frameworks/
Lees-Mac-Pro:Frameworks kevinmack$ ls -l
total 32
lrwxr-xr-x 1 root wheel 71 Jan 20 2015 AEProfiling.framework -> ../../Applications/Motion.app/Contents/Frameworks/AEProfiling.framework
lrwxr-xr-x 1 root wheel 74 Jan 20 2015 AERegistration.framework -> ../../Applications/Motion.app/Contents/Frameworks/AERegistration.framework
lrwxr-xr-x 1 root wheel 74 Jan 20 2015 AudioMixEngine.framework -> ../../Applications/Motion.app/Contents/Frameworks/AudioMixEngine.framework
drwxr-xr-x 8 root admin 272 Sep 12 11:24 Mono.framework
lrwxr-xr-x 1 root wheel 60 Sep 9 22:16 NyxAudioAnalysis.framework -> /System/Library/PrivateFrameworks/NyxAudioAnalysis.framework
drwxr-xr-x 5 root wheel 170 Jan 20 2015 PluginManager.framework
drwxr-xr-x 8 root wheel 272 Sep 9 22:19 iTunesLibrary.framework
...但它不会出现在/usr/bin
中并尝试使用which mono
查找其可执行文件。
答案 0 :(得分:92)
在OS X El Capitan中,在终端中运行以下内容以支持mono
命令
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
答案 1 :(得分:30)
最新版本的Mono(5.x)安装过程会在mono-commands
中创建一个文件(/etc/paths.d
),其中包含以下路径:
/Library/Frameworks/Mono.framework/Versions/Current/Commands
因此不再使用/usr/local/bin
......
较新版本的单声道符合“El Capitan”要求,即不在 / usr / bin 中安装任何内容,因此现在使用 / usr / local / bin 。我不确定哪个单声道4.x版本开始......
但我会假设你的路径中没有/ usr / local / bin(?),试试:
export PATH=/usr/local/bin:${PATH}
which mono
which mcs
在我的情况下,我安装了4.2.0:
$ which mono
/usr/local/bin/mono
$ which mcs
/usr/local/bin/mcs
$ mono --version
Mono JIT compiler version 4.2.0 (explicit/2701b19 Mon Aug 31 09:57:28 EDT 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
$ cat `which mcs`
#!/bin/sh
export PATH=$PATH:/Library/Frameworks/Mono.framework/Versions/4.2.0/bin
export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/External/pkgconfig:/Library/Frameworks/Mono.framework/Versions/4.2.0/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/4.2.0/share/pkgconfig:$PKG_CONFIG_PATH
exec /Library/Frameworks/Mono.framework/Versions/4.2.0/bin/mono $MONO_OPTIONS /Library/Frameworks/Mono.framework/Versions/4.2.0/lib/mono/4.5/mcs.exe "$@"
答案 2 :(得分:13)
最好使用下一个导出:
export PATH = $ PATH:/Library/Frameworks/Mono.framework/Versions/Current/bin /
另一个选项( 最佳选项 )是在文件 / etc / paths 的末尾添加一个新行,其中包含以下内容: /Library/Frameworks/Mono.framework/Versions/Current/bin
在这种情况下,系统上的所有用户
。答案 3 :(得分:9)
使用brew cask
首次安装Mono Framework后,我发现brew
本身提供Mono(!)
我首先卸载了Mono。
$ brew cask uninstall mono-mdk
使用brew install mono
安装并删除了~/.zshrc
中的所有配置更改。
看起来好多了:
$ type mono
mono is /usr/local/bin/mono
$ mono --version
Mono JIT compiler version 4.6.2 (Stable 4.6.2.7/08fd525 Tue Nov 22 22:05:18 GMT 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: normal
SIGSEGV: altstack
Notification: kqueue
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
我首先使用brew cask
安装Mono Framework,并且必须将/Library/Frameworks/Mono.framework/Home/bin
添加到PATH
环境变量。
$ brew cask info mono-mdk
mono-mdk: 4.6.2.7
http://www.mono-project.com/
Not installed
From: https://github.com/caskroom/homebrew-cask/blob/master/Casks/mono-mdk.rb
==> Name
Mono
==> Artifacts
MonoFramework-MDK-4.6.2.7.macos10.xamarin.universal.pkg (pkg)
➜ kafunk git:(master) brew cask install mono-mdk
==> Downloading https://download.mono-project.com/archive/4.6.2/macos-10-universal/MonoFramework-MDK-4.6.2.7.macos10.xamarin.universal.pkg
######################################################################## 100,0%
==> Verifying checksum for Cask mono-mdk
==> Running installer for mono-mdk; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
==> installer: Package name is Mono Framework
==> installer: Installing at base path /
==> installer: The install was successful.
mono-mdk was successfully installed!
自从我使用oh-my-zsh后,我在MONO_HOME
中定义了~/.zshrc
并相应地调整了PATH
:
export MONO_HOME=/Library/Frameworks/Mono.framework/Home
export PATH=$MONO_HOME/bin:$PATH
可以使用mono
:
$ mono --version
Mono JIT compiler version 4.6.2 (mono-4.6.0-branch/08fd525 Thu Nov 10 20:28:28 EST 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: normal
SIGSEGV: altstack
Notification: kqueue
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: yes(3.6.0svn-mono-master/8b1520c)
GC: sgen
答案 4 :(得分:6)
我一直在看这个页面,因为我在El Capitan上安装Mono(第一次)也遇到了问题。我发现框架已安装,但命令未放入/ usr / local / bin。 Symlinking它们似乎没有用,因为我在尝试使用mono命令时会遇到错误,而且它正在寻找错误位置的库。
我最终找到的工作(通过反复试验)是使用终端中的命令将$ PATH设置为Mono框架:
export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}
由于我不是程序员或编码员(至少不是很长时间而且从不在OS X上),这使我能够使用mono运行Duplicati(这就是我首先想要它的原因),但我不确定这是否是解决这个问题的正确方法,或者即使这样做也是如此。有实际编程经验的人可以评论或澄清吗?
答案 5 :(得分:3)
El Capitan现在保护"无根"中的某些系统目录。模式(a.k.a.系统完整性保护)。如果运行命令ls -lO / System / Library / LaunchDaemons,您将看到其下的目录和文件现在标记为"受限制。"
您可以像这样禁用无根模式:
重新启动并运行在El Capitan之前有效的命令
完成后,强烈建议您按照相同的步骤重新启用SIP,但在步骤3中使用csrutil enable。
在尝试安装pear / pecl模块和macports / homebrew应用程序时遇到了同样根本原因的问题。那些通常需要将文件安装到/ usr / include和/ usr / lib中,这些文件现在也受到限制。
注意:互联网上有关此问题的先前答案为您提供了修改NVRAM设置的说明,但Apple表示NVRAM方法将停止使用El Capitan的公开发布。 GM版本已经禁用了NVRAM的解决方法,因此这个答案应该可以帮助您实现前进的目标。
答案 6 :(得分:1)
快速摘要:
atm,单声道框架安装程序只有在您将它安装到root时才能正常工作。它会自动将/Library/Frameworks/Mono.framework/Versions/Current/Commands
添加到$PATH
,但我不知道您是否需要手动添加/Library/Frameworks/Mono.framework/Versions/Current/bin/
或者一切正常。 (Commands
是指向bin
的符号链接,但仍可能不起作用)
更深入:
我最近从MonoFramework-MDK-4.8.0.520.macos10.xamarin.universal.pkg
安装了单声道。我将它安装到/Volumes/osxapps/
而不是root,但安装仍然期望一切都在root中。它将/Library/Frameworks/Mono.framework/Versions/Current/Commands
添加到$PATH
,但/Library/Frameworks/Mono.framework/
中的所有内容都只是空目录。所有文件都位于/Volumes/osxapps/Library/Frameworks/Mono.framework/.
此外,包括/Volumes/osxapps/Library/Frameworks/Mono.framework/
在内的Commands
中的很多内容都不是文件夹,而是因为他们希望文件夹位于root中而无效的符号链接。例如:如果所有内容都安装在root中,
/Library/Frameworks/Mono.framework/Versions/Current/Commands
是/Library/Frameworks/Mono.framework/Versions/Current/bin
的符号链接,/Library/Frameworks/Mono.framework/Versions/Current/
也是符号链接。
我补充说:
export PATH="/Volumes/osxapps/Library/Frameworks/Mono.framework/Versions/4.8.0/bin:$PATH"
到.bash_profile
,在~/
中,它允许我运行命令/可执行文件,但它们都因错误而死亡,因为他们仍然希望事情在root中。
所以我将文件夹从/Volumes/osxapps/Library/Frameworks
复制到/Library/Frameworks/
并且解决了所有错误并且工作正常但现在我有两个Mono.framework副本,我不希望它安装在首先是root,因为root在ssd上,而且空间有限。
更好的解决方案是根据this page底部的说明卸载mono,然后在root上重新安装。
但是,对我来说,安装/Volumes/osxapps/
仍然会更好,但我不知道最好的方法。 (我可能只是重新创建一堆符号链接)。我打算告诉单项目,如果你没有安装到root,他们的安装程序会把所有东西搞得一团糟,但我不确定这样做的最佳方法。所以,相反,我已经发布了迄今为止我所学到的内容,希望它可以帮助其他人。
答案 7 :(得分:0)
尝试安装旧版本。 3.4.0正在为我OSX(10.10.5)工作..
http://origin-download.mono-project.com/archive/3.4.0/macos-10-x86/
答案 8 :(得分:0)