sierra mac for downloads macos mono

for - ¿Cómo instalar Mono en macOS para que mono funcione en la terminal?



mono project (8)

Actualización (ya que esto sigue recibiendo vistas dos años más tarde):

Las últimas versiones del proceso de instalación de Mono (5.x) crean un archivo ( /etc/paths.d ) en /etc/paths.d que contiene la ruta de:

/Library/Frameworks/Mono.framework/Versions/Current/Commands

Entonces /usr/local/bin ya no se usa ...

Original

Las versiones más nuevas de mono cumplen con los requisitos de "El Capitan" de no instalar nada en / usr / bin y, por lo tanto, ahora se usa / usr / local / bin . No estoy seguro de qué versión mono 4.x que comenzó en ...

Pero supongo que no tiene / usr / local / bin en su ruta (?), Intente:

export PATH=/usr/local/bin:${PATH} which mono which mcs

En mi caso, tengo 4.2.0 instalado:

$ 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 "$@"

Estoy tratando de hacer que una instalación Mono se ejecute en una Mac (OS X versión 10.10.5), y aunque la instalación indica que se completó con éxito, no puedo llamar a mono desde el terminal.

Para instalarlo, ejecuté uninstallMono.sh como root para asegurarme de que no teníamos restos de restos, luego ejecuté MonoFramework-MDK-4.0.4.1.macos10.xamarin.x86.pkg. El instalador pareció completarse con éxito, pero un intento de llamar a mono regresa

-bash: mono: comando no encontrado

El marco mono parece estar instalado:

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

... pero no está presente en /usr/bin e intenta encontrar su ejecutable usando which mono no devuelve nada.


Después de la primera instalación de Mono Framework con brew cask descubrí que brew sí ofrece Mono (!)

Desinstalé Mono primero.

$ brew cask uninstall mono-mdk

Y lo instalé usando brew install mono y ~/.zshrc todos los cambios de configuración en ~/.zshrc .

Parece que es mucho mejor:

$ 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

Primero utilicé brew cask para instalar Mono Framework y tuve que agregar /Library/Frameworks/Mono.framework/Home/bin a la variable de entorno 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!

Como uso oh-my-zsh , MONO_HOME en ~/.zshrc y ~/.zshrc PATH consecuencia:

export MONO_HOME=/Library/Frameworks/Mono.framework/Home export PATH=$MONO_HOME/bin:$PATH

Con ese mono está disponible:

$ 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 ahora protege ciertos directorios del sistema en modo "sin raíz" (también conocido como Protección de integridad del sistema). Si ejecuta el comando ls -lO / System / Library / LaunchDaemons, verá que los directorios y archivos que se encuentran allí ahora están marcados como "restringidos".

Puede deshabilitar el modo sin raíz de esta manera:

  1. Reiniciar en modo de recuperación (reiniciar y mantener presionado Cmd-R)
  2. Abrir una terminal
  3. Use este comando: csrutil disable

Reinicie y ejecute el comando que funcionó antes de El Capitan

  1. Instala la última versión de Mono.

Cuando haya terminado, es muy recomendable que vuelva a habilitar SIP siguiendo los mismos pasos, pero usando csrutil enable en el paso 3.

Me encontré con un problema con la misma causa raíz al intentar instalar los módulos pear / pecl y las aplicaciones macports / homebrew. Esos normalmente necesitan instalar archivos en / usr / include y / usr / lib, que ahora también están restringidos.

Nota: Las respuestas anteriores en Internet sobre este problema le dan instrucciones para modificar la configuración de NVRAM, pero Apple declaró que el método NVRAM dejaría de funcionar con el lanzamiento público de El Capitan. La versión de GM ya ha deshabilitado la solución de NVRAM, por lo que esta respuesta debería brindarle lo que necesita para avanzar.


En OS X El Capitan, ejecute lo siguiente en Terminal para admitir el comando mono

export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}


Es mejor usar la próxima exportación:

RUTA de exportación = $ RUTA: /Library/Frameworks/Mono.framework/Versions/Current/bin/

  1. No modificas el orden anterior de PATH (¡es muy importante!)
  2. Utilizará la versión actual (cuando actualice la versión no es necesario cambiar la variable RUTA)

Otra opción (la mejor opción ) es incluir una nueva línea al final del archivo / etc / caminos con el contenido: /Library/Frameworks/Mono.framework/Versions/Current/bin

En este caso, la ruta estará disponible para todos los usuarios del sistema.


Estuve viendo esta página porque yo también tuve problemas con la instalación de Mono (por primera vez) en El Capitan. Encontré que el marco estaba instalado pero los comandos no se pusieron en / usr / local / bin. No parecía que los enlaces simbólicos funcionaran porque obtendría errores al intentar usar el comando mono y estaba buscando bibliotecas en el lugar equivocado.

Lo que finalmente encontré que funcionó (por prueba y error) fue configurar $ PATH en el marco Mono usando el comando en la terminal:

export PATH=/Library/Frameworks/Mono.framework/Versions/4.2.0/bin/:${PATH}

Como no soy programador ni programador (al menos no por mucho tiempo y nunca en OS X), esto me permitió ejecutar Duplicati usando mono (que era el motivo por el que lo quería en primer lugar), pero no Seguro si esta es la forma correcta de resolver esto o incluso si esto debería hacerse en absoluto. ¿Alguien con experiencia en programación real para comentar o aclarar?


Resumen rápido: Atm, el instalador de mono framework solo funciona correctamente si lo instala en la raíz. Agregará automáticamente /Library/Frameworks/Mono.framework/Versions/Current/Commands a $PATH , pero no sé si necesitará agregar /Library/Frameworks/Mono.framework/Versions/Current/bin/ by mano o si todo simplemente funciona. (Los Commands son un enlace simbólico a bin , pero aún puede no funcionar)

Más en profundidad: recientemente instalé mono de MonoFramework-MDK-4.8.0.520.macos10.xamarin.universal.pkg . Lo instalé en /Volumes/osxapps/ lugar de root, pero la instalación aún esperaba que todo estuviera en root. Agregó /Library/Frameworks/Mono.framework/Versions/Current/Commands a $PATH pero todo en /Library/Frameworks/Mono.framework/ era solo directorios vacíos. Todos los archivos residían en /Volumes/osxapps/Library/Frameworks/Mono.framework/.

Además, mucho de lo que estaba en /Volumes/osxapps/Library/Frameworks/Mono.framework/ incluidos los Commands , no eran carpetas, sino enlaces simbólicos que no funcionaban porque esperaban que las carpetas estuvieran en la raíz. Por ejemplo: si todo se instaló en raíz, /Library/Frameworks/Mono.framework/Versions/Current/Commands es un enlace simbólico a /Library/Frameworks/Mono.framework/Versions/Current/bin y /Library/Frameworks/Mono.framework/Versions/Current/ también es un enlace simbólico.

Yo añadí:

export PATH="/Volumes/osxapps/Library/Frameworks/Mono.framework/Versions/4.8.0/bin:$PATH"

a .bash_profile , en ~/ , que me permitió ejecutar los comandos / ejecutables, pero todos murieron con errores porque todavía esperaban que las cosas estuvieran en la raíz.

Así que copié la carpeta de /Volumes/osxapps/Library/Frameworks a /Library/Frameworks/ y eso resolvió todos los errores y las cosas funcionan correctamente, pero ahora tengo dos copias de Mono.framework y no quería instalarlo en root en primer lugar, porque root está en un ssd y el espacio es limitado.

Una mejor solución sería desinstalar mono de acuerdo con las instrucciones al final de esta página y luego reinstalarlo en la raíz.

Sin embargo, aún sería mejor, para mí, instalar en /Volumes/osxapps/ , pero no sé la mejor manera de hacerlo. (Probablemente podría recrear un montón de enlaces simbólicos). Iba a decirle al proyecto mono que su instalador estropea todo si no lo instala en la raíz, pero tampoco estoy seguro de la mejor manera de hacerlo. Entonces, en cambio, he publicado aquí, con lo que he aprendido hasta ahora, con la esperanza de que pueda ayudar a alguien más.