Instalación de Mono 3.x en Ubuntu / Debian


He leído recientemente que Mono 3.0 ha sido lanzado con un compilador de C# 5 y soporte para MVC 4 aquí:

Http://www.mono-project.com/Release_Notes_Mono_3.0

Y

Http://tirania.org/blog/archive/2012/Oct-22.html

Por mi vida no puedo averiguar de dónde sacarlo como un paquete para Linux o incluso Windows.

Esta página parece sugerir que todavía está en Beta:

Http://www.go-mono.com/mono-downloads/download.html

He intentado hacer un apt-get install mono-complete en Ubuntu 12.10 pero está instalado 2.10.8.1.

He intentado instalar MonoDevelop 3 en mi máquina Windows y eso solo me presentó proyectos MVC 3 y parece estar utilizando el.NET framework.

Soy completamente nuevo en Mono y he buscado en Google todo lo posible para probar y ver cómo funciona esto, pero estoy desconcertado. Me encantaría que esto funcione en Linux si es posible y prueba algunas cosas.

¿Puede alguien arrojar algo de luz sobre esto o necesito estar buscando construir esto desde la fuente?

 59
Author: knocte, 2012-11-13

7 answers

Mono 3.x es demasiado avanzada para Ubuntu 12.10. Obtenga una vista previa de los paquetes del PPA de directhex de esta manera (esto instalará 3.2.1):

sudo add-apt-repository ppa:directhex/monoxide

(Si usa Ubuntu saucy 13.10, después de agregar el repositorio, debe editar el archivo /etc/apt/sources.list.d/directhex-monoxide-saucy.list y reemplazar la palabra saucy con raring )

Luego, después de eso: {[12]]}

sudo apt-get update && sudo apt-get dist-upgrade

Esto también te llevará a MonoDevelop 4.x si tenía monodevelop instalado antes.

NOTA : direchtex no es alguna random guy que creó un PPA, es parte del equipo de mantenedores de Debian/Ubuntu de todos los paquetes Mono y basados en Mono. Por lo tanto, usar esta es la forma más oficial de actualizar su infraestructura.


Y para los usuarios de debian: mono 3.0.6 y MonoDevelop 4.0.x ya está disponible en debian testing. Así que lo que recomiendo para obtener esto es:

  1. Instalar debian testing (actualmente llamado debian jessie).
  2. Desinstalar mono haciendo sudo apt-get purge mono-runtime (después de hacer esto, resista la tentación de hacer un sudo apt-get autoremove o romperá su sistema, algo que informé como un error aquí ).
  3. Modifique /etc/apt/sources.list, localice la primera línea que menciona la fuente main y cambie el nombre de la palabra jessie a sid.
  4. Do sudo apt-get update.
  5. Instala monodevelop a través de sudo apt-get install monodevelop, que también extraerá mono como dependencia.
  6. Revierte lo que hiciste en el paso 3.
  7. Haga el paso 4 de nuevo.

De esta manera tienes una distro más o menos moderna (como opuesto a debian estable), además de paquetes mono muy modernos (las versiones bleeding edge para Mono son normalmente bastante estables).

F# usuarios: Mono 3.0.6 tiene un error que impide que este lenguaje funcione en esta versión, por favor use Mono 3.2.x lugar.

 47
Author: knocte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-24 13:18:25

Aquí está la guía completa para instalar mono 3.0.1

Para principiantes que no saben cómo obtener la nueva versión Mono 3.0.1 en Ubuntu 12.04 (Porque soy un principiante y he estado trabajando en esto durante 3 días antes de hacerlo funcionar)

Obtener acceso root para instalar y configurar Mono 3.0.1

sudo -s
***type your root password***

Instalar vim editor

apt-get install vim

Instalar apache2

apt-get install apache2

Instalar herramientas para compilar mono

apt-get install autoconf automake libtool g++ gettext libglib2.0-dev libpng12-dev libfontconfig1-dev
apt-get install mono-gmcs
apt-get install git

Instalar apache2-threaded-dev (necesario para compilar mod_mono)*

apt-get install apache2-threaded-dev

Volveremos a la configuración de apache2 más tarde

Haciendo la estructura que necesitamos para obtener el código fuente

cd /opt
mkdir mono-3.0

Mover a esa nueva carpeta antes de obtener el código fuente

cd /opt/mono-3.0

Obtener el código fuente de GitHub

git clone git://github.com/mono/mono.git
git clone git://github.com/mono/xsp.git
git clone git://github.com/mono/libgdiplus.git
git clone git://github.com/mono/mod_mono.git

Compilar libgdiplus

cd /opt/mono-3.0/libgdiplus
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mono

cd /opt/mono-3.0/mono/
make clean
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile xsp

cd /opt/mono-3.0/xsp
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mod_mono

cd /opt/mono-3.0/mod_mono
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Después de la instalación de mod_mono, el archivo mod_mono.conf * como se ha añadido a su carpeta apache2 (/etc / apache2)*

Configurando apache2

Configurar el sitio predeterminado de apache # # #(opcional*)**

vim /etc/apache2/sites-available/default
Modify the line "DocumentRoot /var/www" by "DocumentRoot /var/www/YourFolder" (YourFolder is the folder where you publishing your website!)

Configurar los derechos para YourFolder (opcional*)**

cd /var/www/YourFolder
sudo chown -R root:www-data .
sudo chmod -R 774 .
sudo usermod -a -G www-data <yourusername>

Añadiendo el mod_mono include en apache2.conf

vim /etc/apache2/apache2.conf
Add "Include /etc/apache2/mod_mono.conf" at the end of the file (without quotes!)

Añadiendo el puntero a ASP. NET 4.0 en mod_mono.conf

vim /etc/apache2/mod_mono.conf
Add "MonoServerPath /usr/bin/mod-mono-server4" (without quotes!) under the "If Modules condition"

Reinicie el servidor apache2 /etc / init.d / apache2 restart

 107
Author: Dominique Goudreault,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-25 09:04:34

Tengo la instalación de mono 3.x desde el código fuente hasta unos pocos pasos en Ubuntu Raring:

1: Obtener las dependencias, todo en un solo golpe:

sudo apt-get install build-essential autoconf automake \
bison flex gtk-sharp2-gapi boo gdb valac libfontconfig1-dev \
libcairo2-dev libpango1.0-dev libfreetype6-dev libexif-dev \
libtiff4-dev libgif-dev zlib1g-dev libatk1.0-dev libjpeg8-dev \
libjpeg-turbo8-dev libglib2.0-dev libgtk2.0-dev libglade2-dev \
libart-2.0-dev libgnomevfs2-dev libgnome-desktop-dev \
libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomeprint2.2-dev \
libgnomeprintui2.2-dev libpanel-applet-4-dev \
libnautilus-extension-dev librsvg2-dev libgtkhtml3.14-dev \
libgtksourceview2.0-dev libgtksourceview2.0-dev libvte-dev \
libwnck-dev libnspr4-dev libnss3-dev libwebkit-dev libvala-0.18-dev

2: Crear una carpeta en algún lugar para contener la fuente:

sudo mkdir /opt/mono-3

3: Clonar en la carpeta con git

cd /opt/mono-3
sudo git clone git://github.com/mono/mono.git
cd  mono
sudo git checkout mono-3.0.12

4: Compilar e instalar

sudo ./autogen.sh --prefix=/usr/local
sudo make
sudo make install

¡Eso es todo!

Para obtener los últimos cambios en el sistema.Dibujo.dll y Sistema.Windows.Forma.dll también necesita configurar, construir e instalar libgdiplus.

 cd libgdiplus
 ./autogen.sh --prefix=/usr/local
 make
 make install
 8
Author: Rolf S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-12 10:52:19

apt-get install instala cualquier versión de Mono con la que se envíe su distribución, que parece ser 2.10.8.1. Su distribución puede o no tener paquetes Mono más nuevos, es posible que tenga que seleccionar algún canal de actualización más reciente en el administrador de paquetes de su distribución. Dado que no mencionó qué distribución de Linux (y qué versión de ella) está utilizando, esto es imposible de responder.

apt-get sugiere que es algo basado en Debian / Ubuntu, pero hay muchas versiones diferentes. Soy un Mac persona, así que no lo sé.

Véase http://www.mono-project.com/Compiling_Mono para instrucciones sobre cómo compilar desde el código fuente.

Sin embargo, esta pregunta realmente pertenece a superuser.com, obtendrás mejores respuestas si lo preguntas allí.

 4
Author: Martin Baulig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-13 18:47:44

No encontré esto vinculado desde ningún lugar, por lo que probablemente no sea oficial, pero puede obtener el instalador de Windows para Mono 3.0.10 desde aquí:

Http://download.mono-project.com/archive/3.0.10/windows-installer/mono-3.0.10-gtksharp-2.12.11-win32-0.exe

Editar : Para asegurarte de que estás descargando la última versión, abre http://download.mono-project.com/archive / , y compruebe cada uno de los subdirectorios de la versión (comenzando desde el último y moviéndose hacia atrás) hasta que encuentre uno que contenga un subdirectorio "windows-installer".

 3
Author: Douglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-12 14:55:03

Ahora hay un enlace a un instalador de Windows para Mono 3.0.1. Desafortunadamente no parece instalar en Windows 7 64bit. Puede que tengas mejor suerte.

Http://www.go-mono.com/mono-downloads/download.html

 2
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-14 17:27:55

Para completar la gran solución de Dominique Goudreault sobre "La pregunta de Denis La Amenaza en los comentarios", Ubuntu 13.04 x86. Dice /usr / bin/ ld: testgdi.o: referencia indefinida al símbolo 'g_print '"

Por favor, siga este simple truco que lo hizo por mí.

Http://www.sgvulcan.com/libgdiplus-2-10-9-build-fails-on-slacware-current64-2012-06/

No puedo responder al comentario como deseaba, así que tengo que poner otra respuesta aquí, cualquier sugerencia para un mejor práctica?

Actualización: Opps, no me di cuenta de David V ya ha señalado la solución, le dio todo el crédito a él, mi enlace dice lo mismo, pero tal vez proporcionó un camino más claro. : P

 0
Author: TongZZZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-13 22:27:59