2015年3月21日

結構前に書いたUbuntuにMonoを入れてそこからASP.NETを走らせる方法を久々に試したら普通にMonoのインストールの時点でこけてどうにもならなかったので

備忘録として残します.

とりあえず今回したこと一覧

* Ubuntu 14.04にMonoを入れた

* DNX(KRE)を動かした

準備

OS : Ubuntu 14.04

Mono : Githubのソースの最新のヤツ

とりあえず以下のパッケージをapt-getでいれる

* git

* autoconf

* libtool

* make

* pkg-config

* libgtk2.0-dev

ステップ1

: libgdiplusをソースから入れる

sudo git git://github.com/mono/libgdiplus.git

sudo ./autogen.sh –prefix=/usr/local

この段階だと, ./autogen.shを走らせた段階で画像を扱う系の機能がPNGのみだと思われますが今回は, 割愛

入れたい人は,

* libtiff5-dev

* libgif-dev

をapt-getから入れると使えるようになります.

諸々やったら

sudo make

sudo make install

でliggdiplusが入る. やったね!

ステップ2

Mono本体をインストール

sudo git clone git://github.com/mono/mono.git

sudo ./autogen.sh –prefix=/usr/local

sudo make

sudo make install

でインストールできるはずだった

普通にmakeの段階でエラーでインストールできなかったのでこの方法は, やめた方がいい.

時間の無駄

ステップ3

Monoのサイトに書かれた方法で簡単にやってみる

githubから飛べるLinuxのインストール方法のリンクの一番下に, debianを使ってて何も考えずにちゃちゃっとやりたい人向けのスクリプトがあった

——————————————-

#!/bin/bash
PREFIX=$@
if [ -z $PREFIX ]; then
PREFIX=”/usr/local”
fi

# Ensure you have write permissions to PREFIX
sudo mkdir $PREFIX
sudo chown -R `whoami` $PREFIX

# Ensure that all required packages are installed.
sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext

PATH=$PREFIX/bin:$PATH
git clone https://github.com/mono/mono.git
cd mono
./autogen.sh –prefix=$PREFIX
make
make install

———————————-

確かに何も考えずに走らせたら普通にMonoがインストールできた.

Mono 4.1.0が簡単に入った. そもそももうMono4なんだって思った. 何の疑いもなく

確か前に調べてた時Mono3.4以降ならASP.NET5が動くみたいなの見てたしこれでASP.NET5動くね!って思った

ステップ4

DNX(KRE)を入れる

ASP.NET5を動かすためのランタイムが必要

とりあえず

* curl

が必要だからapt-getで入れる

curlが入ったらあとは, Githubの手順通りにやるといける

curl -sSL https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.k/kvm/kvm.sh

入れたら

kvm upgrade

でXREをインストールする.

これで

* k

* kpm

みたいな大事なコマンドが使えるようになる

ついでに, LinuxでASP.NET5を走らせるのに

* libuv

が必要らしいのでインストールする

apt-getからじゃ無理だからソースからビルドする

———————————

git clone https://github.com/libuv/libuv.git
cd libuv
./autogen.sh
./configure
make
sudo make install
sudo ldconfig

———————————-

ステップ5

サンプルを動かしてみる

これまででMono本体とDNXが入ったのであとは, 本当に動くのかをテストしてみる

githubのリポジトリにサンプルがいくつかあるので, それを使う

sudo git clone https://github.com/aspnet/Home.git

cd Home/samples/HelloWeb

ここで,

kpm restore

すると, 必要なパッケージとかをNuGetから自動的に取ってきてくれるから走らせる

kpm restoreが終わったらLinux用の実行コマンドを走らせる

k kestrel

で動くはずだった.

動かなかった

なんで動かないのかわからないからいろいろ調べてみると大体みんな3.12あたりで動かしてた

ステップ6

Monoを入れなおす

しょうがないからMonoのバージョンを入れなおす

でもさすがにまたビルドするのとか時間かかるしやりたくなかったから調べたらapt-getを使って入れる方法があった

————————

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo “deb http://download.mono-project.com/repo/debian wheezy main” | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update

sudo apt-get install mono-complete

————————–

今までの苦労とは, なんだったのか

10分くらいですぐインストールできた.

インストールで来たら, ステップ5のサンプルの実行方法を試すと動くはず

コンソールにstartedの文字が出たら, デフォルトでlocalhost:5004にアクセスすると以下のような画面が出るはず

aspnet5

Mono 4.1.0で動いたって人がいたら誰か教えてください

ちなみにサンプルは, Enterを受け付けると終了しますが, Ctr + Zとかやると普通にゾンビ化するのでやめましょう

CATEGORIES