Mac(OS Xバージョン10.10.5)でMonoのインストールを実行しようとしていますが、インストールが正常に完了したと表示している間、ターミナルからmonoを呼び出すことができません。
それをインストールするには、uninstallMono.shをrootとして実行して、残り物が残っていないことを確認してから、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
を使用して実行可能ファイルを見つけようとしても何も返されません。
Mono(5.x)インストールプロセスの最新バージョンは、次のパスを含むファイル(mono-commands
)を/etc/paths.d
に作成します。
/Library/Frameworks/Mono.framework/Versions/Current/Commands
/usr/local/bin
は使用されなくなりました...
Monoの新しいバージョンは、/ usr/binに何もインストールしないという「El Capitan」の要件に準拠しているため、現在は/ usr/local/binが使用されています。どのmono 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 "$@"
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/
別のオプション(best option)は、ファイルの最後に新しい行を含めることです/ etc/paths内容:/Library/Frameworks/Mono.framework/Versions/Current/bin
この場合、パスはシステム上のすべてのユーザーが利用可能になります。
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
私もEl CapitanにMonoをインストールするのに問題があったので、このページを見てきました。フレームワークはインストールされましたが、コマンドは/ usr/local/binに入れられませんでした。 monoコマンドを使用しようとするとエラーが発生し、間違った場所でライブラリを探していたため、シンボリックリンクが機能しないようでした。
(試行錯誤によって)最終的に機能することがわかったのは、ターミナルのコマンドを使用して$ PATHをMonoフレームワークに設定することでした。
export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}
私はプログラマーでもコーダーでもないので(少なくとも長い間OS Xでは使用していません)、これにより、モノを使用してDuplicatiを実行することができました(最初にそれが欲しかった理由です)これがこれを解決する正しい方法であるかどうか、またはこれをまったく行う必要があるかどうかを確認してください。実際のプログラミングの経験がある人は、コメントしたり明確にしたりできますか?
El Capitanは、特定のシステムディレクトリを「ルートレス」モードで保護するようになりました(別名、システム整合性保護)。コマンドls -lO/System/Library/LaunchDaemonsを実行すると、その下のディレクトリとファイルが「制限付き」としてマークされていることがわかります。
次のようにルートレスモードを無効にできます。
再起動して、El Capitanより前に機能していたコマンドを実行します
完了したら、同じ手順に従ってSIPを再度有効にすることを強くお勧めしますが、手順3でcsrutil enableを使用します。
Pear/peclモジュールとmacports/homebrewアプリをインストールしようとしたときに、同じ根本原因で問題が発生しました。通常、これらのファイルは/ usr/includeおよび/ usr/libにインストールする必要がありますが、これらも制限されています。
注:この問題についてのインターネットに関する以前の回答では、NVRAM設定を変更する方法を説明していますが、AppleはEl CapitanのパブリックリリースでNVRAM方式が機能しなくなると述べました。 GMリリースではすでにNVRAMの回避策が無効になっているため、この回答により、前進するために必要なものが得られるはずです。
クイックサマリー: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
からmonoをインストールしました。ルートの代わりに/Volumes/osxapps/
にインストールしましたが、インストールはすべてがルートにあることを期待していました。 /Library/Frameworks/Mono.framework/Versions/Current/Commands
を$PATH
に追加しましたが、/Library/Frameworks/Mono.framework/
のすべては空のディレクトリでした。すべてのファイルは/Volumes/osxapps/Library/Frameworks/Mono.framework/.
にありました
さらに、Commands
を含む/Volumes/osxapps/Library/Frameworks/Mono.framework/
にあるものの多くは、フォルダーではなくシンボリックリンクであり、フォルダーがルートにあると予想されるため機能しませんでした。例:すべてがルートにインストールされている場合、/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
の~/
で、コマンド/実行可能ファイルを実行できましたが、ルートにあることを期待しているため、すべてエラーで終了しました。
フォルダーを/Volumes/osxapps/Library/Frameworks
から/Library/Frameworks/
にコピーしました。これですべてのエラーが解決し、正常に機能していますが、Mono.frameworkのコピーが2つあり、ルートにインストールしたくありませんでした。なぜなら、ルートはssd上にあり、スペースが限られているためです。
より良い解決策は、 このページ の下部にある指示に従ってmonoをアンインストールしてから、rootに再インストールすることです。
ただし、/Volumes/osxapps/
にインストールすることをお勧めしますが、それを実行する最善の方法はわかりません。 (おそらくシンボリックリンクの束を再作成できます)。ルートにインストールしないと、インストーラーがすべてをマックアップすることをモノプロジェクトに伝えるつもりでしたが、それを行う最善の方法はわかりません。そのため、代わりに、私がここで学んだことをここに投稿しました。
古いバージョンをインストールしてみてください。 3.4.0はOSX(10.10.5)で動作します。
http://Origin-download.mono-project.com/archive/3.4.0/macos-10-x86/