如何在 macOS 上安装单声道以便单声道在终端中工作?
How to install Mono on macOS so mono works in terminal?
我正在尝试在 mac(OS X 版本 10.10.5)上进行 Mono 安装 运行,虽然安装表明已成功完成,但我我无法从终端调用单声道。
为了安装它,我 运行 uninstallMono.sh 以 root 身份确保我们没有任何剩余的垃圾,然后 运行 MonoFramework-MDK-4.0.4.1.macos10.xamarin.x86.pkg.安装程序似乎成功完成,但尝试调用单声道 returns
-bash: mono: command not found
似乎确实安装了单声道框架:
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
returns 什么都找不到它的可执行文件。
更新(因为这在两年多后仍有人观看):
最新版本的 Mono (5.x) 安装过程会在 /etc/paths.d
中创建一个文件 (mono-commands
),其中包含以下路径:
/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 "$@"
我一直在看这个页面,因为我在 El Capitan 上安装 Mono(第一次)时也遇到了问题。我发现框架已安装,但命令未放入 /usr/local/bin。对它们进行符号链接似乎不起作用,因为我在尝试使用 mono 命令时会出错,而且它在错误的位置查找库。
我最终发现(通过反复试验)有效的方法是使用终端中的命令将 $PATH 设置为 Mono 框架:
export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}
因为我不是程序员或编码员(至少不是很长一段时间,也从来没有在 OS X 上),这让我可以 运行 使用单声道复制(这就是为什么我一开始就想要它),但我不确定这是否是解决此问题的正确方法,甚至不确定是否应该这样做。有实际编程经验的人可以评论或澄清吗?
在OSX El Capitan中,运行Terminal中的以下内容支持mono
命令
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
最好使用下一个出口:
导出路径=$路径:/Library/Frameworks/Mono.framework/Versions/Current/bin/
- 你不要修改 PATH 之前的顺序(非常
重要!!)
- 您将使用当前版本(更新时
不需要更改变量 PATH 的版本)
另一个选项(最佳选项)是在文件末尾包含一个新行/etc/paths 内容为:
/Library/Frameworks/Mono.framework/Versions/Current/bin
在这种情况下,路径将对系统上的所有用户可用。
尝试安装旧版本。
3.4.0 对我有用 OSX (10.10.5)..
http://origin-download.mono-project.com/archive/3.4.0/macos-10-x86/
El Capitan 现在以 "rootless" 模式保护某些系统目录(a.k.a。系统完整性保护)。如果你 运行 命令 ls -lO /System/Library/LaunchDaemons 你会看到那里的目录和文件现在被标记为 "restricted."
您可以像这样禁用无根模式:
- 重启进入恢复模式(重启并按住 Cmd-R)
- 打开一个终端
- 使用这个命令:csrutil disable
重新启动并运行在 El Capitan 之前有效的命令
- 安装 Mono 最新版本。
完成后,强烈建议您按照相同的步骤重新启用 SIP,但在步骤 3 中使用 csrutil enable。
我 运行 在尝试安装 pear/pecl 模块和 macports/homebrew 应用程序时遇到了具有相同根本原因的问题。这些通常需要将文件安装到 /usr/include 和 /usr/lib,现在也受到限制。
注意:Internet 上有关此问题的先前答案为您提供了修改 NVRAM 设置的说明,但 Apple 表示 NVRAM 方法将停止使用 El Capitan 的 public 版本。 GM 版本已经禁用了 NVRAM 解决方法,因此此答案应该可以为您提供前进所需的内容。
第一次使用 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,所以我在~/.zshrc
中定义了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,mono 框架安装程序只有在将其安装到 root 时才能正常工作。它会自动将 /Library/Frameworks/Mono.framework/Versions/Current/Commands
添加到 $PATH
,但我不知道您是否需要手动添加 /Library/Frameworks/Mono.framework/Versions/Current/bin/
或者是否一切正常。 (Commands
是一个符号 link 到 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
)都不是文件夹,而是符号 link,它们不起作用,因为他们希望文件夹位于根目录中。例如:如果一切都安装在 root 中,
/Library/Frameworks/Mono.framework/Versions/Current/Commands
是 link 到 /Library/Frameworks/Mono.framework/Versions/Current/bin
的符号 /Library/Frameworks/Mono.framework/Versions/Current/
也是符号link.
我补充说:
export PATH="/Volumes/osxapps/Library/Frameworks/Mono.framework/Versions/4.8.0/bin:$PATH"
到 .bash_profile
,在 ~/
,这让我可以 运行 到 commands/executables,但他们都死于错误,因为他们仍然期待事情在根.
所以我将文件夹从 /Volumes/osxapps/Library/Frameworks
复制到 /Library/Frameworks/
,这解决了所有错误,一切正常,但现在我有两个 Mono.framework 的副本,但我没有首先要安装在 root 中,因为 root 在 ssd 上,并且 space 是有限的。
更好的解决方案是根据 this page 底部的说明卸载 mono,然后在 root 上重新安装。
但是,对我来说,在 /Volumes/osxapps/
上安装会更好,但我不知道这样做的最佳方法。 (我可能只是重新创建一堆符号 links)。我打算告诉 mono-project 如果你不安装到 root,他们的安装程序会搞砸一切,但我也不确定最好的方法。所以,我在这里发布了我到目前为止所学的内容,希望它能对其他人有所帮助。
打开。bash_profile
加上export PATH=$PATH:/Library/Frameworks/Mono.framework/Versions/Current/Commands
完成!
我正在尝试在 mac(OS X 版本 10.10.5)上进行 Mono 安装 运行,虽然安装表明已成功完成,但我我无法从终端调用单声道。
为了安装它,我 运行 uninstallMono.sh 以 root 身份确保我们没有任何剩余的垃圾,然后 运行 MonoFramework-MDK-4.0.4.1.macos10.xamarin.x86.pkg.安装程序似乎成功完成,但尝试调用单声道 returns
-bash: mono: command not found
似乎确实安装了单声道框架:
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
returns 什么都找不到它的可执行文件。
更新(因为这在两年多后仍有人观看):
最新版本的 Mono (5.x) 安装过程会在 /etc/paths.d
中创建一个文件 (mono-commands
),其中包含以下路径:
/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 "$@"
我一直在看这个页面,因为我在 El Capitan 上安装 Mono(第一次)时也遇到了问题。我发现框架已安装,但命令未放入 /usr/local/bin。对它们进行符号链接似乎不起作用,因为我在尝试使用 mono 命令时会出错,而且它在错误的位置查找库。
我最终发现(通过反复试验)有效的方法是使用终端中的命令将 $PATH 设置为 Mono 框架:
export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}
因为我不是程序员或编码员(至少不是很长一段时间,也从来没有在 OS X 上),这让我可以 运行 使用单声道复制(这就是为什么我一开始就想要它),但我不确定这是否是解决此问题的正确方法,甚至不确定是否应该这样做。有实际编程经验的人可以评论或澄清吗?
在OSX El Capitan中,运行Terminal中的以下内容支持mono
命令
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
最好使用下一个出口:
导出路径=$路径:/Library/Frameworks/Mono.framework/Versions/Current/bin/
- 你不要修改 PATH 之前的顺序(非常 重要!!)
- 您将使用当前版本(更新时 不需要更改变量 PATH 的版本)
另一个选项(最佳选项)是在文件末尾包含一个新行/etc/paths 内容为: /Library/Frameworks/Mono.framework/Versions/Current/bin
在这种情况下,路径将对系统上的所有用户可用。
尝试安装旧版本。 3.4.0 对我有用 OSX (10.10.5)..
http://origin-download.mono-project.com/archive/3.4.0/macos-10-x86/
El Capitan 现在以 "rootless" 模式保护某些系统目录(a.k.a。系统完整性保护)。如果你 运行 命令 ls -lO /System/Library/LaunchDaemons 你会看到那里的目录和文件现在被标记为 "restricted."
您可以像这样禁用无根模式:
- 重启进入恢复模式(重启并按住 Cmd-R)
- 打开一个终端
- 使用这个命令:csrutil disable
重新启动并运行在 El Capitan 之前有效的命令
- 安装 Mono 最新版本。
完成后,强烈建议您按照相同的步骤重新启用 SIP,但在步骤 3 中使用 csrutil enable。
我 运行 在尝试安装 pear/pecl 模块和 macports/homebrew 应用程序时遇到了具有相同根本原因的问题。这些通常需要将文件安装到 /usr/include 和 /usr/lib,现在也受到限制。
注意:Internet 上有关此问题的先前答案为您提供了修改 NVRAM 设置的说明,但 Apple 表示 NVRAM 方法将停止使用 El Capitan 的 public 版本。 GM 版本已经禁用了 NVRAM 解决方法,因此此答案应该可以为您提供前进所需的内容。
第一次使用 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,所以我在~/.zshrc
中定义了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,mono 框架安装程序只有在将其安装到 root 时才能正常工作。它会自动将 /Library/Frameworks/Mono.framework/Versions/Current/Commands
添加到 $PATH
,但我不知道您是否需要手动添加 /Library/Frameworks/Mono.framework/Versions/Current/bin/
或者是否一切正常。 (Commands
是一个符号 link 到 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
)都不是文件夹,而是符号 link,它们不起作用,因为他们希望文件夹位于根目录中。例如:如果一切都安装在 root 中,
/Library/Frameworks/Mono.framework/Versions/Current/Commands
是 link 到 /Library/Frameworks/Mono.framework/Versions/Current/bin
的符号 /Library/Frameworks/Mono.framework/Versions/Current/
也是符号link.
我补充说:
export PATH="/Volumes/osxapps/Library/Frameworks/Mono.framework/Versions/4.8.0/bin:$PATH"
到 .bash_profile
,在 ~/
,这让我可以 运行 到 commands/executables,但他们都死于错误,因为他们仍然期待事情在根.
所以我将文件夹从 /Volumes/osxapps/Library/Frameworks
复制到 /Library/Frameworks/
,这解决了所有错误,一切正常,但现在我有两个 Mono.framework 的副本,但我没有首先要安装在 root 中,因为 root 在 ssd 上,并且 space 是有限的。
更好的解决方案是根据 this page 底部的说明卸载 mono,然后在 root 上重新安装。
但是,对我来说,在 /Volumes/osxapps/
上安装会更好,但我不知道这样做的最佳方法。 (我可能只是重新创建一堆符号 links)。我打算告诉 mono-project 如果你不安装到 root,他们的安装程序会搞砸一切,但我也不确定最好的方法。所以,我在这里发布了我到目前为止所学的内容,希望它能对其他人有所帮助。
打开。bash_profile
加上
export PATH=$PATH:/Library/Frameworks/Mono.framework/Versions/Current/Commands
完成!