如何在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/

  1. 不要修改以前的PATH 命令 (这是非常重要的!!)
  2. 您将使用当前版本(更新版本时不需要更改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”。

您可以像这样禁用无根模式:

  1. 重启进入恢复模式(重启并按住Cmd-R)
  2. 打开一个terminal
  3. 使用此命令:csrutil禁用

重新启动并运行在El Capitan之前工作的命令

  1. 安装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/