ごった煮

色々な事を書いてます

LinuxでASP.NET5を動かす(2015/3/22現在)

結構前に書いた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を動かすためのランタイムが必要

とりあえず

が必要だから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とかやると普通にゾンビ化するのでやめましょう