Установка Mono 3.x в Ubuntu/Debian

Я недавно читал, что Mono 3.0 был выпущен с компилятором C# 5 и поддержкой MVC 4 здесь:

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

а также

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

Из-за своей жизни я не могу понять, где взять его как пакет для Linux или даже Windows.

Эта страница, кажется, предполагает, что она все еще находится в бета-версии:

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

Я пытался сделать apt-get install mono-complete в Ubuntu 12.10, но он установлен 2.10.8.1.

Я попытался установить MonoDevelop 3 на моем компьютере с Windows, и он только представил мне проекты MVC 3 и, похоже, использует.NET Framework.

Я совершенно новичок в Mono, и я погуглил все возможное, чтобы попытаться увидеть, как это работает, но сбит с толку. Я бы хотел, чтобы это работало на Linux, если это возможно, и попробую кое-что попробовать.

Может кто-то пролить некоторый свет на это, или мне нужно смотреть на создание этого из источника?

7 ответов

Решение

Mono 3.x слишком крутой для Ubuntu 12.10. Получите пакеты предварительного просмотра из PPA-директории directhex следующим образом (это установит 3.2.1):

sudo add-apt-repository ppa:directhex/monoxide

(Если вы используете Ubuntu Saucy 13.10, после добавления репозитория вам необходимо отредактировать файл /etc/apt/sources.list.d/directhex-monoxide-saucy.list и заменить слово дерзкий на raring)

Затем, после этого:

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

Это также даст вам MonoDevelop 4.x, если ранее у вас был установлен monodevelop.

ПРИМЕЧАНИЕ: direchtex не случайный парень, который создал PPA, он входит в команду сопровождающего Debian/Ubuntu из всех пакетов на основе Mono и Mono. Таким образом, использование этого является наиболее официальным способом обновления вашей инфраструктуры.


И для пользователей Debian: mono 3.0.6 и MonoDevelop 4.0.x уже доступны для тестирования Debian. Так что я рекомендую получить это:

  1. Установите тестирование Debian (в настоящее время называется Debian Jessie).
  2. Удалить моно, выполнив sudo apt-get purge mono-runtime (после этого не поддавайтесь искушению сделать sudo apt-get autoremove или вы сломаете свою систему, о чем я сообщил здесь как об ошибке).
  3. изменять /etc/apt/sources.list, найдите первую строку, которая упоминает main источник и переименуйте слово jessie в sid,
  4. Делать sudo apt-get update,
  5. Установить монодевел через sudo apt-get install monodevelop, который будет тянуть моно как зависимость тоже.
  6. Верните то, что вы сделали на шаге 3.
  7. Сделайте шаг 4 снова.

Таким образом, у вас будет более или менее современный дистрибутив (в отличие от стабильного Debian), а также очень очень современные моно-пакеты (самые передовые версии для Mono обычно довольно стабильны).

Пользователи F#: Mono 3.0.6 имеет ошибку, которая не позволяет этому языку работать в этой версии, используйте вместо этого Mono 3.2.x.

Вот полное руководство по установке моно 3.0.1

Для начинающих, которые не знают, как получить новую версию Mono 3.0.1 в Ubuntu 12.04 (потому что я новичок, и я работал над этим 3 дня, прежде чем заставить его работать)

Получение root-доступа для установки и настройки Mono 3.0.1

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

Установите редактор vim

apt-get install vim

Установите apache2

apt-get install apache2

Установить инструменты для компиляции моно

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

Установите apache2-threadaded-dev (необходим для компиляции mod_mono)*

apt-get install apache2-threaded-dev

Мы вернемся к конфигурации apache2 позже

Создание структуры, необходимой для получения исходного кода.

cd /opt
mkdir mono-3.0

Перейдите в эту новую папку перед получением исходного кода

cd /opt/mono-3.0

Получение исходного кода от 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

Скомпилируйте libgdiplus

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

Скомпилировать моно

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

Компилировать xsp

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

Скомпилировать 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

После установки mod_mono файл mod_mono.conf*будет добавлен в вашу папку apache2 (/ etc / apache2)*

Настройка apache2

Настройте сайт apache по умолчанию ### (необязательно *) **

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!)

Настройте права на YourFolder (необязательно *) **

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

Добавление mod_mono включает в apache2.conf

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

Добавление указателя на ASP .NET 4.0 в mod_mono.conf

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

Перезапустите сервер apache2 /etc/init.d/apache2 restart

Я установил mono 3.x из исходного кода на несколько шагов в Ubuntu Raring:

1: Получить зависимости, все в одном хите:

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: Создайте папку где-нибудь для хранения источника:

sudo mkdir /opt/mono-3

3: клонировать в папку с помощью git

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

4: Сборка и установка

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

Это оно!

Чтобы получить последние изменения в System.Drawing.dll и System.Windows.Forms.dll, вам также необходимо настроить, собрать и установить libgdiplus.

 cd libgdiplus
 ./autogen.sh --prefix=/usr/local
 make
 make install

apt-get install устанавливает ту версию Mono, с которой поставляется ваш дистрибутив, которая выглядит как 2.10.8.1. В вашем дистрибутиве могут быть новые версии Mono, а могут и нет, вам, возможно, придется выбрать какой-то более новый канал обновления в менеджере пакетов вашего дистрибутива. Поскольку вы не упомянули, какой дистрибутив Linux (и какую версию) используете, на это невозможно ответить.

apt-get предполагает, что это что-то на основе Debian/Ubuntu, но есть много разных версий. Я человек Mac, поэтому я просто не знаю.

См. http://www.mono-project.com/Compiling_Mono для получения инструкций о том, как скомпилировать из исходного кода.

Однако этот вопрос действительно принадлежит superuser.com, и вы получите лучшие ответы, если спросите его там.

Я нигде не нашел эту ссылку связанной, так что это, вероятно, неофициально, но вы можете получить установщик Windows для Mono 3.0.10 здесь:

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

Изменить: Чтобы убедиться, что вы загружаете последнюю версию, откройте http://download.mono-project.com/archive/ и проверяйте каждый из подкаталогов версий (начиная с последней и возвращаясь назад), пока не найдете ту, которая содержит подкаталог "Windows-Installer"

Теперь есть ссылка на установщик Windows для Mono 3.0.1. К сожалению, он не устанавливается на Windows 7 64bit. Возможно, вам повезет больше.

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

Чтобы завершить замечательное решение Доминика Гудро, касающееся "вопроса Дениса Грозного в комментариях", Ubuntu 13.04 x86. Там написано /usr/bin/ld: testgdi.o: неопределенная ссылка на символ 'g_print'"

Пожалуйста, следуйте этой простой уловке, которая сделала это для меня.

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

Я не могу ответить на комментарий так, как мне хотелось бы, поэтому я должен выложить здесь другой ответ, какое-нибудь предложение для лучшей практики?

Обновление: Оппс, я не заметил, что Дэвид V уже указал на решение, дал ему всю оценку, моя ссылка говорит то же самое, но, возможно, предоставил более четкий путь.:П

Другие вопросы по тегам