如何在MacOS上安装单声道,使单声道在terminal工作?
我试图获得在Mac(OS X版本10.10.5)上运行的单声道安装,并且安装状态,它已成功完成,我不能从terminal调用单声道。
为了安装它,我运行了uninstallMono.sh作为根目录,以确保我们没有剩下的残余,然后运行MonoFramework-MDK-4.0.4.1.macos10.xamarin.x86.pkg。 安装程序似乎成功完成,但企图称为单声道返回
-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
返回任何内容。
较新版本的单声道符合“El Capitan”的要求,即不在/ usr / bin中安装任何东西,因此现在使用/ usr / local / bin 。 我不知道哪个单声道4.x版本开始在…
但是我认为你的path(?)中没有/ 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 "$@"
在OS X El Capitan中,在terminal中运行以下命令以支持mono
命令
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
最好使用下一个导出:
export PATH = $ PATH:/Library/Frameworks/Mono.framework/Versions/Current/bin/
- 你不要修改以前的PATH 命令 (这是非常重要的!!)
- 您将使用当前版本(更新版本时不需要更改variablesPATH)
另一个选项( 最佳选项 )是在文件/ etc /path的末尾添加一行,内容为:/Library/Frameworks/Mono.framework/Versions/Current/bin
在这种情况下,该path将适用于系统上的所有用户 。
我一直在看这个页面,因为我也在El Capitan安装Mono(第一次)时遇到了问题。 我发现框架已经安装,但是这些命令并没有放到/ usr / local / bin中。 symlinking他们似乎没有工作,因为我会得到错误,当试图使用mono命令,它正在寻找在错误的地方库。
我终于find了工作(通过试验和错误)是使用terminal中的命令设置$ PATH到Mono框架:
export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}
由于我不是一个程序员或编码员(至less不是很长时间,从来没有在OS X上),这让我运行Duplicati使用单声道(这就是为什么我首先要它),但我不是当然,如果这是解决这个问题的正确方法,或者即使这样做应该完成。 任何有实际编程经验的人都可以发表评论或澄清?
现在El Capitan以“无根”模式(即系统完整性保护)保护某些系统目录。 如果你运行ls -lO / System / Library / LaunchDaemons命令,你会看到那里的目录和文件现在被标记为“restricted”。
您可以像这样禁用无根模式:
- 重启进入恢复模式(重启并按住Cmd-R)
- 打开一个terminal
- 使用此命令:csrutil禁用
重新启动并运行在El Capitan之前工作的命令
- 安装Mono最新版本。
完成后,强烈build议您按照相同的步骤重新启用SIP,但在步骤3中使用csrutil enable。
我遇到了同样的根本原因,同时试图获得pear / pecl模块和macports / homebrew应用程序安装的问题。 那些通常需要将文件安装到/ usr / include和/ usr / lib中,这些文件现在也受到限制。
注意:在互联网上关于这个问题的回答给了你修改NVRAM设置的指示,但是苹果公司表示NVRAM方法将停止与El Capitan的公开发布。 GM版本已经禁用了NVRAM的解决方法,所以这个答案应该让你得到你需要的东西。
在使用brew cask
第一次安装Mono Framework之后,我发现brew
本身提供Mono(!)
我先卸载了Mono。
$ brew cask uninstall mono-mdk
并使用brew install mono
安装它,并删除~/.zshrc
所有configuration更改。
看起来好多了:
$ 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
环境variables中。
$ 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,我在~/.zshrc
MONO_HOME
中定义了MONO_HOME
并相应地调整了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
快速总结:Atm,单声道框架安装程序只有在将其安装到根目录时才能正常工作。 它会自动添加/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
安装了mono。 我将它安装到/Volumes/osxapps/
而不是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
中的许多内容不是文件夹,而是符号链接,因为他们希望文件夹在根目录下,所以不起作用。 例如:如果一切都安装在根目录/Library/Frameworks/Mono.framework/Versions/Current/bin
, /Library/Frameworks/Mono.framework/Versions/Current/
/Library/Frameworks/Mono.framework/Versions/Current/bin
/Library/Frameworks/Mono.framework/Versions/Current/
/Library/Frameworks/Mono.framework/Versions/Current/bin
/Library/Frameworks/Mono.framework/Versions/Current/
/Library/Frameworks/Mono.framework/Versions/Current/bin
/Library/Frameworks/Mono.framework/Versions/Current/
/Library/Frameworks/Mono.framework/Versions/Current/Commands
是/Library/Frameworks/Mono.framework/Versions/Current/bin
和/Library/Frameworks/Mono.framework/Versions/Current/
的符号链接/Library/Frameworks/Mono.framework/Versions/Current/
也是一个符号链接。
我补充说:
export PATH="/Volumes/osxapps/Library/Frameworks/Mono.framework/Versions/4.8.0/bin:$PATH"
到.bash_profile
中,这允许我运行命令/可执行文件,但是它们全都因错误而死亡,因为它们仍然期望事物处于根。
所以我把文件夹从/Volumes/osxapps/Library/Frameworks
复制到/Library/Frameworks/
并解决了所有的错误,并且正常工作,但现在我有两个Mono.framework的副本,我不希望它安装在首先是root,因为root是在一个ssd上,而且空间是有限的。
更好的解决scheme是根据本页底部的说明卸载mono,然后重新安装到根目录。
不过,对我来说,安装在/Volumes/osxapps/
上还是比较好的,但我不知道最好的办法。 (我可能只是重新创build一堆符号链接)。 我打算告诉单项目他们的安装程序把所有东西都弄糟了,如果你没有安装到根目录,但是我不确定最好的方法去做。 所以,我已经在这里张贴了,到目前为止我所学到的,希望能够帮助别人。
尝试安装旧版本。 3.4.0正在为我工作OSX(10.10.5)..
http://origin-download.mono-project.com/archive/3.4.0/macos-10-x86/