debian + ASP.net

目的

debian8(jessie) で coreclr を使ってasp.net mvc を動かす

導入手順

  1. monoインストール
  2. dnvmインストール
  3. dnxインストール
  4. libuvインストール
  5. coreclrインストール

1. mono インストール

coreclrで実行するためにmonoは必要ないが今後のことを考えてインストールしておく

naughtldy.hatenablog.jp

2. dnvm インストール

dnxバージョンマネージャー

$ sudo apt-get install unzip curl
$ curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
$ dnvm upgrade

3. dnx インストール

アプリ向けの実行環境

$ sudo apt-get install -y libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

4. libuv インストール

非同期I/Oライブラリ
Node.jsで使用されている

$ sudo apt-get -y install automake libtool curl
$ curl -sSL https://github.com/libuv/libuv/archive/v1.4.2.tar.gz | sudo tar zxfv - -C /usr/local/src
$ cd /usr/local/src/libuv-1.4.2
$ sh autogen.sh
$ ./configure
$ make 
$ make install
$ rm -rf /usr/local/src/libuv-1.4.2 && cd ~/

$ sudo ldconfig

5. coreclr インストール

.Net Core ランタイム

最新バージョンのdnx(coreclr)をインストールする

$ dnvm install -u -r coreclr

mono版を入れたい場合はこちら

$ dnvm install -u

指定バージョンのdnxをインストールする
* 下記のコマンドの場合は 1.0.0-beta8 をインストールする

$ dnvm install -r coreclr 1.0.0-beta8

動作確認

動作確認用のサンプルソースの取得

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

実際のプロジェクトはsamplesディレクトリ配下にある。
ここにあるディレクトリ名とインストールする coreclr のバージョンを合わせる必要がある。

1.0.0-beta8 を実行する場合は以下の手順です

dnxのインストールされている/現在使用しているバージョンの確認

$ dnvm list

表示されたものでActiveの部分に*がついているものが現在選択されているバージョンです。

  1. 該当のバージョンのcoreclrがインストールされていない場合
$ dnvm install -r coreclr 1.0.0-beta8
  1. 該当のバージョンのcoreclrがインストールされているがActiveになってない場合
$ dnvm use -r coreclr 1.0.0-beta8

プロジェクトがあるディレクトリへ移動

$ cd samples/1.0.0-beta8/HelloMvc

プロジェクトのリストアで必要な情報の取得

$ dnu restore

プロジェクトの実行

$ dnx web

dnx web の部分は project.json のcommandsによって変わる

    "commands": {
        "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5004"
    },

上のソースは1.0.0-beta8のproject.jsの一部を抜粋したものだが、この場合 dnx web で実行可能です。
また、アクセスurlも記載されている。
上記の場合は http://localhost:5004