Установка 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. Так что я рекомендую получить это:
- Установите тестирование Debian (в настоящее время называется Debian Jessie).
- Удалить моно, выполнив
sudo apt-get purge mono-runtime
(после этого не поддавайтесь искушению сделатьsudo apt-get autoremove
или вы сломаете свою систему, о чем я сообщил здесь как об ошибке). - изменять
/etc/apt/sources.list
, найдите первую строку, которая упоминаетmain
источник и переименуйте словоjessie
вsid
, - Делать
sudo apt-get update
, - Установить монодевел через
sudo apt-get install monodevelop
, который будет тянуть моно как зависимость тоже. - Верните то, что вы сделали на шаге 3.
- Сделайте шаг 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/ и проверяйте каждый из подкаталогов версий (начиная с последней и возвращаясь назад), пока не найдете ту, которая содержит подкаталог "Windows-Installer"
Теперь есть ссылка на установщик Windows для Mono 3.0.1. К сожалению, он не устанавливается на Windows 7 64bit. Возможно, вам повезет больше.
Чтобы завершить замечательное решение Доминика Гудро, касающееся "вопроса Дениса Грозного в комментариях", 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 уже указал на решение, дал ему всю оценку, моя ссылка говорит то же самое, но, возможно, предоставил более четкий путь.:П