ASP.NET 5 Beta7 with CoreCLR on Ubuntu 15.04

Getting started with the new .NET Execution Environment (DNX) for .NET Core on Mac/LinuxThe

.NET Execution Environment (DNX) provides a consistent way to build and run cross-platform .NET projects and is the basis for ASP.NET 5. In previous preview releases we provided DNXs for the full .NET Framework, Mono and .NET Core. The .NET Core support was initially limited to Windows, but in this release DNX support for .NET Core is now available in a limited fashion for both Mac and Linux. You can find instructions for installing DNX for .NET Core on Mac and Linux in our documentation.

情報源: Announcing Availability of ASP.NET 5 Beta7 – .NET Web Development and Tools Blog – Site Home – MSDN Blogs

という感じで、自信満々なので試してみる。

$ dnvm list

Active Version              Runtime Arch OperatingSystem Alias
------ -------              ------- ---- --------------- -----
  *    1.0.0-beta7          mono         linux/darwin    default
       1.0.0-beta6          mono         linux/darwin

と普通にdnvm upgradeをかけるとmonoバージョンでアップグレードされるので、以下のようにランタイム指定をしてアップグレードします。

$ dnvm upgrade -r coreclr
Determining latest version
Latest version is 1.0.0-beta7 
Downloading dnx-coreclr-linux-x64.1.0.0-beta7 from https://www.nuget.org/api/v2
Download: https://www.nuget.org/api/v2/package/dnx-coreclr-linux-x64/1.0.0-beta7
######################################################################## 100.0%
Installing to /home/ishisaka/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7
Adding /home/ishisaka/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7/bin to process PATH
Updating alias 'default' to 'dnx-coreclr-linux-x64.1.0.0-beta7'
$ dnvm list

Active Version              Runtime Arch OperatingSystem Alias
------ -------              ------- ---- --------------- -----
       1.0.0-beta7          mono         linux/darwin    
       1.0.0-beta6          mono         linux/darwin    
  *    1.0.0-beta7          coreclr x64  linux           default

x64版のCore CLRがdefaultに設定されています。

動作確認するために、GitHubのASP.NET/HOMEをCloneしてサンプルを入手します。

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

Beta 7のサンプルがあるので、サンプルのディレクトリに移動し、ライブラリのレストアをかけます。

~/src/aspnet$ cd Home
~/src/aspnet/Home$ cd samples/
~/src/aspnet/Home/samples$ cd 1.0.0-beta7
~/src/aspnet/Home/samples/1.0.0-beta7$ cd HelloWeb
~/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb$ dnu restore
Microsoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-15532

----------
System.TypeInitializationException: The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'libcurl': The specified module could not be found.
 (Exception from HRESULT: 0x8007007E)

うん?ということで、libcurlがないとExceptionを出します。Unable to load DLLというメッセージとかHRESULTとか、本当にLinuxなのかという感じを醸し出しますね。このクソMSがーとか思いましたが、冷静になってlibcurlをインストール。

すでにきよくらさんが同じ道を通っていた。

Ubuntu Desktop で ASP.NET 5 Beta7 を CoreCLR で動かす – きよくらの備忘録

$ sudo apt-get install libcurl4-openssl-dev

今度はちゃんとレストアできます。

$ dnu restoreMicrosoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-15532

  GET https://nuget.org/api/v2/
  OK https://nuget.org/api/v2/ 4164ms
Restoring packages for /home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb/project.json
  GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel'
  GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics'
  GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting'
  GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' 
 .
 .
 .
 .
Writing lock file /home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb/project.lock.json
Restore complete, 43584ms elapsed

NuGet Config files used:
    /home/ishisaka/.config/NuGet/NuGet.Config
    /home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/NuGet.Config

Feeds used:
    https://nuget.org/api/v2/

Installed:
    136 package(s) to /home/ishisaka/.dnx/packages

Blogに書かれていたように、インストールSourceが表示されるようになりました。

.が要らなくなったdnxでkestrel HTTPサーバーを起動します。

$ dnx kestrel
Application started. Press Ctrl+C to shut down.

ポート5004でサーバー起動します。

Screenshot from 2015-09-04 07:09:31

ところで。

良い子はドキュメント読んでから始めような!!

2 thoughts on “ASP.NET 5 Beta7 with CoreCLR on Ubuntu 15.04”

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください